Ejemplo n.º 1
0
 public function Link()
 {
     if (!!$this->Anchor && Controller::curr()->ClassName == 'HomePage') {
         return "#" . $this->URLSegment;
     } else {
         return parent::Link();
     }
 }
 public function getPreviewAction(SiteTree $page, PreviewableDataObject $obj)
 {
     /*
      * $obj is an instance of ExampleObject in this case.
      * 'show' can be what ever action you wish the controller to use
      */
     return $page->Link('show/' . $obj->ID);
 }
 public function testLinkShortcodes()
 {
     $linkedPage = new SiteTree();
     $linkedPage->URLSegment = 'linked-page';
     $linkedPage->write();
     $linkedPage->publish('Stage', 'Live');
     $page = new SiteTree();
     $page->URLSegment = 'linking-page';
     $page->Content = sprintf('<a href="[sitetree_link,id=%s]">Testlink</a>', $linkedPage->ID);
     $page->write();
     $page->publish('Stage', 'Live');
     $this->assertContains(sprintf('<a href="%s">Testlink</a>', $linkedPage->Link()), $this->get($page->RelativeLink())->getBody(), '"sitetree_link" shortcodes get parsed properly');
 }
 /**
  * Renders the product group navigation.
  *
  * @param SiteTree $rootPage    The root page to start with
  * @param SiteTree $currentPage The current SiteTree object
  * @param int      $level       The current level
  *
  * @return string
  * 
  * @author Sebastian Diel <*****@*****.**>,
  *         Sascha Koehler <*****@*****.**>
  * @since 24.11.2014
  */
 public function renderProductGroupNavigation($rootPage, $currentPage, $level = 0)
 {
     $renderStr = '';
     $isActivePage = false;
     $level++;
     if ($this->levelsToShow == 0 || $level <= $this->levelsToShow) {
         if (!($this->expandActiveSectionOnly && ($this->levelsToShow != 0 && $level > $this->levelsToShow || $level > 1) && SilvercartTools::findPageIdInHierarchy($rootPage->getParent()->ID) === false)) {
             $childPages = $rootPage->Children();
             $childPageStr = '';
             if ($childPages && $childPages->Count() > 0) {
                 foreach ($childPages as $childPage) {
                     $childPageStr .= $this->renderProductGroupNavigation($childPage, $currentPage, $level);
                 }
             }
             if (Controller::curr()->ID === $rootPage->ID) {
                 $isActivePage = true;
             }
             if (SilvercartTools::findPageIdInHierarchy($rootPage->ID) || $rootPage->ID === $currentPage->ID) {
                 $isActiveSection = true;
             } else {
                 $isActiveSection = false;
             }
             $data = new ArrayData(array('MenuTitle' => $rootPage->getMenuTitle(), 'Title' => $rootPage->getTitle(), 'Link' => $rootPage->Link(), 'LinkOrSection' => $rootPage->LinkOrSection(), 'ChildPages' => $childPageStr, 'IsActivePage' => $isActivePage, 'IsActiveSection' => $isActiveSection, 'Level' => $level));
             $renderStr .= $data->renderWith('SilvercartProductGroupNavigationWidgetEntry');
         }
     }
     return $renderStr;
 }
 /**
  *
  * @param SiteTree $page
  * 				The page that should be rendered
  * @param string $action
  * 				An action for the page to render
  * @param string $outputTo
  * 				'file' or 'browser'
  * @return string
  * 				The filename of the output file
  */
 public function renderPage($page, $action = '', $outputTo = null, $outname = '')
 {
     $link = Director::makeRelative($page->Link($action));
     return $this->renderUrl($link, $outputTo, $outname);
 }