/** * Gets the view * @param joppa\content\model\ContentProperties $properties * @param joppa\model\content\Content $content * @return joppa\content\view\ContentView */ private function getView(ContentProperties $contentProperties, $content) { $view = $contentProperties->getView(); $detailViews = ContentViewFactory::getInstance()->getDetailViews(); if (!array_key_exists($view, $detailViews)) { return null; } $viewClass = $detailViews[$view]; $objectFactory = new ObjectFactory(); $view = $objectFactory->create($viewClass, ContentViewFactory::INTERFACE_DETAIL); $view->setContent($this->properties->getWidgetId(), $content, $contentProperties); return $view; }
/** * Constructs a new properties form * @param string $action URL where this form will point to * @param joppa\model\Node $node * @param joppa\content\model\ContentProperties $properties * @return null */ public function __construct($action, Node $node, ContentProperties $properties) { parent::__construct($action, self::NAME, self::TRANSLATION_SAVE); $translator = I18n::getInstance()->getTranslator(); $modelManager = ModelManager::getInstance(); $fieldFactory = FieldFactory::getInstance(); $model = $properties->getModelName(); $fields = $properties->getModelFields(); $recursiveDepth = $properties->getRecursiveDepth(); $includeUnlocalized = $properties->getIncludeUnlocalized(); $view = $properties->getView(); $modelField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_MODEL, $model); $modelField->setOptions($this->getModelOptions($modelManager)); $modelField->addEmpty(); $fieldsField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_FIELDS, $fields); $fieldsField->setOptions(self::getModelFieldOptions($modelManager, $model)); $fieldsField->setIsMultiple(true); $recursiveDepthField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_RECURSIVE_DEPTH, $recursiveDepth); $recursiveDepthField->setOptions($this->getNumericOptions(0, 5)); $includeUnlocalizedField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_INCLUDE_UNLOCALIZED, $includeUnlocalized); $includeUnlocalizedField->setOptions($this->getIncludeUnlocalizedOptions($translator)); $viewField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_VIEW, $view); $viewField->setOptions($this->getViewOptions($translator)); $this->addField($modelField); $this->addField($fieldsField); $this->addField($recursiveDepthField); $this->addField($includeUnlocalizedField); $this->addField($viewField); }
/** * Gets the view * @param array $result * @param joppa\content\model\ContentProperties $properties * @param integer $pages * @param integer $page * @return joppa\content\view\ContentView */ private function getView(array $result, ContentProperties $contentProperties, $pages = 1, $page = 1) { $view = $contentProperties->getView(); $listViews = ContentViewFactory::getInstance()->getOverviewViews(); if (!array_key_exists($view, $listViews)) { return null; } $viewClass = $listViews[$view]; $paginationProperties = null; if ($contentProperties->willShowPagination() && $pages > 1) { $paginationUrl = $this->request->getBasePath() . Request::QUERY_SEPARATOR . self::ACTION_PAGE . Request::QUERY_SEPARATOR . '%page%'; $paginationProperties = new PaginationProperties($paginationUrl, $pages, $page); } $moreUrl = null; if ($contentProperties->willShowMoreLink()) { $node = $this->models[NodeModel::NAME]->getNode($contentProperties->getMoreNode(), 0, $this->locale); $moreUrl = $this->request->getBaseUrl() . Request::QUERY_SEPARATOR . $node->getRoute(); } $objectFactory = new ObjectFactory(); $view = $objectFactory->create($viewClass, ContentViewFactory::INTERFACE_OVERVIEW); $view->setContent($this->properties->getWidgetId(), $result, $contentProperties, $paginationProperties, $moreUrl); return $view; }