public function Display($sTemplate) { // ajax-запросы нас не интересуют ? if (!$this->sResponseAjax) { if ($sTemplate) { $sTemplate = ACE::FilePath($this->Plugin_GetDelegate('template', $sTemplate), '/'); if (!$this->TemplateExists($sTemplate)) { if (dirname($sTemplate) == '.') { if (strpos($sClass = Router::GetActionClass(), 'Plugin') === 0) { $sTemplate = HelperPlugin::GetPluginSkinPath($sClass) . 'actions/Action' . ucfirst(Router::GetAction()) . '/' . $sTemplate; } } $sTemplate = $this->_getRealTeplate($sTemplate); } $sPathRoot = ACE::FilePath(Config::Get('path.root.server'), '/'); if ($this->bAddPluginDirs and strpos($sTemplate, $sPathRoot) === 0 and is_file($sTemplate)) { // добавляем пути к шаблонам $sPath = dirname($sTemplate); if ($sPath and $sPath != '.') { $this->AddTemplateDir($sPath, true); if (basename(dirname($sPath)) == 'actions') { $this->AddTemplateDir(dirname(dirname($sPath)), true); } } } } } $this->_initTplHooks(); return parent::Display($sTemplate); }
/** * Получить каталог с шаблонами экшена(совпадает с именем класса) * @see Router::GetActionClass * * @return string */ public function GetActionClass() { return Router::GetActionClass(); }
/** * Получить путь (полное имя файла) к шаблону акшена * * @param string $sFile * @return string */ public static function GetTemplateActionPath($sFile = '') { $aClassElements = self::ClassNameExplode(Router::GetActionClass()); if (isset($aClassElements['Action'])) { $sAction = $aClassElements['Action']; } else { $sAction = Router::GetAction(); } return self::GetTemplatePath('actions/Action' . ucfirst($sAction) . '/' . $sFile); }