/**
  * Constructs a new content mapper for a detail widget
  * @param \ride\library\cms\node\NodeModel $nodeModel
  * @param \ride\library\cms\node\Node $node
  * @param \ride\library\orm\model\Model $model
  * @param \ride\library\orm\entry\format\EntryFormatter $entryFormatter
  * @param \ride\library\widget\WidgetProperties $properties
  * @param \ride\service\RouterService $routerService
  * @return null
  */
 public function __construct(NodeModel $nodeModel, Node $node, Model $model, EntryFormatter $entryFormatter, WidgetProperties $properties, RouterService $routerService)
 {
     parent::__construct($nodeModel, $model, $entryFormatter);
     $this->node = $node;
     $this->properties = $properties;
     $this->routerService = $routerService;
     $this->arguments = array();
 }
 /**
  * Gets the content objects for the provided entries
  * @param \ride\library\orm\model\Model $model
  * @param array $entries
  * @param string $siteId
  * @param string $locale
  * @param string $idContentMapper
  * @param string $titleFormat
  * @param string $teaserFormat
  * @param string $imageFormat
  * @param string $dateFormat
  * @return array Array with Content objects for the provided entries
  * @see \ride\library\cms\content\Content
  */
 public function getContentForEntries(Model $model, array $result, $siteId, $locale, $idContentMapper = null, $titleFormat = null, $teaserFormat = null, $imageFormat = null, $dateFormat = null)
 {
     $modelName = $model->getName();
     $modelTable = $model->getMeta()->getModelTable();
     $entryFormatter = $this->orm->getEntryFormatter();
     if (!$titleFormat) {
         $titleFormat = $modelTable->getFormat(EntryFormatter::FORMAT_TITLE, false);
         if ($titleFormat == null) {
             $titleFormat = $model->getName() . ' #{id}';
         }
     }
     if (!$teaserFormat && $modelTable->hasFormat(EntryFormatter::FORMAT_TEASER)) {
         $teaserFormat = $modelTable->getFormat(EntryFormatter::FORMAT_TEASER);
     }
     if (!$imageFormat && $modelTable->hasFormat(EntryFormatter::FORMAT_IMAGE)) {
         $imageFormat = $modelTable->getFormat(EntryFormatter::FORMAT_IMAGE);
     }
     if (!$dateFormat && $modelTable->hasFormat(EntryFormatter::FORMAT_DATE)) {
         $dateFormat = $modelTable->getFormat(EntryFormatter::FORMAT_DATE);
     }
     try {
         $mapper = $this->getContentMapper($modelName, $idContentMapper);
     } catch (Exception $e) {
         $mapper = new OrmContentMapper($this->nodeModel, $model, $entryFormatter);
     }
     foreach ($result as $index => $entry) {
         $title = $entryFormatter->formatEntry($entry, $titleFormat);
         $url = $mapper->getUrl($siteId, $locale, $entry);
         $teaser = null;
         if ($teaserFormat) {
             $teaser = $entryFormatter->formatEntry($entry, $teaserFormat);
         }
         $image = null;
         if ($imageFormat) {
             $image = $entryFormatter->formatEntry($entry, $imageFormat);
         }
         $date = null;
         if ($dateFormat) {
             $date = $entryFormatter->formatEntry($entry, $dateFormat);
         }
         $content = new Content($modelName, $title, $url, $teaser, $image, $date, $entry);
         $result[$index] = $content;
     }
     return $result;
 }