/**
  * Generates the sitemap
  *
  * @return string
  * 
  * @author Sebastian Diel <*****@*****.**>
  * @since 25.04.2012
  */
 public function SiteMap()
 {
     $siteMap = '';
     $productGroupHolders = SilvercartProductGroupHolder::get()->filter('ClassName', 'SilvercartProductGroupHolder');
     $metaNavigationHolders = SilvercartMetaNavigationHolder::get()->filter('ClassName', 'SilvercartMetaNavigationHolder');
     foreach ($productGroupHolders as $productGroupHolder) {
         $siteMap .= $this->generateSiteMap($productGroupHolder);
     }
     foreach ($metaNavigationHolders as $metaNavigationHolder) {
         $siteMap .= $this->generateSiteMap($metaNavigationHolder);
     }
     return $siteMap;
 }
 /**
  * Creates the default SiteTree CMS section if not exists
  * 
  * @param SilvercartFrontPage $rootPage SiteTree root page
  * 
  * @return SilvercartFrontPage
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 21.03.2016
  */
 public function createDefaultSiteTreeCMSSection($rootPage)
 {
     $legalNavigationHolder = new SilvercartMetaNavigationHolder();
     $legalNavigationHolder->Title = _t('SilvercartMetaNavigationHolder.DEFAULT_TITLE_LEGAL');
     $legalNavigationHolder->URLSegment = _t('SilvercartMetaNavigationHolder.DEFAULT_URLSEGMENT_LEGAL', 'legal');
     $legalNavigationHolder->Status = "Published";
     $legalNavigationHolder->ShowInMenus = 0;
     $legalNavigationHolder->IdentifierCode = "SilvercartMetaNavigationHolderLegal";
     $legalNavigationHolder->ParentID = $rootPage->ID;
     $legalNavigationHolder->InheritFromParent = false;
     $legalNavigationHolder->write();
     $legalNavigationHolder->publish("Stage", "Live");
     $serviceNavigationHolder = new SilvercartMetaNavigationHolder();
     $serviceNavigationHolder->Title = _t('SilvercartMetaNavigationHolder.DEFAULT_TITLE_SERVICE');
     $serviceNavigationHolder->URLSegment = _t('SilvercartMetaNavigationHolder.DEFAULT_URLSEGMENT_SERVICE', 'service');
     $serviceNavigationHolder->Status = "Published";
     $serviceNavigationHolder->ShowInMenus = 0;
     $serviceNavigationHolder->IdentifierCode = "SilvercartMetaNavigationHolderService";
     $serviceNavigationHolder->ParentID = $rootPage->ID;
     $serviceNavigationHolder->InheritFromParent = false;
     $serviceNavigationHolder->write();
     $serviceNavigationHolder->publish("Stage", "Live");
     $aboutNavigationHolder = new SilvercartMetaNavigationHolder();
     $aboutNavigationHolder->Title = _t('SilvercartMetaNavigationHolder.DEFAULT_TITLE_ABOUT');
     $aboutNavigationHolder->URLSegment = _t('SilvercartMetaNavigationHolder.DEFAULT_URLSEGMENT_ABOUT', 'about-us');
     $aboutNavigationHolder->Status = "Published";
     $aboutNavigationHolder->ShowInMenus = 0;
     $aboutNavigationHolder->IdentifierCode = "SilvercartMetaNavigationHolderAbout";
     $aboutNavigationHolder->ParentID = $rootPage->ID;
     $aboutNavigationHolder->InheritFromParent = false;
     $aboutNavigationHolder->write();
     $aboutNavigationHolder->publish("Stage", "Live");
     $shopNavigationHolder = new SilvercartMetaNavigationHolder();
     $shopNavigationHolder->Title = _t('SilvercartMetaNavigationHolder.DEFAULT_TITLE_SHOP');
     $shopNavigationHolder->URLSegment = _t('SilvercartMetaNavigationHolder.DEFAULT_URLSEGMENT_SHOP', 'shop-system');
     $shopNavigationHolder->Status = "Published";
     $shopNavigationHolder->ShowInMenus = 0;
     $shopNavigationHolder->IdentifierCode = "SilvercartMetaNavigationHolderShop";
     $shopNavigationHolder->ParentID = $rootPage->ID;
     $shopNavigationHolder->InheritFromParent = false;
     $shopNavigationHolder->write();
     $shopNavigationHolder->publish("Stage", "Live");
     // Sub pages of legal node
     $termsOfServicePage = new SilvercartMetaNavigationPage();
     $termsOfServicePage->Title = _t('TermsOfServicePage.DEFAULT_TITLE', 'terms of service');
     $termsOfServicePage->URLSegment = _t('TermsOfServicePage.DEFAULT_URLSEGMENT', 'terms-of-service');
     $termsOfServicePage->Status = "Published";
     $termsOfServicePage->ShowInMenus = 1;
     $termsOfServicePage->ParentID = $legalNavigationHolder->ID;
     $termsOfServicePage->IdentifierCode = "TermsOfServicePage";
     $termsOfServicePage->write();
     $termsOfServicePage->publish("Stage", "Live");
     $revocationInstructionPage = new RedirectorPage();
     $revocationInstructionPage->RedirectionType = 'Internal';
     $revocationInstructionPage->LinkToID = $termsOfServicePage->ID;
     $revocationInstructionPage->Title = _t('RevocationInstructionPage.DEFAULT_TITLE', 'revocation instruction');
     $revocationInstructionPage->URLSegment = _t('RevocationInstructionPage.DEFAULT_URLSEGMENT', 'revocation-instruction');
     $revocationInstructionPage->Status = "Published";
     $revocationInstructionPage->ShowInMenus = 1;
     $revocationInstructionPage->ParentID = $legalNavigationHolder->ID;
     $revocationInstructionPage->IdentifierCode = "SilvercartRevocationInstructionPage";
     $revocationInstructionPage->write();
     $revocationInstructionPage->publish("Stage", "Live");
     $revocationPage = new SilvercartRevocationFormPage();
     $revocationPage->Title = _t('SilvercartRevocationFormPage.DEFAULT_TITLE', 'Revocation');
     $revocationPage->URLSegment = _t('SilvercartRevocationFormPage.DEFAULT_URLSEGMENT', 'Revocation');
     $revocationPage->Status = "Published";
     $revocationPage->ShowInMenus = 1;
     $revocationPage->IdentifierCode = "SilvercartRevocationFormPage";
     $revocationPage->ParentID = $legalNavigationHolder->ID;
     $revocationPage->write();
     $revocationPage->publish("Stage", "Live");
     $dataPrivacyStatementPage = new SilvercartMetaNavigationPage();
     $dataPrivacyStatementPage->Title = _t('SilvercartDataPrivacyStatementPage.DEFAULT_TITLE', 'data privacy statement');
     $dataPrivacyStatementPage->URLSegment = _t('SilvercartDataPrivacyStatementPage.DEFAULT_URLSEGMENT', 'data-privacy-statement');
     $dataPrivacyStatementPage->Status = "Published";
     $dataPrivacyStatementPage->ShowInMenus = 1;
     $dataPrivacyStatementPage->IdentifierCode = "DataPrivacyStatementPage";
     $dataPrivacyStatementPage->ParentID = $legalNavigationHolder->ID;
     $dataPrivacyStatementPage->write();
     $dataPrivacyStatementPage->publish("Stage", "Live");
     // Sub pages of service node
     $this->createDefaultSiteTreeMyAccountSection($serviceNavigationHolder);
     $paymentMethodsPage = new SilvercartPaymentMethodsPage();
     $paymentMethodsPage->Title = _t('SilvercartPaymentMethodsPage.DEFAULT_TITLE', 'Payment methods');
     $paymentMethodsPage->URLSegment = _t('SilvercartPaymentMethodsPage.DEFAULT_URLSEGMENT', 'payment-methods');
     $paymentMethodsPage->Status = "Published";
     $paymentMethodsPage->ShowInMenus = 1;
     $paymentMethodsPage->ParentID = $serviceNavigationHolder->ID;
     $paymentMethodsPage->IdentifierCode = "SilvercartPaymentMethodsPage";
     $paymentMethodsPage->write();
     $paymentMethodsPage->publish("Stage", "Live");
     $shippingFeesPage = new SilvercartShippingFeesPage();
     $shippingFeesPage->Title = _t('SilvercartShippingFeesPage.DEFAULT_TITLE', 'shipping fees');
     $shippingFeesPage->URLSegment = _t('SilvercartShippingFeesPage.DEFAULT_URLSEGMENT', 'shipping-fees');
     $shippingFeesPage->Status = "Published";
     $shippingFeesPage->ShowInMenus = 1;
     $shippingFeesPage->ParentID = $serviceNavigationHolder->ID;
     $shippingFeesPage->IdentifierCode = "SilvercartShippingFeesPage";
     $shippingFeesPage->write();
     $shippingFeesPage->publish("Stage", "Live");
     $newsletterPage = new SilvercartNewsletterPage();
     $newsletterPage->Title = _t('SilvercartNewsletterPage.DEFAULT_TITLE', 'Newsletter');
     $newsletterPage->URLSegment = _t('SilvercartNewsletterPage.DEFAULT_URLSEGMENT', 'newsletter');
     $newsletterPage->Status = "Published";
     $newsletterPage->ShowInMenus = true;
     $newsletterPage->ShowInSearch = true;
     $newsletterPage->ParentID = $serviceNavigationHolder->ID;
     $newsletterPage->IdentifierCode = "SilvercartNewsletterPage";
     $newsletterPage->write();
     $newsletterPage->publish("Stage", "Live");
     $newsletterResponsePage = new SilvercartNewsletterResponsePage();
     $newsletterResponsePage->Title = _t('SilvercartNewsletterResponsePage.DEFAULT_TITLE', 'Newsletter Status');
     $newsletterResponsePage->URLSegment = _t('SilvercartNewsletterResponsePage.DEFAULT_URLSEGMENT', 'newsletter_status');
     $newsletterResponsePage->Status = "Published";
     $newsletterResponsePage->ShowInMenus = false;
     $newsletterResponsePage->ShowInSearch = false;
     $newsletterResponsePage->ParentID = $newsletterPage->ID;
     $newsletterResponsePage->IdentifierCode = "SilvercartNewsletterResponsePage";
     $newsletterResponsePage->write();
     $newsletterResponsePage->publish("Stage", "Live");
     $newsletterOptInConfirmationPage = new SilvercartNewsletterOptInConfirmationPage();
     $newsletterOptInConfirmationPage->Title = _t('SilvercartNewsletterOptInConfirmationPage.DEFAULT_TITLE', 'register confirmation page');
     $newsletterOptInConfirmationPage->URLSegment = _t('SilvercartNewsletterOptInConfirmationPage.DEFAULT_URLSEGMENT', 'register-confirmation');
     $newsletterOptInConfirmationPage->Content = _t('SilvercartNewsletterOptInConfirmationPage.DEFAULT_CONTENT');
     $newsletterOptInConfirmationPage->ConfirmationFailureMessage = _t('SilvercartNewsletterOptInConfirmationPage.DEFAULT_CONFIRMATIONFAILUREMESSAGE');
     $newsletterOptInConfirmationPage->ConfirmationSuccessMessage = _t('SilvercartNewsletterOptInConfirmationPage.DEFAULT_CONFIRMATIONSUCCESSMESSAGE');
     $newsletterOptInConfirmationPage->AlreadyConfirmedMessage = _t('SilvercartNewsletterOptInConfirmationPage.DEFAULT_ALREADYCONFIRMEDMESSAGE');
     $newsletterOptInConfirmationPage->Status = "Published";
     $newsletterOptInConfirmationPage->ParentID = $newsletterPage->ID;
     $newsletterOptInConfirmationPage->ShowInMenus = false;
     $newsletterOptInConfirmationPage->ShowInSearch = false;
     $newsletterOptInConfirmationPage->IdentifierCode = "SilvercartNewsletterOptInConfirmationPage";
     $newsletterOptInConfirmationPage->write();
     $newsletterOptInConfirmationPage->publish("Stage", "Live");
     // Sub pages of about node
     $imprintPage = new SilvercartMetaNavigationPage();
     $imprintPage->Title = _t('ImprintPage.DEFAULT_TITLE', 'imprint');
     $imprintPage->URLSegment = _t('ImprintPage.DEFAULT_URLSEGMENT', 'imprint');
     $imprintPage->Status = "Published";
     $imprintPage->ShowInMenus = 1;
     $imprintPage->ParentID = $aboutNavigationHolder->ID;
     $imprintPage->IdentifierCode = "ImprintPage";
     $imprintPage->write();
     $imprintPage->publish("Stage", "Live");
     $contactPage = new SilvercartContactFormPage();
     $contactPage->Title = _t('SilvercartContactFormPage.DEFAULT_TITLE', 'contact');
     $contactPage->URLSegment = _t('SilvercartContactFormPage.DEFAULT_URLSEGMENT', 'contact');
     $contactPage->Status = "Published";
     $contactPage->ShowInMenus = 1;
     $contactPage->IdentifierCode = "SilvercartContactFormPage";
     $contactPage->ParentID = $aboutNavigationHolder->ID;
     $contactPage->write();
     $contactPage->publish("Stage", "Live");
     $contactFormResponsePage = new SilvercartContactFormResponsePage();
     $contactFormResponsePage->Title = _t('SilvercartContactFormResponsePage.DEFAULT_TITLE', 'contact confirmation');
     $contactFormResponsePage->URLSegment = _t('SilvercartContactFormResponsePage.DEFAULT_URLSEGMENT', 'contactconfirmation');
     $contactFormResponsePage->Status = "Published";
     $contactFormResponsePage->ShowInMenus = false;
     $contactFormResponsePage->ShowInSearch = false;
     $contactFormResponsePage->IdentifierCode = "SilvercartContactFormResponsePage";
     $contactFormResponsePage->ParentID = $contactPage->ID;
     $contactFormResponsePage->Content = _t('SilvercartContactFormResponsePage.DEFAULT_CONTENT', 'Many thanks for Your message. Your request will be answered as soon as possible.');
     $contactFormResponsePage->write();
     $contactFormResponsePage->publish("Stage", "Live");
     // Sub pages of shop node
     $silvercartDePage = new RedirectorPage();
     $silvercartDePage->RedirectionType = 'External';
     $silvercartDePage->ExternalURL = 'http://www.silvercart.de';
     $silvercartDePage->Title = 'silvercart.de';
     $silvercartDePage->URLSegment = 'silvercart-de';
     $silvercartDePage->Status = "Published";
     $silvercartDePage->ShowInMenus = 1;
     $silvercartDePage->ParentID = $shopNavigationHolder->ID;
     $silvercartDePage->write();
     $silvercartDePage->publish("Stage", "Live");
     $silvercartOrgPage = new RedirectorPage();
     $silvercartOrgPage->RedirectionType = 'External';
     $silvercartOrgPage->ExternalURL = 'http://www.silvercart.org';
     $silvercartOrgPage->Title = 'silvercart.org';
     $silvercartOrgPage->URLSegment = 'silvercart-org';
     $silvercartOrgPage->Status = "Published";
     $silvercartOrgPage->ShowInMenus = 1;
     $silvercartOrgPage->ParentID = $shopNavigationHolder->ID;
     $silvercartOrgPage->write();
     $silvercartOrgPage->publish("Stage", "Live");
 }
 /**
  * Uses the children of SilvercartMetaNavigationHolder to render a subnavigation
  * with the SilvercartSubNavigation.ss template.
  * 
  * @param string $identifierCode param only added because it exists on parent::getSubNavigation
  *                               to avoid strict notice
  *
  * @return string
  */
 public function getSubNavigation($identifierCode = 'SilvercartProductGroupHolder')
 {
     $root = $this->dataRecord;
     $output = '';
     if ($root->ClassName != 'SilvercartMetaNavigationHolder') {
         while ($root->ClassName != 'SilvercartMetaNavigationHolder') {
             $root = $root->Parent();
             if ($root->ParentID == 0) {
                 $root = null;
                 break;
             }
         }
     }
     if (!is_null($root)) {
         $elements = array('SubElementsTitle' => $root->MenuTitle, 'SubElements' => $root->Children());
         $output = $this->customise($elements)->renderWith(array('SilvercartSubNavigation'));
         $sisters = SilvercartMetaNavigationHolder::get();
         if ($sisters instanceof DataList) {
             foreach ($sisters as $sister) {
                 if ($sister->ID == $root->ID || $sister->Parent() instanceof SilvercartMetaNavigationHolder) {
                     continue;
                 }
                 $elements = array('SubElementsTitle' => $sister->MenuTitle, 'SubElements' => $sister->Children());
                 $output .= $this->customise($elements)->renderWith(array('SilvercartSubNavigation'));
             }
         }
     }
     return $output;
 }
 /**
  * Returns the CMS fields.
  * 
  * @return FieldList
  */
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->findOrMakeTab('Root.FormFields', $this->fieldLabel('FormFieldsTab'));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('EnableStreet', $this->fieldLabel('EnableStreet')));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('StreetIsRequired', $this->fieldLabel('StreetIsRequired')));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('EnableCity', $this->fieldLabel('EnableCity')));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('CityIsRequired', $this->fieldLabel('CityIsRequired')));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('EnableCountry', $this->fieldLabel('EnableCountry')));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('CountryIsRequired', $this->fieldLabel('CountryIsRequired')));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('EnablePhoneNumber', $this->fieldLabel('EnablePhoneNumber')));
     $fields->addFieldToTab('Root.FormFields', new CheckboxField('PhoneNumberIsRequired', $this->fieldLabel('PhoneNumberIsRequired')));
     return $fields;
 }
Esempio n. 5
0
 /**
  * Returns the footer columns.
  * 
  * @return DataList
  */
 public function getFooterColumns()
 {
     $metanavigationHolder = SilvercartMetaNavigationHolder::get()->filter('ClassName', 'SilvercartMetaNavigationHolder');
     return $metanavigationHolder;
 }