/** * 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; }
/** * Returns the footer columns. * * @return DataList */ public function getFooterColumns() { $metanavigationHolder = SilvercartMetaNavigationHolder::get()->filter('ClassName', 'SilvercartMetaNavigationHolder'); return $metanavigationHolder; }