/**
  * Gets the result from the query
  * @param zibo\library\orm\model\Model $model
  * @param zibo\library\orm\query\ModelQuery $query
  * @param joppa\content\model\ContentProperties $properties
  * @return array Array with Content objects
  */
 private function getResult(ContentProperties $contentProperties, $model, $query)
 {
     $data = $query->queryFirst();
     if (!$data) {
         return $data;
     }
     $meta = $model->getMeta();
     $modelTable = $meta->getModelTable();
     $dataFormatter = $meta->getDataFormatter();
     $titleFormat = $contentProperties->getContentTitleFormat();
     if (!$titleFormat && $modelTable->hasDataFormat(DataFormatter::FORMAT_TITLE)) {
         $titleFormat = $modelTable->getDataFormat(DataFormatter::FORMAT_TITLE)->getFormat();
     }
     $teaserFormat = $contentProperties->getContentTeaserFormat();
     if (!$teaserFormat && $modelTable->hasDataFormat(DataFormatter::FORMAT_TEASER)) {
         $teaserFormat = $modelTable->getDataFormat(DataFormatter::FORMAT_TEASER)->getFormat();
     }
     $imageFormat = $modelTable->getDataFormat(DataFormatter::FORMAT_IMAGE, false);
     if ($imageFormat) {
         $imageFormat = $imageFormat->getFormat();
     }
     $dateFormat = $modelTable->getDataFormat(DataFormatter::FORMAT_DATE, false);
     if ($dateFormat) {
         $dateFormat = $dateFormat->getFormat();
     }
     try {
         $mapper = ContentFacade::getInstance()->getMapper($model->getName());
     } catch (ZiboException $e) {
         $mapper = null;
     }
     $title = $dataFormatter->formatData($data, $titleFormat);
     $url = null;
     $teaser = null;
     $image = null;
     $date = null;
     if ($teaserFormat) {
         $teaser = $dataFormatter->formatData($data, $teaserFormat);
     }
     if ($imageFormat) {
         $image = $dataFormatter->formatData($data, $imageFormat);
     }
     if ($dateFormat) {
         $date = $dataFormatter->formatData($data, $dateFormat);
     }
     if ($mapper) {
         $url = $mapper->getUrl($data);
     }
     $content = new Content($title, $url, $teaser, $image, $date, $data);
     return $content;
 }
Ejemplo n.º 2
0
 /**
  * Performs a count on the model query of this table
  * @return integer Number of rows
  */
 protected function countTotalRows()
 {
     return $this->query->count();
 }