Source of file UserTemplateShortcode.php
Size: 1,465 Bytes - Last Modified: 2021-12-23T10:35:46+00:00
/var/www/docs.ssmods.com/process/src/src/UserTemplateShortcode.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344 | <?php namespace Symbiote\UserTemplates; use SilverStripe\CMS\Controllers\ContentController; use SilverStripe\CMS\Controllers\ModelAsController; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Control\Controller; class UserTemplateShortcode { public static function render_template($arguments, $content = null, $parser = null) { $templateId = isset($arguments['id']) ? $arguments['id'] : null; $name = isset($arguments['name']) ? $arguments['name'] : null; $contextId = isset($arguments['context_id']) ? $arguments['context_id'] : null; if (!$templateId && !$name) { return "Please specify a template id or name"; } $curr = Controller::has_curr() ? Controller::curr() : null; // allow manual setting of the controller if not found if ($contextId && !($curr instanceof ContentController)) { $page = SiteTree::get()->byID($contextId); if ($page && $page->canView()) { $curr = ModelAsController::controller_for($page); } } $filter = $templateId ? ['ID' => $templateId] : ['Title' => $name]; $template = UserTemplate::get()->filter($filter)->first(); if ($template && $template->canView()) { $context = $curr ? $curr : $template; return $context->renderWith($template->getTemplateFile()); } return "Please specify a template id or name"; } } |