Source of file ElementalContentControllerExtension.php
Size: 1,341 Bytes - Last Modified: 2021-12-24T06:44:48+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/ElementalContentControllerExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | <?php namespace DNADesign\Elemental\Extensions; use DNADesign\Elemental\Models\ElementalArea; use DNADesign\Elemental\Extensions\ElementalAreasExtension; use SilverStripe\Core\Extension; class ElementalContentControllerExtension extends Extension { /** * @var array */ private static $allowed_actions = array( 'handleElement' ); public function handleElement() { $id = $this->owner->getRequest()->param('ID'); if (!$id) { user_error('No element ID supplied', E_USER_ERROR); return false; } /** @var SiteTree $elementOwner */ $elementOwner = $this->owner->data(); $elementalAreaRelations = $this->owner->getElementalRelations(); if (!$elementalAreaRelations) { user_error(get_class($this->owner) . ' has no ElementalArea relationships', E_USER_ERROR); return false; } foreach ($elementalAreaRelations as $elementalAreaRelation) { $element = $elementOwner->$elementalAreaRelation()->Elements() ->filter('ID', $id) ->First(); if ($element) { return $element->getController(); } } user_error('Element $id not found for this page', E_USER_ERROR); return false; } } |