Example #1
0
 /**
  * Возвращает список полей по списку 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;
 }