<?php
namespace App\Model\SunProperty;
use App\Helper\AssetHelper;
use App\Helper\LogHelper;
class ProjecttypeModel extends BaseModel
{
public static function getDetailJson($object, $locale = null)
{
if (!($object instanceof \Pimcore\Model\DataObject\Projecttype)) {
return null;
}
if (!$locale) {
$locale = self::getLocale();
}
$data = [];
try {
$fields = ['id', 'name', 'slug'];
foreach ($fields as $field) {
$data[$field] = $object->{'get'. ucfirst($field)}($locale);
}
} catch (\Throwable $e) {}
return $data;
}
public static function getJsonProject($object, $locale = null)
{
if (!($object instanceof \Pimcore\Model\DataObject\Projecttype)) {
return null;
}
if (!$locale) {
$locale = self::getLocale();
}
$data = [];
try {
$fields = ['id', 'name', 'slug', 'title', 'subtitle', 'description','sectionIntroduceTitle', 'sectionProjectTitle', 'sectionBrandTitle', 'sectionBrandDescription', 'sectionNewsTitle', 'sectionPartnerTitle', 'newsCategorySlug', 'isProperty', 'isShowFilter'];
foreach ($fields as $field) {
$data[$field] = $object->{'get' . ucfirst($field)}($locale);
}
$data['heroImage'] = AssetHelper::getLink($object->getHeroImage());
$data['heroImageThumbnails'] = AssetHelper::getThumbnails($object->getHeroImage());
$data['background'] = AssetHelper::getLink($object->getBackground());
$data['backgroundThumbnails'] = AssetHelper::getThumbnails($object->getBackground());
// field-collection colors
$field = 'colors';
$data[$field] = [];
$items = $object->{'get' . ucfirst($field)}() ? $object->{'get' . ucfirst($field)}()->getItems() : [];
foreach ($items as $item) {
$color = $item->getColor();
$data[$field][] = [
'hex' => $color ? $color->getHex() : null,
'rgb' => $color ? $color->getRgb() : null,
'rgba' => $color ? $color->getRgba() : null
];
}
// field-collection brands
$field = 'brands';
$data[$field] = [];
$items = $object->{'get' . ucfirst($field)}() ? $object->{'get' . ucfirst($field)}()->getItems() : [];
foreach ($items as $item) {
$data[$field][] = [
'title' => $item->getTitle($locale),
'image' => AssetHelper::getLink($item->getImage()),
'imageThumbnails' => AssetHelper::getThumbnails($item->getImage())
];
}
// field-collection partners
$field = 'partners';
$data[$field] = [];
$items = $object->{'get' . ucfirst($field)}() ? $object->{'get' . ucfirst($field)}()->getItems() : [];
foreach ($items as $item) {
$data[$field][] = [
'title' => $item->getTitle($locale),
'image' => AssetHelper::getLink($item->getImage()),
'imageThumbnails' => AssetHelper::getThumbnails($item->getImage())
];
}
// news
$data['news'] = [];
$newsCategorySlug = isset($data['newsCategorySlug']) ? $data['newsCategorySlug'] : null;
if (!empty($newsCategorySlug)) {
try {
$newsCategoryList = \Pimcore\Model\DataObject\Newscategory::getBySlug($newsCategorySlug, $locale);
if ($newsCategoryList && $newsCategoryList->count() > 0) {
$newsCategory = $newsCategoryList->getData()[0];
$newsListing = new \Pimcore\Model\DataObject\News\Listing();
$newsListing->setCondition('newscategory__id = ?', [$newsCategory->getId()]);
$newsListing->setOrderKey('date');
$newsListing->setOrder('desc');
$newsListing->setLimit(5);
$newsItems = $newsListing->load();
if ($newsItems && is_array($newsItems)) {
foreach ($newsItems as $newsItem) {
$newsData = NewsModel::getListing($newsItem, $locale);
if ($newsData) {
$data['news'][] = $newsData;
}
}
}
}
} catch (\Throwable $e) {
LogHelper::log('Error fetching news by category: ' , $e->getMessage());
}
}
// field-collection ablumImages
$field = 'heroSlider';
$data[$field] = [];
$items = $object->{'get' . ucfirst($field)}() ? $object->{'get' . ucfirst($field)}()->getItems() : [];
foreach ($items as $item) {
$itemData = [
"displayVideo" => $item->getDisplayVideo(),
'image'=> $item->getImage() ? AssetHelper::getLink($item->getImage()) : null,
'video'=> $item->getVideo() ? AssetHelper::getVideo($item->getVideo()) : null,
];
$data[$field][] = $itemData;
}
} catch (\Throwable $e) {
}
return $data;
}
}