Exemple #1
0
 public function getJSON($data, $fields, $array = array())
 {
     $out = array();
     $fields = is_array($fields) ? $fields : explode(",", $fields);
     $date = $this->getCFGDef('dateSource', 'pub_date');
     foreach ($data as $num => $item) {
         switch (true) {
             case (array('1') == $fields || in_array('summary', $fields)) && $this->checkExtender('summary'):
                 $out[$num]['summary'] = mb_strlen($this->_docs[$num]['introtext'], 'UTF-8') > 0 ? $this->_docs[$num]['introtext'] : $this->extender['summary']->init($this, array("content" => $this->_docs[$num]['content'], "summary" => $this->getCFGDef("summary", "")));
                 //without break
             case (array('1') == $fields || in_array('date', $fields)) && $date != 'date':
                 $tmp = isset($this->_docs[$num][$date]) && $date != 'createdon' && $this->_docs[$num][$date] != 0 && $this->_docs[$num][$date] == (int) $this->_docs[$num][$date] ? $this->_docs[$num][$date] : $this->_docs[$num]['createdon'];
                 $out[$num]['date'] = strftime($this->getCFGDef('dateFormat', '%d.%b.%y %H:%M'), $tmp + $this->modx->config['server_offset_time']);
                 //without break
         }
     }
     return parent::getJSON($data, $fields, $out);
 }
Exemple #2
0
 public function getJSON($data, $fields, $array = array())
 {
     $out = array();
     $fields = is_array($fields) ? $fields : explode(",", $fields);
     $date = $this->getCFGDef('dateSource', 'pub_date');
     /**
      * @var $extSummary summary_DL_Extender
      */
     $extSummary = $this->getExtender('summary');
     /**
      * @var $extPrepare prepare_DL_Extender
      */
     $extPrepare = $this->getExtender('prepare');
     /**
      * @var $extE e_DL_Extender
      */
     $extE = $this->getExtender('e', true, true);
     foreach ($data as $num => $item) {
         $row = $item;
         switch (true) {
             case (array('1') == $fields || in_array('summary', $fields)) && $extSummary:
                 $row['summary'] = $this->getSummary($this->_docs[$num], $extSummary, 'introtext', 'content');
                 //without break
             case array('1') == $fields || in_array('date', $fields):
                 $tmp = isset($this->_docs[$num][$date]) && $date != 'createdon' && $this->_docs[$num][$date] != 0 && $this->_docs[$num][$date] == (int) $this->_docs[$num][$date] ? $this->_docs[$num][$date] : $this->_docs[$num]['createdon'];
                 $row['date'] = strftime($this->getCFGDef('dateFormat', '%d.%b.%y %H:%M'), $tmp + $this->modx->config['server_offset_time']);
                 //without break
             case array('1') == $fields || in_array(array('menutitle', 'pagetitle'), $fields):
                 $row['title'] = $row['menutitle'] == '' ? $row['pagetitle'] : $row['menutitle'];
             case (array('1') == $fields || in_array(array('content', 'type'), $fields)) && $this->getCFGDef('makeUrl', 1):
                 if ($row['type'] == 'reference') {
                     $row['url'] = is_numeric($row['content']) ? $this->modx->makeUrl($row['content'], '', '', $this->getCFGDef('urlScheme', '')) : $row['content'];
                 } else {
                     $row['url'] = $this->modx->makeUrl($row['id'], '', '', $this->getCFGDef('urlScheme', ''));
                 }
         }
         if ($extE && ($tmp = $extE->init($this, array('data' => $row)))) {
             if (is_array($tmp)) {
                 $row = $tmp;
             }
         }
         if ($extPrepare) {
             $row = $extPrepare->init($this, array('data' => $row));
             if (is_bool($row) && $row === false) {
                 continue;
             }
         }
         $out[$num] = $row;
     }
     return parent::getJSON($out, $fields, $out);
 }