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); }
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); }