예제 #1
0
 /**
  * @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);
 }
예제 #2
0
 /**
  * @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;
 }
예제 #3
0
 /**
  * @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;
 }
예제 #4
0
 /**
  * @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);
 }
예제 #5
0
 /**
  * @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;
 }