Source of file CommerceURLController.php
Size: 1,401 Bytes - Last Modified: 2021-12-24T05:16:32+00:00
/var/www/docs.ssmods.com/process/src/code/control/CommerceURLController.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | <?php /** * CommerceURLController determins what part of Silverstripe (framework, Commerce * or CMS) will handle the current URL. * * @package commerce * @subpackage control */ class CommerceURLController extends Controller { public function init() { parent::init(); } public function handleRequest(SS_HTTPRequest $request, DataModel $model) { $this->pushCurrent(); $this->urlParams = $request->allParams(); $this->request = $request; $this->response = new SS_HTTPResponse(); $this->setDataModel($model); $urlsegment = $request->param('URLSegment'); $this->extend('onBeforeInit'); $this->init(); $this->extend('onAfterInit'); // First check products against URL segment if($product = Product::get()->filter(array('URLSegment'=>$urlsegment,'Disabled'=>0))->first()) { $controller = Catalogue_Controller::create($product); } elseif($category = ProductCategory::get()->filter('URLSegment',$urlsegment)->first()) { $controller = Catalogue_Controller::create($category); } else { // If CMS is installed if(class_exists('ModelAsController')) $controller = ModelAsController::create(); } $result = $controller->handleRequest($request, $model); $this->popCurrent(); return $result; } } |