<?php
namespace App\Controller\SunProperty;
use App\Helper\LogHelper;
use Pimcore\Model\DataObject;
use App\Model\SunProperty\ProjecttypeModel;
use Pimcore\Db;
class EcosystemController extends BaseController
{
public $locale;
public function __construct(string $locale = '')
{
$this->locale = $locale;
}
public function detail(
string $slug,
\Pimcore\Model\Site $site
)
{
$data = [];
$siteId = $site->getId();
try {
// Tìm projectType theo slug
$list = new DataObject\Projecttype\Listing();
$list->setCondition('siteId = :siteId AND slug = :slug', [
'siteId' => $siteId,
'slug' => $slug
]);
$list->setLimit(1);
$projectType = $list->current();
if (!$projectType) {
throw new \Exception('Project type not found');
}
// Lấy thông tin chi tiết của projectType
$data = ProjecttypeModel::getJsonProject($projectType, $this->locale);
if(isset($data['isShowFilter']) && $data['isShowFilter']){
$db = Db::get();
$query = $this->locale == "en"
?
"SELECT DISTINCT CITY.o_id as id, CITY.name as name
FROM `object_project` as PRJ INNER JOIN object_localized_city_en as CITY
WHERE PRJ.siteId = ? AND PRJ.projectType__id = ? AND CITY.o_id = PRJ.city__id ORDER BY name COLLATE utf8mb4_unicode_ci"
:
"SELECT DISTINCT CITY.o_id as id, CITY.name as name
FROM `object_project` as PRJ INNER JOIN object_localized_city_vi as CITY
WHERE PRJ.siteId = ? AND PRJ.projectType__id = ? AND CITY.o_id = PRJ.city__id ORDER BY name COLLATE utf8mb4_unicode_ci";
$data['filters']['city'] = $db->fetchAll($query, [$siteId, $projectType->getId()]);
}
} catch (\Throwable $e) {
throw $e;
}
return $data;
}
}