src/Model/SunProperty/ProjecttypeModel.php line 98

Open in your IDE?
  1. <?php
  2. namespace App\Model\SunProperty;
  3. use App\Helper\AssetHelper;
  4. use App\Helper\LogHelper;
  5. class ProjecttypeModel extends BaseModel
  6. {
  7.     public static function getDetailJson($object$locale null)
  8.     {
  9.         if (!($object instanceof \Pimcore\Model\DataObject\Projecttype)) {
  10.             return null;
  11.         }
  12.         if (!$locale) {
  13.             $locale self::getLocale();
  14.         }
  15.         $data = [];
  16.         try {
  17.             $fields = ['id''name''slug'];
  18.             foreach ($fields as $field) {
  19.                 $data[$field] = $object->{'get'ucfirst($field)}($locale);
  20.             }
  21.         } catch (\Throwable $e) {}
  22.         return $data;
  23.     }
  24.     public static function getJsonProject($object$locale null)
  25.     {
  26.         if (!($object instanceof \Pimcore\Model\DataObject\Projecttype)) {
  27.             return null;
  28.         }
  29.         if (!$locale) {
  30.             $locale self::getLocale();
  31.         }
  32.         $data = [];
  33.         try {
  34.             $fields = ['id''name''slug''title''subtitle''description','sectionIntroduceTitle''sectionProjectTitle''sectionBrandTitle''sectionBrandDescription''sectionNewsTitle''sectionPartnerTitle''newsCategorySlug''isProperty''isShowFilter'];
  35.             foreach ($fields as $field) {
  36.                 $data[$field] = $object->{'get' ucfirst($field)}($locale);
  37.             }
  38.             $data['heroImage'] = AssetHelper::getLink($object->getHeroImage());
  39.             $data['heroImageThumbnails'] = AssetHelper::getThumbnails($object->getHeroImage());
  40.             $data['background'] = AssetHelper::getLink($object->getBackground());
  41.             $data['backgroundThumbnails'] = AssetHelper::getThumbnails($object->getBackground());
  42.             
  43.             // field-collection colors
  44.             $field 'colors';
  45.             $data[$field] = [];
  46.             $items $object->{'get' ucfirst($field)}() ? $object->{'get' ucfirst($field)}()->getItems() : [];
  47.             foreach ($items as $item) {
  48.                 $color $item->getColor();
  49.                 $data[$field][] = [
  50.                     'hex' => $color $color->getHex() : null,
  51.                     'rgb' => $color $color->getRgb() : null,
  52.                     'rgba' => $color $color->getRgba() : null
  53.                 ];
  54.             }
  55.             // field-collection brands
  56.             $field 'brands';
  57.             $data[$field] = [];
  58.             $items $object->{'get' ucfirst($field)}() ? $object->{'get' ucfirst($field)}()->getItems() : [];
  59.             foreach ($items as $item) {
  60.                 $data[$field][] = [
  61.                     'title' => $item->getTitle($locale),
  62.                     'image' => AssetHelper::getLink($item->getImage()),
  63.                     'imageThumbnails' => AssetHelper::getThumbnails($item->getImage())
  64.                 ];
  65.             }
  66.             // field-collection partners
  67.             $field 'partners';
  68.             $data[$field] = [];
  69.             $items $object->{'get' ucfirst($field)}() ? $object->{'get' ucfirst($field)}()->getItems() : [];
  70.             foreach ($items as $item) {
  71.                 $data[$field][] = [
  72.                     'title' => $item->getTitle($locale),
  73.                     'image' => AssetHelper::getLink($item->getImage()),
  74.                     'imageThumbnails' => AssetHelper::getThumbnails($item->getImage())
  75.                 ];
  76.             }
  77.             // news
  78.             $data['news'] = [];
  79.             $newsCategorySlug = isset($data['newsCategorySlug']) ? $data['newsCategorySlug'] : null;
  80.             if (!empty($newsCategorySlug)) {
  81.                 try {
  82.                     $newsCategoryList \Pimcore\Model\DataObject\Newscategory::getBySlug($newsCategorySlug$locale);
  83.                     if ($newsCategoryList && $newsCategoryList->count() > 0) {
  84.                         $newsCategory $newsCategoryList->getData()[0];
  85.                         $newsListing = new \Pimcore\Model\DataObject\News\Listing();
  86.                         $newsListing->setCondition('newscategory__id = ?', [$newsCategory->getId()]);
  87.                         $newsListing->setOrderKey('date');
  88.                         $newsListing->setOrder('desc');
  89.                         $newsListing->setLimit(5);
  90.                         
  91.                         $newsItems $newsListing->load();
  92.                         if ($newsItems && is_array($newsItems)) {
  93.                             foreach ($newsItems as $newsItem) {
  94.                                 $newsData NewsModel::getListing($newsItem$locale);
  95.                                 if ($newsData) {
  96.                                     $data['news'][] = $newsData;
  97.                                 }
  98.                             }
  99.                         }
  100.                     }
  101.                 } catch (\Throwable $e) {
  102.                     LogHelper::log('Error fetching news by category: ' $e->getMessage());
  103.                 }
  104.             }
  105.             // field-collection ablumImages
  106.             $field 'heroSlider';
  107.             $data[$field] = [];
  108.             $items $object->{'get' ucfirst($field)}() ? $object->{'get' ucfirst($field)}()->getItems() : [];
  109.             foreach ($items as $item) {
  110.                 $itemData = [
  111.                     "displayVideo" => $item->getDisplayVideo(),
  112.                     'image'=> $item->getImage() ? AssetHelper::getLink($item->getImage()) : null,
  113.                     'video'=> $item->getVideo() ? AssetHelper::getVideo($item->getVideo()) : null,
  114.                 ];
  115.                 $data[$field][] = $itemData;
  116.             }
  117.         } catch (\Throwable $e) {
  118.         }
  119.         return $data;
  120.     }
  121. }