Source of file EcommerceSiteTreeExtension.php
Size: 2,001 Bytes - Last Modified: 2021-12-23T10:39:35+00:00
/var/www/docs.ssmods.com/process/src/src/Model/Extensions/EcommerceSiteTreeExtension.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | <?php namespace Sunnysideup\Ecommerce\Model\Extensions; use SilverStripe\CMS\Model\SiteTreeExtension; use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use Sunnysideup\Ecommerce\Config\EcommerceConfig; use Sunnysideup\Ecommerce\Config\EcommerceConfigAjax; use Sunnysideup\Ecommerce\Pages\ProductGroup; /** * @description: adds a few functions to SiteTree to give each page * some e-commerce related functionality. * * @authors: Nicolaas [at] Sunny Side Up .co.nz * @package: ecommerce * @sub-package: extensions */ class EcommerceSiteTreeExtension extends SiteTreeExtension { /** * returns the instance of EcommerceConfigAjax for use in templates. * In templates, it is used like this: * $AJAXDefinitions.TableID. * * @return EcommerceConfigAjax */ public function AJAXDefinitions() { return EcommerceConfigAjax::get_one($this->owner); } /** * tells us if the current page is part of e-commerce. * * @return bool */ public function IsEcommercePage() { return false; } /** * Log in link. * * @return string */ public function EcommerceLogInLink() { if ($this->getOwner()->IsEcommercePage()) { $link = $this->getOwner()->Link(); } else { $link = EcommerceConfig::inst()->AccountPageLink(); } return Controller::join_links( Director::absoluteBaseURL(), '/Security/login' ) . '?BackURL=' . urlencode($link); } public function augmentValidURLSegment() { if ($this->owner instanceof ProductGroup) { $checkForDuplicatesURLSegments = ProductGroup::get() ->filter(['URLSegment' => $this->getOwner()->URLSegment]) ->exclude(['ID' => $this->getOwner()->ID]) ; if ($checkForDuplicatesURLSegments->exists()) { return false; } } } } |