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); }