Ignore:
Timestamp:
2007/09/21 12:14:28 (19 years ago)
Author:
adachi
Message:

*feature-templatesブランチをマージ r15704-15822
・テンプレート機能改善
・テンプレート変数$URL_DIR, $TPL_PKG_URLの追加

*細かな修正
・myページのforgot/index.phpへのリンクを修正
・使用していないファイルの削除 test/*, faq/*, fax/*, upgrade/*
・user_dataにtplファイルへのアクセスをはじくhtaccessを設置

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/beta/data/class/SC_View.php

    r15690 r15825  
    1212class SC_View { 
    1313 
     14    /** Smarty¥¤¥ó¥¹¥¿¥ó¥¹ */ 
    1415    var $_smarty; 
    15     var $objSiteInfo; // ¥µ¥¤¥È¾ðÊó 
    16  
    17     // ¥³¥ó¥¹¥È¥é¥¯¥¿ 
    18     function SC_View($siteinfo = true) { 
    19         global $SC_VIEW_PHP_DIR; 
     16    /** SC_SiteInfo¤Î¥¤¥ó¥¹¥¿¥ó¥¹ */ 
     17    var $objSiteInfo; 
     18    /** ¥Ú¡¼¥¸½ÐÎÏ¥Ù¥ó¥Á¥Þ¡¼¥¯¤Î³«»Ï»þ´Ö */ 
     19    var $time_start; 
     20    /** »ÈÍѤ·¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Ñ¥Ã¥±¡¼¥¸Ì¾ */ 
     21    var $tplName; 
     22 
     23    /** 
     24     * ¥³¥ó¥¹¥È¥é¥¯¥¿ 
     25     * 
     26     * @param boolean $assignSiteInfo ¥µ¥¤¥È¾ðÊó¤òassign¤¹¤ë¤«¤É¤¦¤« 
     27     */ 
     28    function SC_View($assignSiteInfo = true) { 
     29        // ¥Ú¡¼¥¸½ÐÎϤΥ٥ó¥Á¥Þ¡¼¥¯¥¹¥¿¡¼¥È 
     30        $this->setStartTime(); 
     31 
     32        // Smarty½é´ü²½ 
     33        $this->initSmarty(); 
     34 
     35        $this->tplName = $this->getTemplateName(); 
     36        $this->assignDefaultVars(); 
     37 
     38        // ¥µ¥¤¥È¾ðÊó¤òassign¤¹¤ë 
     39        if($assignSiteInfo) $this->assignSiteInfo(); 
     40    } 
     41 
     42    /** 
     43     * Smarty¤Î½é´ü²½. 
     44     * ½¤¾þ»ì¤ä¥Æ¥ó¥×¥ì¡¼¥È´Ø¿ô¤ÎÄêµÁ¤ò¹Ô¤¦. 
     45     * 
     46     * @param void 
     47     * @return void 
     48     */ 
     49    function initSmarty() { 
     50        $SC_VIEW_PHP_DIR = realpath(dirname(__FILE__)); 
    2051 
    2152        $this->_smarty = new Smarty; 
     
    3768        $this->_smarty->register_function("sfRmDupSlash", "sfRmDupSlash"); 
    3869        $this->_smarty->register_function("sfCutString", "sfCutString"); 
    39         $this->_smarty->plugins_dir=array("plugins", $SC_VIEW_PHP_DIR . "/../smarty_extends"); 
     70        $this->_smarty->plugins_dir = array("plugins", $SC_VIEW_PHP_DIR . "/../smarty_extends"); 
    4071        $this->_smarty->register_function("sf_mb_convert_encoding","sf_mb_convert_encoding"); 
    4172        $this->_smarty->register_function("sf_mktime","sf_mktime"); 
     
    4677        $this->_smarty->register_function("sfIsHTTPS","sfIsHTTPS"); 
    4778        $this->_smarty->default_modifiers = array('script_escape'); 
    48  
    49         if(ADMIN_MODE == '1') { 
    50             $this->time_start = time(); 
    51         } 
    52  
    53         // ¥µ¥¤¥È¾ðÊó¤ò¼èÆÀ¤¹¤ë 
    54         if($siteinfo) { 
    55             if(!defined('LOAD_SITEINFO')) { 
    56                 $this->objSiteInfo = new SC_SiteInfo(); 
    57                 $arrInfo['arrSiteInfo'] = $this->objSiteInfo->data; 
    58  
    59                 // ÅÔÆ»Éܸ©Ì¾¤òÊÑ´¹ 
    60                 global $arrPref; 
    61                 $arrInfo['arrSiteInfo']['pref'] = $arrPref[$arrInfo['arrSiteInfo']['pref']]; 
    62  
    63                  // ¥µ¥¤¥È¾ðÊó¤ò³ä¤êÅö¤Æ¤ë 
    64                 foreach ($arrInfo as $key => $value){ 
    65                     $this->_smarty->assign($key, $value); 
    66                 } 
    67  
    68                 define('LOAD_SITEINFO', 1); 
    69             } 
    70         } 
    71     } 
    72  
    73     // ¥Æ¥ó¥×¥ì¡¼¥È¤ËÃͤò³ä¤êÅö¤Æ¤ë 
    74     function assign($val1, $val2) { 
    75         $this->_smarty->assign($val1, $val2); 
    76     } 
    77  
    78     // ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤ò¼èÆÀ 
     79        $this->_smarty->force_compile = true; 
     80    } 
     81 
     82    /** 
     83     * ¥Ú¡¼¥¸½ÐÎÏ¥Ù¥ó¥Á¥Þ¡¼¥¯¤Î³«»Ï»þ´Ö¤ò¥»¥Ã¥È¤¹¤ë. 
     84     * 
     85     * @param void 
     86     * @return void 
     87     */ 
     88    function setStartTime() { 
     89        // TODO PEAR::BenchMark»È¤¦¡© 
     90        $this->time_start = time(); 
     91    } 
     92 
     93    /** 
     94     * ¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¥ó¥×¥ì¡¼¥ÈÊÑ¿ô¤òassign¤¹¤ë. 
     95     */ 
     96    function assignDefaultVars() { 
     97        $arrDefaultParams = array( 
     98            'URL_DIR' => URL_DIR, 
     99            // FIXME tplName¤¬null¤Î¾ì¹ç¤Î½èÍý 
     100            'TPL_PKG_URL' => URL_DIR . USER_DIR . TPL_PKG_DIR . $this->tplName . '/' 
     101        ); 
     102        $this->assignArray($arrDefaultParams); 
     103    } 
     104 
     105    /** 
     106     * ¥µ¥¤¥È¾ðÊó¤òassign¤¹¤ë. 
     107     * 
     108     * @param void 
     109     * @return void 
     110     */ 
     111    function assignSiteInfo() { 
     112        if (!defined('LOAD_SITEINFO')) { 
     113            $this->objSiteInfo = new SC_SiteInfo(); 
     114            $arrInfo['arrSiteInfo'] = $this->objSiteInfo->data; 
     115 
     116            // ÅÔÆ»Éܸ©Ì¾¤òÊÑ´¹ 
     117            global $arrPref; 
     118            $arrInfo['arrSiteInfo']['pref'] = $arrPref[$arrInfo['arrSiteInfo']['pref']]; 
     119 
     120            // ¥µ¥¤¥È¾ðÊó¤ò³ä¤êÅö¤Æ¤ë 
     121            $this->assignArray($arrInfo); 
     122 
     123            define('LOAD_SITEINFO', 1); 
     124        } 
     125    } 
     126 
     127    /** 
     128     * ¥Æ¥ó¥×¥ì¡¼¥È¤ËÃͤò³ä¤êÅö¤Æ¤ë 
     129     * 
     130     * @param string $key 
     131     * @param mixed $value 
     132     * @return void 
     133     */ 
     134    function assign($key, $value) { 
     135        $this->_smarty->assign($key, $value); 
     136    } 
     137 
     138    /** 
     139     * ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤ò¼èÆÀ 
     140     * 
     141     * @param string $template tpl¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹ 
     142     * @return string ½ÐÎÏ·ë²Ì 
     143     */ 
    79144    function fetch($template) { 
    80145        return $this->_smarty->fetch($template); 
    81146    } 
    82147 
    83     // ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤òɽ¼¨ 
    84     function display($template, $no_error = false) { 
    85         if(!$no_error) { 
     148    /** 
     149     * ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤òɽ¼¨. 
     150     * 
     151     * @param string $template tpl¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹ 
     152     * @return void 
     153     */ 
     154    function display($template, $display = false) { 
     155        // ¥Æ¥ó¥×¥ì¡¼¥ÈÀÚ¤êÂØ¤¨½èÍý 
     156        $this->initDisplay($template); 
     157 
     158        // ¥°¥í¡¼¥Ð¥ë¥¨¥é¡¼¤Îɽ¼¨ 
     159        $this->displayGlobalError($display); 
     160 
     161        // ²èÌÌɽ¼¨ 
     162        $this->_smarty->display($template); 
     163 
     164        // ¥Ù¥ó¥Á¥Þ¡¼¥¯·ë²Ì¤Îɽ¼¨ 
     165        $this->displayBenchMark(); 
     166    } 
     167 
     168    /** 
     169     *  ¥Æ¥ó¥×¥ì¡¼¥ÈÀÚ¤êÂØ¤¨½èÍý¤ò¹Ô¤¦. 
     170     *  ¼ÂÁõ¤Ï»Ò¥¯¥é¥¹¤Ç¹Ô¤¦. 
     171     */ 
     172    function initDisplay($template) {} 
     173 
     174    /** 
     175     * ¥°¥í¡¼¥Ð¥ë¥¨¥é¡¼¤òɽ¼¨¤¹¤ë. 
     176     * 
     177     * @param boolean $display 
     178     * @return void 
     179     */ 
     180    function displayGlobalError($display = false) { 
     181        if (!$display) { 
    86182            global $GLOBAL_ERR; 
    87183            if(!defined('OUTPUT_ERR')) { 
     
    90186            } 
    91187        } 
    92  
    93         $this->_smarty->display($template); 
    94         if(ADMIN_MODE == '1') { 
     188    } 
     189 
     190    /** 
     191     * ¥Ú¡¼¥¸½ÐÎÏ¥Ù¥ó¥Á¥Þ¡¼¥¯¤Î·ë²Ì¤òɽ¼¨¤¹¤ë. 
     192     * ADMIN_MODE¤¬true¤Î¤È¤­¤Î¤ßÍ­¸ú. 
     193     * 
     194     * @param void 
     195     * @return void 
     196     */ 
     197    function displayBenchMark() { 
     198        if (ADMIN_MODE) { 
    95199            $time_end = time(); 
    96200            $time = $time_end - $this->time_start; 
     
    99203    } 
    100204 
    101       // ¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤ÎÊÑ¿ô¤ò¤¹¤Ù¤Æ³ä¤êÅö¤Æ¤ë¡£ 
    102       function assignobj($obj) { 
    103         $data = get_object_vars($obj); 
    104  
    105         foreach ($data as $key => $value){ 
    106             $this->_smarty->assign($key, $value); 
    107         } 
    108       } 
    109  
    110       // Ï¢ÁÛÇÛÎóÆâ¤ÎÊÑ¿ô¤ò¤¹¤Ù¤Æ³ä¤êÅö¤Æ¤ë¡£ 
    111       function assignarray($array) { 
    112           foreach ($array as $key => $val) { 
    113               $this->_smarty->assign($key, $val); 
    114           } 
    115       } 
    116  
    117     // ¥Ç¥Ð¥Ã¥° 
     205    /** 
     206     * ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥á¥ó¥ÐÊÑ¿ô¤òassign¤¹¤ë. 
     207     * 
     208     * @param object $obj LC_Page¤Î¥¤¥ó¥¹¥¿¥ó¥¹ 
     209     * @return void 
     210     */ 
     211    function assignObj($obj) { 
     212        $this->assignArray(get_object_vars($obj)); 
     213    } 
     214 
     215    /** 
     216     * Ï¢ÁÛÇÛÎó¤òassign¤¹¤ë. 
     217     * 
     218     * @param array $arrAssignVars assign¤¹¤ëÏ¢ÁÛÇÛÎó 
     219     * @return void 
     220     */ 
     221    function assignArray($arrAssignVars) { 
     222        foreach ($arrAssignVars as $key => $val) { 
     223            $this->assign($key, $val); 
     224        } 
     225    } 
     226 
     227    /** 
     228     * »ÈÍѤ·¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ò¼èÆÀ¤¹¤ë 
     229     */ 
     230    function getTemplateName() { 
     231        $objQuery = new SC_Query(); 
     232        $arrRet = $objQuery->select('top_tpl', 'dtb_baseinfo'); 
     233 
     234        if (isset($arrRet[0]['top_tpl'])) { 
     235            return $arrRet[0]['top_tpl']; 
     236        } 
     237        return null; 
     238    } 
     239    /** 
     240     * Smarty¤Î¥Ç¥Ð¥Ã¥°½ÐÎϤòÍ­¸ú¤Ë¤¹¤ë. 
     241     * 
     242     * @param void 
     243     * @return void 
     244     */ 
    118245    function debug($var = true){ 
    119246        $this->_smarty->debugging = $var; 
     
    127254        $this->_smarty->compile_dir = COMPILE_ADMIN_DIR; 
    128255    } 
     256 
    129257} 
    130258 
     
    146274        } 
    147275    } 
    148 } 
    149  
     276 
     277    function initDisplay($template) { 
     278        // ¥Æ¥ó¥×¥ì¡¼¥È¤ò»ÈÍѤ·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ïreturn 
     279        if (empty($this->tplName)) return; 
     280 
     281        /** 
     282         * tpl_mainpage¤¬ÁêÂХѥ¹¤Ç¤¢¤ì¤Ð 
     283         * ¥æ¡¼¥¶¡¼¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÀäÂХѥ¹¤ËÊѹ¹¤· 
     284         * ¤½¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ð¤¢¤¤¤Ïtpl_meinpage¤òºÆÅÙassign¤·¾å½ñ¤­¤¹¤ë 
     285         */ 
     286        $tpl_mainpage  = $this->_smarty->get_template_vars('tpl_mainpage'); 
     287        $template_dir = TPL_PKG_PATH . $this->tplName . '/templates/'; 
     288 
     289        $win = "^[a-zA-Z]{1}:"; 
     290        $other = "^\/"; 
     291        $pattern = "/($win)|($other)/"; 
     292        if (!preg_match($pattern, $tpl_mainpage)) { 
     293            $tpl_pkg_mainpage = $template_dir . $tpl_mainpage; 
     294            if (file_exists($tpl_pkg_mainpage)) { 
     295                $this->assign('tpl_mainpage', $tpl_pkg_mainpage); 
     296            } 
     297        } 
     298    } 
     299} 
    150300class SC_UserView extends SC_SiteView{ 
    151301    function SC_UserView($template_dir, $compile_dir = COMPILE_DIR) { 
     
    154304        $this->_smarty->compile_dir = $compile_dir; 
    155305    } 
     306 
     307    function display($template) { 
     308        $this->_smarty->display($template); 
     309    } 
    156310} 
    157311 
     
    162316        $this->_smarty->compile_dir = $compile_dir; 
    163317    } 
     318    function getTemplateName() {} 
    164319} 
    165320 
     
    171326    } 
    172327} 
     328 
    173329?> 
Note: See TracChangeset for help on using the changeset viewer.