where(['IS', 'parent_id', NULL])->all(); $keyList = []; foreach ($categories as $category) { foreach ($category->subCategories as $subCategory) { if ($subCategory->name) { $keyList[] = [ 'id' => $subCategory->id, 'name' => $category->name . ' - ' . $subCategory->name, 'name_en' => $category->ts_en_name . ' - ' . $subCategory->ts_en_name ]; } } } return $keyList; } public static function categoryFilterSelect() { $heritage_type = null; if (!empty($_GET['q'])) { $f = explode('|', $_GET['q']); foreach ($f as $fkv) { $filter = explode(':', $fkv); if($filter[0] == 'heritage_type' && !empty($filter[1])) $heritage_type = $filter[1]; } } if($heritage_type) { $ids = []; $objectTemplates = ObjectTemplate::find()->where(['heritage_type' => $heritage_type])->all(); foreach ($objectTemplates as $objectTemplate) { $ids[] = $objectTemplate->id; } } $categories = Categories::find()->where(['IS', 'parent_id', NULL])->all(); $keyList = []; foreach ($categories as $category) { $subCategoryList = $heritage_type ? $category->getSubCategoriesByTemplate($ids) : $category->subCategories; foreach ($subCategoryList as $subCategory) { if ($subCategory->name) { $keyList[$subCategory->id] = $category->name . ' - ' . $subCategory->name; } } } return $keyList; } public static function categoryTree() { $categories = Categories::find()->where(['IS', 'parent_id', NULL])->all(); $keyList = []; foreach ($categories as $category) { $sub = []; foreach ($category->subCategories as $subCategory) { if ($subCategory->name) { $sub[] = [ 'id' => $subCategory->id, 'name' => $subCategory->name, 'name_en' => $subCategory->ts_en_name ]; } } $keyList[] = [ 'id' => $category->id, 'name' => $category->name, 'name_en' => $category->ts_en_name, 'sub' => $sub ]; } return $keyList; } public static function objectTemplates($sub_category_id = null) { $sub = []; if ($sub_category_id) $sub['sc_id'] = $sub_category_id; $retrieve = CategoriesOt::find()->where($sub)->all(); $data = []; foreach ($retrieve as $item) { $objectTemplate = $item->objectTemplate; $objectTemplateFields = []; foreach ($objectTemplate->objectTemplateFields as $objectTemplateField) { $objectTemplateFields[] = $objectTemplateField->toArray(); } $data[] = [ 'id' => $objectTemplate->id, 'name' => $objectTemplate->name, 'fields' => $objectTemplateFields ]; } return $data; } }