Source of file ContentBlockControllerExtension.php
Size: 1,154 Bytes - Last Modified: 2021-12-24T06:43:27+00:00
/var/www/docs.ssmods.com/process/src/src/Extension/ContentBlockControllerExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344 | <?php namespace CyberDuck\BlockPage\Extension; use CyberDuck\BlockPage\Model\ContentBlock; use SilverStripe\Control\Controller; use SilverStripe\Core\Extension; use SilverStripe\Core\Injector\Injector; class ContentBlockControllerExtension extends Extension { private static $allowed_actions = [ 'handleContentBlock', ]; /** * Handles Content Block Controller request * * @param HttpRequest $request * * @return Controller Current Content Block Controller */ public function handleContentBlock($request) { $id = $request->param('ID'); $action = $request->param('OtherID'); $block = ContentBlock::get()->byId($id); $blockController = $block->ClassName.'Controller'; if (class_exists($blockController)) { $blockController = Injector::inst()->get($blockController, true, [$block]); $blockController->doInit(); if (! $blockController->checkAccessAction($action)) { // TODO: raise user Exception } return $blockController; } return Controller::curr(); } } |