Ignore:
Timestamp:
2007/09/20 14:22:18 (15 years ago)
Author:
adachi
Message:

テンプレート切り替え. 仮コミット

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-templates/data/class/SC_View.php

    r15690 r15776  
    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    /** 
     22     * ¥³¥ó¥¹¥È¥é¥¯¥¿ 
     23     * 
     24     * @param boolean $assignSiteInfo ¥µ¥¤¥È¾ðÊó¤òassign¤¹¤ë¤«¤É¤¦¤« 
     25     */ 
     26    function SC_View($assignSiteInfo = true) { 
     27        // ¥Ú¡¼¥¸½ÐÎϤΥ٥ó¥Á¥Þ¡¼¥¯¥¹¥¿¡¼¥È 
     28        $this->setStartTime(); 
     29 
     30        // Smarty½é´ü²½ 
     31        $this->initSmarty(); 
     32 
     33        // ¥µ¥¤¥È¾ðÊó¤òassign¤¹¤ë 
     34        if($assignSiteInfo) $this->assignSiteInfo(); 
     35    } 
     36 
     37    /** 
     38     * Smarty¤Î½é´ü²½. 
     39     * ½¤¾þ»ì¤ä¥Æ¥ó¥×¥ì¡¼¥È´Ø¿ô¤ÎÄêµÁ¤ò¹Ô¤¦. 
     40     * 
     41     * @param void 
     42     * @return void 
     43     */ 
     44    function initSmarty() { 
     45        $SC_VIEW_PHP_DIR = realpath(dirname(__FILE__)); 
    2046 
    2147        $this->_smarty = new Smarty; 
     
    3763        $this->_smarty->register_function("sfRmDupSlash", "sfRmDupSlash"); 
    3864        $this->_smarty->register_function("sfCutString", "sfCutString"); 
    39         $this->_smarty->plugins_dir=array("plugins", $SC_VIEW_PHP_DIR . "/../smarty_extends"); 
     65        $this->_smarty->plugins_dir = array("plugins", $SC_VIEW_PHP_DIR . "/../smarty_extends"); 
    4066        $this->_smarty->register_function("sf_mb_convert_encoding","sf_mb_convert_encoding"); 
    4167        $this->_smarty->register_function("sf_mktime","sf_mktime"); 
     
    4672        $this->_smarty->register_function("sfIsHTTPS","sfIsHTTPS"); 
    4773        $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     // ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤ò¼èÆÀ 
     74    } 
     75 
     76    /** 
     77     * ¥Ú¡¼¥¸½ÐÎÏ¥Ù¥ó¥Á¥Þ¡¼¥¯¤Î³«»Ï»þ´Ö¤ò¥»¥Ã¥È¤¹¤ë. 
     78     * 
     79     * @param void 
     80     * @return void 
     81     */ 
     82    function setStartTime() { 
     83        // TODO PEAR::BenchMark»È¤¦¡© 
     84        $this->time_start = time(); 
     85    } 
     86 
     87    /** 
     88     * ¥Ç¥Õ¥©¥ë¥È¥Ñ¥é¥á¡¼¥¿¤òassign¤¹¤ë. 
     89     */ 
     90    function defaultAssign() { 
     91        $arrDefaultParams = array( 
     92            'URL_DIR' => URL_DIR, 
     93            //'TPL_PKG_DIR' => $this->getTemplatePath() 
     94        ); 
     95        $this->assignArray($arrDefaultParams); 
     96    } 
     97 
     98    /** 
     99     * ¥µ¥¤¥È¾ðÊó¤òassign¤¹¤ë. 
     100     * 
     101     * @param void 
     102     * @return void 
     103     */ 
     104    function assignSiteInfo() { 
     105        if (!defined('LOAD_SITEINFO')) { 
     106            $this->objSiteInfo = new SC_SiteInfo(); 
     107            $arrInfo['arrSiteInfo'] = $this->objSiteInfo->data; 
     108 
     109            // ÅÔÆ»Éܸ©Ì¾¤òÊÑ´¹ 
     110            global $arrPref; 
     111            $arrInfo['arrSiteInfo']['pref'] = $arrPref[$arrInfo['arrSiteInfo']['pref']]; 
     112 
     113            // ¥µ¥¤¥È¾ðÊó¤ò³ä¤êÅö¤Æ¤ë 
     114            $this->assignArray($arrInfo); 
     115 
     116            define('LOAD_SITEINFO', 1); 
     117        } 
     118    } 
     119 
     120    /** 
     121     * ¥Æ¥ó¥×¥ì¡¼¥È¤ËÃͤò³ä¤êÅö¤Æ¤ë 
     122     * 
     123     * @param string $key 
     124     * @param mixed $value 
     125     * @return void 
     126     */ 
     127    function assign($key, $value) { 
     128        $this->_smarty->assign($key, $value); 
     129    } 
     130 
     131    /** 
     132     * ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤ò¼èÆÀ 
     133     * 
     134     * @param string $template tpl¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹ 
     135     * @return string ½ÐÎÏ·ë²Ì 
     136     */ 
    79137    function fetch($template) { 
    80138        return $this->_smarty->fetch($template); 
    81139    } 
    82140 
    83     // ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤òɽ¼¨ 
    84     function display($template, $no_error = false) { 
    85         if(!$no_error) { 
     141    /** 
     142     * ¥Æ¥ó¥×¥ì¡¼¥È¤Î½èÍý·ë²Ì¤òɽ¼¨. 
     143     * 
     144     * @param string $template tpl¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹ 
     145     * @return void 
     146     */ 
     147    function display($template, $display = false) { 
     148        // ¥°¥í¡¼¥Ð¥ë¥¨¥é¡¼¤Îɽ¼¨ 
     149        $this->displayGlobalError($display); 
     150 
     151        // ²èÌÌɽ¼¨ 
     152        $this->_smarty->display($template); 
     153 
     154        // ¥Ù¥ó¥Á¥Þ¡¼¥¯·ë²Ì¤Îɽ¼¨ 
     155        $this->displayBenchMark(); 
     156    } 
     157 
     158    /** 
     159     * ¥°¥í¡¼¥Ð¥ë¥¨¥é¡¼¤òɽ¼¨¤¹¤ë. 
     160     * 
     161     * @param boolean $display 
     162     * @return void 
     163     */ 
     164    function displayGlobalError($display = false) { 
     165        if (!$display) { 
    86166            global $GLOBAL_ERR; 
    87167            if(!defined('OUTPUT_ERR')) { 
     
    90170            } 
    91171        } 
    92  
    93         $this->_smarty->display($template); 
    94         if(ADMIN_MODE == '1') { 
     172    } 
     173 
     174    /** 
     175     * ¥Ú¡¼¥¸½ÐÎÏ¥Ù¥ó¥Á¥Þ¡¼¥¯¤Î·ë²Ì¤òɽ¼¨¤¹¤ë. 
     176     * ADMIN_MODE¤¬true¤Î¤È¤­¤Î¤ßÍ­¸ú. 
     177     * 
     178     * @param void 
     179     * @return void 
     180     */ 
     181    function displayBenchMark() { 
     182        if (ADMIN_MODE) { 
    95183            $time_end = time(); 
    96184            $time = $time_end - $this->time_start; 
     
    99187    } 
    100188 
    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     // ¥Ç¥Ð¥Ã¥° 
     189    /** 
     190     * ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥á¥ó¥ÐÊÑ¿ô¤òassign¤¹¤ë. 
     191     * 
     192     * @param object $obj LC_Page¤Î¥¤¥ó¥¹¥¿¥ó¥¹ 
     193     * @return void 
     194     */ 
     195    function assignObj($obj) { 
     196        $this->assignArray(get_object_vars($obj)); 
     197    } 
     198 
     199    /** 
     200     * Ï¢ÁÛÇÛÎó¤òassign¤¹¤ë. 
     201     * 
     202     * @param array $arrAssignVars assign¤¹¤ëÏ¢ÁÛÇÛÎó 
     203     * @return void 
     204     */ 
     205    function assignArray($arrAssignVars) { 
     206        foreach ($arrAssignVars as $key => $val) { 
     207            $this->assign($key, $val); 
     208        } 
     209    } 
     210 
     211    /** 
     212     * »ÈÍѤ·¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ñ¥¹¤ò¼èÆÀ¤¹¤ë 
     213     */ 
     214    function getTemplatePath() { 
     215        $objQuery = new SC_Query(); 
     216        $arrRet = $objQuery->select('top_tpl', 'dtb_baseinfo'); 
     217 
     218        if (isset($arrRet[0]['top_tpl'])) { 
     219            $selectTemplate = $arrRet[0]['top_tpl']; 
     220            $TPL_PKG_PATH = USER_PATH . "packages/${selectTemplate}/"; 
     221 
     222            $TPL_PKG_DIR = URL_DIR . USER_DIR . "packages/${selectTemplate}/"; 
     223            $this->assign('TPL_PKG_DIR', $TPL_PKG_DIR); 
     224 
     225            return $TPL_PKG_PATH; 
     226        } 
     227        return null; 
     228    } 
     229    /** 
     230     * Smarty¤Î¥Ç¥Ð¥Ã¥°½ÐÎϤòÍ­¸ú¤Ë¤¹¤ë. 
     231     * 
     232     * @param void 
     233     * @return void 
     234     */ 
    118235    function debug($var = true){ 
    119236        $this->_smarty->debugging = $var; 
     
    127244        $this->_smarty->compile_dir = COMPILE_ADMIN_DIR; 
    128245    } 
     246 
     247    function display($template) { 
     248        $tpl_mainpage = $this->_smarty->get_template_vars('tpl_mainpage'); 
     249        $template_dir = $this->getTemplatePath(); 
     250 
     251        if ($template_dir) { 
     252            $template_dir .= 'templates/admin/'; 
     253 
     254            // tpl_mainpage¤Èmain_frame.tpl¤¬Î¾Êý¸ºß¤¹¤ë»þ¤Î¤ß¥Æ¥ó¥×¥ì¡¼¥È¥Ñ¥Ã¥±¡¼¥¸¤Ç½ÐÎÏ 
     255            if (file_exists($template_dir . $tpl_mainpage) 
     256                && file_exists($template_dir . $template)) { 
     257 
     258                $this->_smarty->template_dir = $template_dir; 
     259            } 
     260        } 
     261 
     262        $this->_smarty->display($template); 
     263    } 
    129264} 
    130265 
     
    146281        } 
    147282    } 
     283 
     284    function display($template) { 
     285        $tpl_mainpage = $this->_smarty->get_template_vars('tpl_mainpage'); 
     286        $template_dir = $this->getTemplatePath(); 
     287 
     288        if ($template_dir) { 
     289            $template_dir .= 'templates/'; 
     290 
     291            if ( 
     292                (file_exists($template_dir . $tpl_mainpage) || file_exists($tpl_mainpage)) 
     293                && file_exists($template_dir . $template)) { 
     294 
     295                $this->_smarty->template_dir = $template_dir; 
     296            } 
     297        } 
     298 
     299        $this->_smarty->display($template); 
     300    } 
    148301} 
    149302 
     
    154307        $this->_smarty->compile_dir = $compile_dir; 
    155308    } 
     309 
     310    function display($template) { 
     311        $this->_smarty->display($template); 
     312    } 
    156313} 
    157314 
     
    171328    } 
    172329} 
     330 
    173331?> 
Note: See TracChangeset for help on using the changeset viewer.