/**
  * 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;
 }
 /**
  * Gets a title for the view
  * @param mixed $data The data which is being displayed, used only with the form view
  * @return string
  */
 protected function getViewTitle($data = null)
 {
     $meta = $this->model->getMeta();
     if ($this->translationTitle) {
         $title = $this->getTranslator()->translate($this->translationTitle);
     } else {
         $title = $meta->getName();
     }
     if ($data && $data->id) {
         $title .= ': ' . $meta->formatData($data);
     }
     return $title;
 }
 /**
  * Gets the model query
  * @param zibo\library\orm\model\Model $model
  * @param joppa\content\model\ContentProperties $contentProperties
  * @param string $locale Code of the locale
  * @param integer $page Page number
  * @return zibo\library\orm\query\ModelQuery
  */
 public function getModelQuery($model, ContentProperties $contentProperties, $locale, $page = 1)
 {
     $includeUnlocalizedData = $contentProperties->getIncludeUnlocalized();
     $query = $model->createQuery($contentProperties->getRecursiveDepth(), $locale, $includeUnlocalizedData);
     $modelFields = $contentProperties->getModelFields();
     if ($modelFields) {
         foreach ($modelFields as $fieldName) {
             $query->addFields('{' . $fieldName . '}');
         }
     }
     $condition = $contentProperties->getCondition();
     if ($condition) {
         $query->addCondition($condition);
     }
     $order = $contentProperties->getOrder();
     if ($order) {
         $query->addOrderBy($order);
     }
     if ($contentProperties->isPaginationEnabled()) {
         $paginationOffset = $contentProperties->getPaginationOffset();
         $rows = $contentProperties->getPaginationRows();
         $offset = ($page - 1) * $rows;
         if ($paginationOffset) {
             $offset += $paginationOffset;
         }
         $query->setLimit($rows, $offset);
     }
     return $query;
 }