Changeset 15825 for branches/beta/data/class/SC_View.php
- Timestamp:
- 2007/09/21 12:14:28 (19 years ago)
- File:
-
- 1 edited
-
branches/beta/data/class/SC_View.php (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/beta/data/class/SC_View.php
r15690 r15825 12 12 class SC_View { 13 13 14 /** Smarty¥¤¥ó¥¹¥¿¥ó¥¹ */ 14 15 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__)); 20 51 21 52 $this->_smarty = new Smarty; … … 37 68 $this->_smarty->register_function("sfRmDupSlash", "sfRmDupSlash"); 38 69 $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"); 40 71 $this->_smarty->register_function("sf_mb_convert_encoding","sf_mb_convert_encoding"); 41 72 $this->_smarty->register_function("sf_mktime","sf_mktime"); … … 46 77 $this->_smarty->register_function("sfIsHTTPS","sfIsHTTPS"); 47 78 $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 */ 79 144 function fetch($template) { 80 145 return $this->_smarty->fetch($template); 81 146 } 82 147 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) { 86 182 global $GLOBAL_ERR; 87 183 if(!defined('OUTPUT_ERR')) { … … 90 186 } 91 187 } 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) { 95 199 $time_end = time(); 96 200 $time = $time_end - $this->time_start; … … 99 203 } 100 204 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 */ 118 245 function debug($var = true){ 119 246 $this->_smarty->debugging = $var; … … 127 254 $this->_smarty->compile_dir = COMPILE_ADMIN_DIR; 128 255 } 256 129 257 } 130 258 … … 146 274 } 147 275 } 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 } 150 300 class SC_UserView extends SC_SiteView{ 151 301 function SC_UserView($template_dir, $compile_dir = COMPILE_DIR) { … … 154 304 $this->_smarty->compile_dir = $compile_dir; 155 305 } 306 307 function display($template) { 308 $this->_smarty->display($template); 309 } 156 310 } 157 311 … … 162 316 $this->_smarty->compile_dir = $compile_dir; 163 317 } 318 function getTemplateName() {} 164 319 } 165 320 … … 171 326 } 172 327 } 328 173 329 ?>
Note: See TracChangeset
for help on using the changeset viewer.
