/** * Возвращает список полей по списку id типов контента * * @param array $aTypesId Список ID типов контента * * @return array * @TODO рефакторинг + solid */ public function GetFieldsByArrayId($aTypesId) { if (!$aTypesId) { return array(); } if (!is_array($aTypesId)) { $aTypesId = array($aTypesId); } $aTypesId = array_unique($aTypesId); $aFields = array(); $s = join(',', $aTypesId); if (false === ($data = E::ModuleCache()->Get("topic_fields_{$s}"))) { $data = $this->oMapper->GetFieldsByArrayId($aTypesId); foreach ($data as $oField) { $aFields[$oField->getContentId()][$oField->getFieldId()] = $oField; } E::ModuleCache()->Set($aFields, "topic_fields_{$s}", array("field_update"), 60 * 60 * 24 * 1); return $aFields; } return $data; }