Minahito
minah****@users*****
2006年 10月 3日 (火) 18:29:40 JST
Index: xoops2jp/html/modules/base/kernel/Legacy_AdminRenderSystem.class.php diff -u xoops2jp/html/modules/base/kernel/Legacy_AdminRenderSystem.class.php:1.1.2.12 xoops2jp/html/modules/base/kernel/Legacy_AdminRenderSystem.class.php:removed --- xoops2jp/html/modules/base/kernel/Legacy_AdminRenderSystem.class.php:1.1.2.12 Fri Aug 25 19:14:46 2006 +++ xoops2jp/html/modules/base/kernel/Legacy_AdminRenderSystem.class.php Tue Oct 3 18:29:40 2006 @@ -1,353 +0,0 @@ -<?php -/** - * @package Legacy - */ - -if (!defined('XOOPS_ROOT_PATH')) exit(); - -// -// TODO -// -require_once XOOPS_ROOT_PATH."/modules/legacyRender/kernel/Legacy_RenderSystem.class.php"; - -define('LEGACY_ADMIN_RENDER_TEMPLATE_DIRNAME', "templates"); - -define('LEGACY_ADMIN_RENDER_FALLBACK_PATH', XOOPS_MODULE_PATH . "/base/admin/theme"); -define('LEGACY_ADMIN_RENDER_FALLBACK_URL', XOOPS_MODULE_URL . "/base/admin/theme"); - -require_once XOOPS_ROOT_PATH."/class/smarty/Smarty.class.php"; - -/** - * This class extends Smarty to mediate the collision compiled file name. - */ -class Legacy_AdminSmarty extends Smarty -{ - var $mModulePrefix = null; - - // - // If you don't hope to override for theme, set false. - // - var $overrideMode = true; - - function Legacy_AdminSmarty() - { - parent::Smarty(); - - $this->compile_id = null; - $this->_canUpdateFromFile = true; - $this->compile_check = true; - $this->compile_dir = XOOPS_COMPILE_PATH; - $this->left_delimiter = "<{"; - $this->right_delimiter = "}>"; - - // - // [TODO] - // If we don't set true to the following flag, a user can not recover - // with deleting additional theme. But, a user should to select true or - // false by site_custom.ini.php. - // - $this->force_compile = false; - } - - function setModulePrefix($prefix) - { - $this->mModulePrefix = $prefix; - } - - function _get_auto_filename($autoBase, $autoSource = null, $auotId = null) - { - $autoSource = $this->mModulePrefix . "_admin_" . $autoSource; - return parent::_get_auto_filename($autoBase, $autoSource, $auotId); - } - - function _fetch_resource_info(&$params) - { - $_return = false; - - $root =& XCube_Root::getSingleton(); - $theme = $root->mSiteConfig['Legacy']['Theme']; - $dirname = $this->mModulePrefix; - - if ($dirname != null) { - $params['resource_base_path'] = XOOPS_THEME_PATH . "/" . $theme . "/modules/" . $dirname; - $params['quiet'] = true; - - $_return = parent::_fetch_resource_info($params); - } - - if (!$_return) { - unset ($params['resource_base_path']); - $params['quiet'] = false; - - $_return = parent::_fetch_resource_info($params); - } - - return $_return; - } - -} - -/** - * [TODO] - * We depends on Legacy_RenderSystem that a add-in module defines. We must stop - * this situation. - */ -class Legacy_AdminRenderSystem extends Legacy_RenderSystem -{ - var $mController; - var $mSmarty; - - /** - * This is the buffer which stores standard output when the render-target - * in renderMain() doesn't use a template. - * - * @access private - * @var string - */ - var $_mStdoutBuffer = null; - - function prepare(&$controller) - { - $this->mController =& $controller; - - $this->mSmarty =& new Legacy_AdminSmarty(); - $this->mSmarty->register_modifier("theme", "Legacy_modifier_theme"); - $this->mSmarty->register_function("stylesheet", "Legacy_function_stylesheet"); - - $this->mSmarty->assign(array( - "xoops_url" => XOOPS_URL, - "xoops_rootpath" => XOOPS_ROOT_PATH, - "xoops_langcode" => _LANGCODE, - "xoops_charset" => _CHARSET, - "xoops_version" => XOOPS_VERSION, - "xoops_upload_url" => XOOPS_UPLOAD_URL) - ); - - if ($controller->getConfig('theme_fromfile')) { - $this->mSmarty->force_compile = true; - } - } - - function renderBlock(&$target) - { - $this->mSmarty->template_dir = XOOPS_ROOT_PATH . "/modules/base/admin/templates"; - - foreach ($target->getAttributes() as $key => $value) { - $this->mSmarty->assign($key, $value); - } - - $this->mSmarty->setModulePrefix("base"); - $result = $this->mSmarty->fetch("blocks/" . $target->getTemplateName()); - $target->setResult($result); - - // - // Reset - // - foreach($target->getAttributes() as $key => $value) { - $this->mSmarty->clear_assign($key); - } - } - - function renderTheme(&$target) - { - // - // Assign from attributes of the render-target. - // - foreach($target->getAttributes() as $key=>$value) { - $this->mSmarty->assign($key,$value); - } - - $this->mSmarty->assign('stdout_buffer', $this->_mStdoutBuffer); - - // - // Get a virtual current module object from the controller and assign it. - // - $moduleObject =& $this->mController->getVirtualCurrentModule(); - $this->mSmarty->assign("currentModule", $moduleObject); - - // - // Other attributes - // - $this->mSmarty->assign('xoops_sitename', htmlspecialchars($this->mController->getConfig('sitename'), ENT_QUOTES)); - $this->mSmarty->assign('xoops_slogan', htmlspecialchars($this->mController->getConfig('slogan'), ENT_QUOTES)); - - // - // Theme rendering - // - $blocks = array(); - foreach($this->mController->mBlockContents[0] as $key => $result) { - // $this->mSmarty->append('xoops_lblocks', $result); - $blocks[$result['name']] = $result; - } - $this->mSmarty->assign('xoops_lblocks', $blocks); - - // - // Check Theme or Fallback - // - $root =& XCube_Root::getSingleton(); - $theme = $root->mSiteConfig['Legacy']['Theme']; - - if (file_exists(XOOPS_ROOT_PATH."/themes/".$theme."/admin_theme.html")) { - $this->mSmarty->template_dir=XOOPS_THEME_PATH."/".$theme; - } - else { - $this->mSmarty->template_dir=LEGACY_ADMIN_RENDER_FALLBACK_PATH; - } - - $this->mSmarty->setModulePrefix(''); - $result=$this->mSmarty->fetch("file:admin_theme.html"); - - $target->setResult($result); - } - - function renderMain(&$target) - { - // - // Assign from attributes of the render-target. - // - foreach ($target->getAttributes() as $key=>$value) { - $this->mSmarty->assign($key, $value); - } - - $result = null; - - if ($target->getTemplateName()) { - if ($target->getModuleName()) { - $this->mSmarty->setModulePrefix($target->getModuleName()); - $this->mSmarty->template_dir = XOOPS_MODULE_PATH . "/" . $target->getModuleName() . "/admin/". LEGACY_ADMIN_RENDER_TEMPLATE_DIRNAME; - } - - $result=$this->mSmarty->fetch("file:".$target->getTemplateName()); - $buffer = $target->getAttribute("stdout_buffer"); - - $this->_mStdoutBuffer .= $buffer; - } - else { - $result=$target->getAttribute("stdout_buffer"); - } - - $target->setResult($result); - - // - // Clear assign. - // - foreach ($target->getAttributes() as $key=>$value) { - $this->mSmarty->clear_assign($key); - } - } -} - -/** - * Return URL string by "overriding" rule. - * (Now, test implement) - * 1) Search file in specified theme directory. - * 2) Search file in current module template directory. - * 3) Search file in fallback theme directory. - */ -function Legacy_modifier_theme($string) -{ - $infoArr = Legacy_get_ovveride_file($string); - - if ($infoArr['theme'] != null && $infoArr['dirname'] != null) { - return XOOPS_THEME_URL . "/" . $infoArr['theme'] . "/modules/" . $infoArr['dirname'] . "/" . $string; - } - elseif ($infoArr['theme'] != null) { - return XOOPS_THEME_URL . "/" . $infoArr['theme'] . "/" . $string; - } - elseif ($infoArr['dirname'] != null) { - return XOOPS_MODULE_URL . "/" . $infoArr['dirname'] . "/admin/templates/" . $string; - } - - return LEGACY_ADMIN_RENDER_FALLBACK_URL . "/" . $string; -} - -function Legacy_function_stylesheet($params, &$smarty) -{ - $file = $params['file']; - if (strstr($file, "..") !== false) { - return; - } - - $media = (isset($params['media'])) ? $params['media'] : "all"; - - $infoArr = Legacy_get_ovveride_file($file, "stylesheets/"); - - // TEMP - // TODO We must return FALLBACK_URL here. - if ($infoArr['file'] != null) { - $request = array(); - foreach ($infoArr as $key => $value) { - if ($value != null) { - $request[] = "${key}=${value}"; - } - } - $url = XOOPS_MODULE_URL . "/base/admin/css.php?" . implode("&", $request); - print '<link rel="stylesheet" type="text/css" media="'. $media .'" href="' . $url . '" />'; - } -} - -function Legacy_get_ovveride_file($file, $prefix = null, $isSpDirname = false) -{ - $root =& XCube_Root::getSingleton(); - $modController =& $root->mController->getModuleController(); - $moduleObject =& $modController->getXoopsModule(); - - if ($isSpDirname && is_object($moduleObject) && $moduleObject->get('dirname') == 'base' && isset($_REQUEST['dirname'])) { - if (preg_match("/^[a-z0-9_]+$/i", xoops_getrequest('dirname'))) { - $handler =& xoops_gethandler('module'); - $moduleObject =& $handler->getByDirname(xoops_getrequest('dirname')); - } - } - - $theme = $root->mSiteConfig['Legacy']['Theme']; - - $ret = array(); - $ret['theme'] = $theme; - $ret['file'] = $file; - - $file = $prefix . $file; - - if (!is_object($moduleObject)) { - $themePath = XOOPS_THEME_PATH . "/" . $theme . "/" . $file; - if (file_exists($themePath)) { - return $ret; - } - - $ret['theme'] = null; - return $ret; - } - else { - $dirname = $moduleObject->get('dirname'); - - $ret['dirname'] = $dirname; - - $themePath = XOOPS_THEME_PATH . "/" . $theme . "/modules/" . $dirname . "/" . $file; - if (file_exists($themePath)) { - return $ret; - } - - $themePath = XOOPS_THEME_PATH . "/" . $theme . "/" . $file; - if (file_exists($themePath)) { - $ret['dirname'] = null; - return $ret; - } - - $ret['theme'] = null; - - $modulePath = XOOPS_MODULE_PATH . "/" . $dirname . "/admin/templates/" . $file; - if (file_exists($modulePath)) { - return $ret; - } - - $ret['dirname'] = null; - - if (file_exists(LEGACY_ADMIN_RENDER_FALLBACK_PATH . "/" . $file)) { - return $ret; - } - - $ret['file'] =null; - return $ret; - } -} - -?> \ No newline at end of file