function smarty_function_component(array $params, Smarty_Internal_Template $template) { /** @var CM_Frontend_Render $render */ $render = $template->smarty->getTemplateVars('render'); $component = null; if (isset($params['name'])) { $name = $params['name']; unset($params['name']); if (0 === strpos($name, '*_')) { $name = $render->getClassnameByPartialClassname(mb_substr($name, 2)); } $component = CM_Component_Abstract::factory($name, $params); } if (isset($params['view'])) { $view = $params['view']; unset($params['view']); if (!$view instanceof CM_Component_Abstract) { throw new CM_Exception('Unexpected component instance'); } $component = $view; } if (!$component) { throw new CM_Exception('Missing component, either pass `name` or `view`.'); } $renderAdapter = CM_RenderAdapter_Component::factory($render, $component); return $renderAdapter->fetch(); }
/** * @param CM_Params $params * @return array */ public function loadComponent(CM_Params $params) { $component = CM_Component_Abstract::factory($params->getString('className'), $params); $renderAdapter = new CM_RenderAdapter_Component($this->getRender(), $component); $html = $renderAdapter->fetch(); $frontend = $this->getRender()->getGlobalResponse(); $data = array('autoId' => $frontend->getTreeRoot()->getValue()->getAutoId(), 'html' => $html, 'js' => $frontend->getJs()); $frontend->clear(); return $data; }
function smarty_function_component(array $params, Smarty_Internal_Template $template) { /** @var CM_Frontend_Render $render */ $render = $template->smarty->getTemplateVars('render'); if (empty($params['name'])) { trigger_error('Param `name` missing.'); } $classname = null; $name = $params['name']; unset($params['name']); if (0 === strpos($name, '*_')) { $name = $render->getClassnameByPartialClassname(mb_substr($name, 2)); } $component = CM_Component_Abstract::factory($name, $params); $renderAdapter = CM_RenderAdapter_Component::factory($render, $component); return $renderAdapter->fetch(); }
/** * @param CM_Component_Abstract $cmp * @param CM_Model_User|null $viewer * @param string|null $expectedExceptionClass */ public static function assertComponentNotAccessible(CM_Component_Abstract $cmp, CM_Model_User $viewer = null, $expectedExceptionClass = null) { $environment = new CM_Frontend_Environment(null, $viewer); $expectedExceptionClassList = array('CM_Exception_AuthRequired', 'CM_Exception_Nonexistent', 'CM_Exception_NotAllowed'); if (null !== $expectedExceptionClass) { $expectedExceptionClassList = array($expectedExceptionClass); } try { $cmp->checkAccessible($environment); self::fail('checkAccessible should throw exception'); } catch (Exception $e) { self::assertTrue(in_array(get_class($e), $expectedExceptionClassList)); } }
/** * @param string $className * @param CM_Params $params * @return array */ public function loadComponent($className, CM_Params $params) { $component = CM_Component_Abstract::factory($className, $params); return $this->_getComponentRendering($component); }