/** * @param \Render\APIs\APIv1\RenderAPI $renderApi * @param \Render\Unit $unit * @param \Render\ModuleInfo $moduleInfo */ public function renderContent($renderApi, $unit, $moduleInfo) { // TODO: create dummy navigation (test navigation) $navigation = $renderApi->getNavigation(); $nav = $this->getNavigationMarkup($renderApi, $unit, $navigation); if (is_object($nav)) { echo $nav->toString(); } else { if ($renderApi->isEditMode()) { // show hint when no children inserted $this->showNoPagesHint($renderApi, $unit, $moduleInfo); } } $renderApi->renderChildren($unit); }
/** * @param \Render\APIs\APIv1\RenderAPI $renderApi * @param $startPageId * @param $enableRecursive * @return array */ private function getTeaserItemsRecursive($renderApi, $startPageId, $enableRecursive) { $items = array(); $navigation = $renderApi->getNavigation(); $currentPageId = $renderApi->getNavigation()->getCurrentPageId(); $childrenIds = $navigation->getChildrenIds($startPageId); if (!empty($childrenIds)) { foreach ($childrenIds as $pageId) { // skip current page if ($currentPageId === $pageId) { continue; } $page = $navigation->getPage($pageId); $pageAttributes = $page->getPageAttributes(); if (array_key_exists('notInPageList', $pageAttributes)) { if ($pageAttributes['notInPageList'] == 1) { if ($enableRecursive) { $items = array_merge($items, $this->getTeaserItemsRecursive($renderApi, $pageId, $enableRecursive)); } continue; } } $items[] = array('pageId' => $pageId, 'pageUrl' => $page->getUrl(), 'pageNavigationTitle' => $page->getNavigationTitle(), 'pageTitle' => $page->getTitle(), 'pageDate' => $page->getDate(), 'pageDescription' => $page->getDescription()); //iterate recursively? if ($enableRecursive) { $items = array_merge($items, $this->getTeaserItemsRecursive($renderApi, $pageId, $enableRecursive)); } } } return $items; }
/** * @param \Render\APIs\APIv1\RenderAPI $renderApi * @param \Render\Unit $unit * * @return string */ protected function getInternalUrl($renderApi, $unit) { $nav = $renderApi->getNavigation(); $internalUrl = $nav->getPage($renderApi->getFormValue($unit, 'pageId'))->getUrl(); $anchor = $renderApi->getFormValue($unit, 'pageAnchor', ''); if (substr($anchor, 0, 1) === '#') { $internalUrl .= htmlentities($anchor, ENT_QUOTES, 'UTF-8'); } return $internalUrl; }
/** * @param \Render\APIs\APIv1\RenderAPI $renderApi * @param Unit $unit * @param $moduleInfo * @param \Render\APIs\APIv1\Page $productPage * @param Translator $i18n * * @return HtmlTagBuilder|void */ private function getAddCartTag($renderApi, $unit, $moduleInfo, $productPage, $i18n) { $shopSettings = $renderApi->getWebsiteSettings('rz_shop'); $cartPageId = $shopSettings['cartPage']; if (!$cartPageId) { return HtmlTagBuilder::div(HtmlTagBuilder::button($i18n->translate('msg.noCartPage'))->set(array('style' => 'cursor: default;')))->set(array('class' => 'RUKZUKmissingInputHint')); } $cartText = $i18n->translateInput($renderApi->getFormValue($unit, 'cartText')); $cartUrl = $renderApi->getNavigation()->getPage($cartPageId)->getUrl(); return $this->displayCartButton($cartText, $productPage, $cartUrl, $renderApi->isEditMode() || $renderApi->isTemplate(), $i18n); }
/** * @param \Render\APIs\APIv1\RenderAPI $renderApi * @param $startPageId * @param $enableRecursive * @return array */ private function getTeaserItemsRecursive($renderApi, $startPageId, $enableRecursive) { $items = array(); $navigation = $renderApi->getNavigation(); $currentPageId = $renderApi->getNavigation()->getCurrentPageId(); $childrenIds = $navigation->getChildrenIds($startPageId); if (!empty($childrenIds)) { foreach ($childrenIds as $pageId) { // skip current page if ($currentPageId === $pageId) { continue; } $page = $navigation->getPage($pageId); // page needs to be of type rz_shop_product if ($page->getPageType() === 'rz_shop_product') { $attr = $page->getPageAttributes(); $price = isset($attr['price']) ? floatval($attr['price']) : 0; $items[] = array('pageId' => $pageId, 'pageUrl' => $page->getUrl(), 'pageNavigationTitle' => $page->getNavigationTitle(), 'pageTitle' => $page->getTitle(), 'pageDate' => $page->getDate(), 'pageDescription' => $page->getDescription(), 'productPrice' => $price); } //iterate recursively? if ($enableRecursive) { $items = array_merge($items, $this->getTeaserItemsRecursive($renderApi, $pageId, $enableRecursive)); } } } return $items; }