예제 #1
0
 /**
  * Возвращает список полей по списку ID топиков
  *
  * @param array $aTopicId    Список ID топиков
  *
  * @return array
  * @TODO рефакторинг + solid
  */
 public function GetTopicValuesByArrayId($aTopicId)
 {
     if (!$aTopicId) {
         return array();
     }
     if (!is_array($aTopicId)) {
         $aTopicId = array($aTopicId);
     }
     $aTopicId = array_unique($aTopicId);
     $aValues = array();
     $s = join(',', $aTopicId);
     if (false === ($data = E::ModuleCache()->Get("topic_values_{$s}"))) {
         $data = $this->oMapper->GetTopicValuesByArrayId($aTopicId);
         foreach ($data as $oValue) {
             $aValues[$oValue->getTargetId()][$oValue->getFieldId()] = $oValue;
         }
         E::ModuleCache()->Set($aValues, "topic_values_{$s}", array('topic_new', 'topic_update'), 60 * 60 * 24 * 1);
         return $aValues;
     }
     return $data;
 }