/**
  * Returns the link to this detail page.
  * 
  * @return string
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 04.03.2014
  */
 public function Link()
 {
     $controller = Controller::curr();
     $link = parent::Link();
     if ($controller instanceof SilvercartAddressPage_Controller) {
         $link .= 'edit/' . $controller->getAddressID();
     }
     return $link;
 }
 /**
  * Returns the link to this detail page.
  * 
  * @return string
  *
  * @author Sebastian Diel <*****@*****.**>,
  *         Sascha Koehler <*****@*****.**>
  * @since 04.03.2014
  */
 public function Link()
 {
     $controller = Controller::curr();
     $link = parent::Link();
     if ($controller instanceof SilvercartOrderDetailPage_Controller) {
         $link .= 'detail' . $controller->getOrderID();
     }
     return $link;
 }
 /**
  * Creates the "My Account" section of SilverCart.
  * 
  * @param SiteTree $parentPage Parent page of "My Account" section
  * 
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 21.03.2016
  */
 public function createDefaultSiteTreeMyAccountSection(SiteTree $parentPage)
 {
     $myAccountHolder = new SilvercartMyAccountHolder();
     $myAccountHolder->Title = _t('SilvercartMyAccountHolder.DEFAULT_TITLE', 'my account');
     $myAccountHolder->URLSegment = _t('SilvercartMyAccountHolder.DEFAULT_URLSEGMENT', 'my-account');
     $myAccountHolder->Status = "Published";
     $myAccountHolder->ShowInMenus = true;
     $myAccountHolder->ShowInSearch = false;
     $myAccountHolder->ParentID = $parentPage->ID;
     $myAccountHolder->IdentifierCode = "SilvercartMyAccountHolder";
     $myAccountHolder->InheritFromParent = false;
     $myAccountHolder->write();
     $myAccountHolder->publish("Stage", "Live");
     //create a silvercart data page as a child of silvercart my account holder
     $dataPage = new SilvercartDataPage();
     $dataPage->Title = _t('SilvercartDataPage.DEFAULT_TITLE', 'my data');
     $dataPage->URLSegment = _t('SilvercartDataPage.DEFAULT_URLSEGMENT', 'my-data');
     $dataPage->Status = "Published";
     $dataPage->ShowInMenus = true;
     $dataPage->ShowInSearch = false;
     $dataPage->CanViewType = "Inherit";
     $dataPage->ParentID = $myAccountHolder->ID;
     $dataPage->IdentifierCode = "SilvercartDataPage";
     $dataPage->write();
     $dataPage->publish("Stage", "Live");
     //create a silvercart order holder as a child of silvercart my account holder
     $orderHolder = new SilvercartOrderHolder();
     $orderHolder->Title = _t('SilvercartOrderHolder.DEFAULT_TITLE', 'my orders');
     $orderHolder->URLSegment = _t('SilvercartOrderHolder.DEFAULT_URLSEGMENT', 'my-orders');
     $orderHolder->Status = "Published";
     $orderHolder->ShowInMenus = true;
     $orderHolder->ShowInSearch = false;
     $orderHolder->CanViewType = "Inherit";
     $orderHolder->ParentID = $myAccountHolder->ID;
     $orderHolder->IdentifierCode = "SilvercartOrderHolder";
     $orderHolder->write();
     $orderHolder->publish("Stage", "Live");
     //create an order detail page as a child of the order holder
     $orderDetailPage = new SilvercartOrderDetailPage();
     $orderDetailPage->Title = _t('SilvercartOrderDetailPage.DEFAULT_TITLE', 'order details');
     $orderDetailPage->URLSegment = _t('SilvercartOrderDetailPage.DEFAULT_URLSEGMENT', 'order-details');
     $orderDetailPage->Status = "Published";
     $orderDetailPage->ShowInMenus = false;
     $orderDetailPage->ShowInSearch = false;
     $orderDetailPage->CanViewType = "Inherit";
     $orderDetailPage->ParentID = $orderHolder->ID;
     $orderDetailPage->IdentifierCode = "SilvercartOrderDetailPage";
     $orderDetailPage->write();
     $orderDetailPage->publish("Stage", "Live");
     //create a silvercart address holder as a child of silvercart my account holder
     $addressHolder = new SilvercartAddressHolder();
     $addressHolder->Title = _t('SilvercartAddressHolder.DEFAULT_TITLE', 'address overview');
     $addressHolder->URLSegment = _t('SilvercartAddressHolder.DEFAULT_URLSEGMENT', 'address-overview');
     $addressHolder->Status = "Published";
     $addressHolder->ShowInMenus = true;
     $addressHolder->ShowInSearch = false;
     $addressHolder->CanViewType = "Inherit";
     $addressHolder->ParentID = $myAccountHolder->ID;
     $addressHolder->IdentifierCode = "SilvercartAddressHolder";
     $addressHolder->write();
     $addressHolder->publish("Stage", "Live");
     //create a silvercart address page as a child of silvercart my account holder
     $addressPage = new SilvercartAddressPage();
     $addressPage->Title = _t('SilvercartAddressPage.DEFAULT_TITLE', 'address details');
     $addressPage->URLSegment = _t('SilvercartAddressPage.DEFAULT_URLSEGMENT', 'address-details');
     $addressPage->Status = "Published";
     $addressPage->ShowInMenus = false;
     $addressPage->ShowInSearch = false;
     $addressPage->CanViewType = "Inherit";
     $addressPage->ParentID = $addressHolder->ID;
     $addressPage->IdentifierCode = "SilvercartAddressPage";
     $addressPage->write();
     $addressPage->publish("Stage", "Live");
 }
 /**
  * Adds the part for 'Add new address' to the breadcrumbs. Sets the link for
  * The default action in breadcrumbs.
  *
  * @param int  $maxDepth       maximum levels
  * @param bool $unlinked       link breadcrumbs elements
  * @param bool $stopAtPageType name of PageType to stop at
  * @param bool $showHidden     show pages that will not show in menus
  * 
  * @return string
  * 
  * @author Sebastian Diel <*****@*****.**>
  * @since 27.06.2011
  */
 public function Breadcrumbs($maxDepth = 20, $unlinked = false, $stopAtPageType = false, $showHidden = false)
 {
     $breadcrumbs = parent::Breadcrumbs($maxDepth, $unlinked, $stopAtPageType, $showHidden);
     if (Controller::curr()->getAction() == 'addNewAddress') {
         $parts = explode(" &raquo; ", $breadcrumbs);
         $addressHolder = array_pop($parts);
         $parts[] = "<a href=\"" . $this->Link() . "\">" . $addressHolder . "</a>";
         $parts[] = _t('SilvercartAddressHolder.ADD', 'Add new address');
         $breadcrumbs = implode(" &raquo; ", $parts);
     }
     return $breadcrumbs;
 }