diff --git a/modules/cms/classes/Controller.php b/modules/cms/classes/Controller.php index b42571a88..d7769aff3 100644 --- a/modules/cms/classes/Controller.php +++ b/modules/cms/classes/Controller.php @@ -959,6 +959,17 @@ class Controller extends BaseController return $this->pageObj; } + /** + * Returns the CMS page object being processed by the controller. + * The object is not available on the early stages of the controller + * initialization. + * @return \Cms\Classes\Page Returns the Page object or null. + */ + public function getPage() + { + return $this->page; + } + /** * Intended to be called from the page, returns the layout code base object. * @return \Cms\Classes\CodeBase diff --git a/modules/cms/twig/Extension.php b/modules/cms/twig/Extension.php index 41a07c089..6b319bce6 100644 --- a/modules/cms/twig/Extension.php +++ b/modules/cms/twig/Extension.php @@ -3,6 +3,7 @@ use URL; use Flash; use Block; +use Event; use Twig_Extension; use Twig_TokenParser; use Twig_SimpleFilter; @@ -204,6 +205,9 @@ class Extension extends Twig_Extension return $default; } + if ($event = Event::fire('cms.block.render', [$name, $result], true)) + $result = $event; + $result = str_replace('', trim($default), $result); return $result; }