Exemplo n.º 1
0
 /**
  * add attachment links below the comments body
  * @param  array reference $rez
  * @return void
  */
 protected static function addAttachmentLinks(&$rez)
 {
     //collect comment ids
     $ids = array();
     foreach ($rez['data'] as $d) {
         $ids[] = $d['id'];
     }
     if (empty($ids)) {
         return;
     }
     //select files for all loaded comments using a single solr request
     $params = array('system' => '[0 TO 2]', 'fq' => array('pid:(' . implode(' OR ', $ids) . ')', 'template_type:"file"'), 'fl' => 'id,pid,name,template_id', 'sort' => 'pid,cdate', 'rows' => 50, 'dir' => 'asc');
     $s = new \CB\Search();
     $sr = $s->query($params);
     $files = array();
     $fileIds = array();
     $fileTypes = array();
     foreach ($sr['data'] as $d) {
         $files[$d['pid']][] = $d;
         $fileIds[] = $d['id'];
     }
     //get file types
     if (!empty($fileIds)) {
         $fileTypes = DM\Files::getTypes($fileIds);
     }
     foreach ($rez['data'] as &$d) {
         if (empty($files[$d['id']])) {
             continue;
         }
         $links = array();
         foreach ($files[$d['id']] as $f) {
             $f['type'] = @$fileTypes[$f['id']];
             $links[] = static::getFileLink($f);
         }
         $d['files'] = '<ul class="comment-attachments"><li>' . implode('</li><li>', $links) . '</li></ul>';
     }
 }