_smarty = new Smarty; $this->_smarty->left_delimiter = ''; $this->_smarty->register_modifier("sfDispDBDate", array("SC_Utils_Ex", "sfDispDBDate")); $this->_smarty->register_modifier("sfConvSendDateToDisp", array("SC_Utils_Ex", "sfConvSendDateToDisp")); $this->_smarty->register_modifier("sfConvSendWdayToDisp", array("SC_Utils_Ex", "sfConvSendWdayToDisp")); $this->_smarty->register_modifier("sfGetVal", array("SC_Utils_Ex", "sfGetVal")); $this->_smarty->register_modifier("sfGetErrorColor", array("SC_Utils_Ex", "sfGetErrorColor")); $this->_smarty->register_modifier("sfTrim", array("SC_Utils_Ex", "sfTrim")); $this->_smarty->register_modifier("sfCalcIncTax", array("SC_Helper_DB_Ex", "sfCalcIncTax")); $this->_smarty->register_modifier("sfPrePoint", array("SC_Utils_Ex", "sfPrePoint")); $this->_smarty->register_modifier("sfGetChecked",array("SC_Utils_Ex", "sfGetChecked")); $this->_smarty->register_modifier("sfTrimURL", array("SC_Utils_Ex", "sfTrimURL")); $this->_smarty->register_modifier("sfMultiply", array("SC_Utils_Ex", "sfMultiply")); $this->_smarty->register_modifier("sfPutBR", array("SC_Utils_Ex", "sfPutBR")); $this->_smarty->register_modifier("sfRmDupSlash", array("SC_Utils_Ex", "sfRmDupSlash")); $this->_smarty->register_modifier("sfCutString", array("SC_Utils_Ex", "sfCutString")); $this->_smarty->plugins_dir=array("plugins", $viewDir . "../smarty_extends"); $this->_smarty->register_modifier("sfMbConvertEncoding", array("SC_Utils_Ex", "sfMbConvertEncoding")); $this->_smarty->register_modifier("sfGetEnabled", array("SC_Utils_Ex", "sfGetEnabled")); $this->_smarty->register_modifier("sfGetCategoryId", array("SC_Utils_Ex", "sfGetCategoryId")); $this->_smarty->register_modifier("sfNoImageMainList", array("SC_Utils_Ex", "sfNoImageMainList")); $this->_smarty->register_function("sfIsHTTPS", array("SC_Utils_Ex", "sfIsHTTPS")); $this->_smarty->register_function("sfSetErrorStyle", array("SC_Utils_Ex", "sfSetErrorStyle")); $this->_smarty->register_function("printXMLDeclaration", array("SC_Utils_Ex", "printXMLDeclaration")); $this->_smarty->default_modifiers = array('script_escape'); if(ADMIN_MODE == '1') { $this->time_start = SC_Utils_Ex::sfMicrotimeFloat(); } // サイト情報を取得する // XXX LC_Page 配下で取得した方が良い if($siteinfo) { if(!defined('LOAD_SITEINFO')) { $this->objSiteInfo = new SC_SiteInfo(); $arrInfo['arrSiteInfo'] = $this->objSiteInfo->data; // 都道府県名を変換 $masterData = new SC_DB_MasterData_Ex(); $arrPref = $masterData->getMasterData('mtb_pref'); $arrInfo['arrSiteInfo']['pref'] = isset($arrPref[$arrInfo['arrSiteInfo']['pref']]) ? $arrPref[$arrInfo['arrSiteInfo']['pref']] : ""; // サイト情報を割り当てる foreach ($arrInfo as $key => $value){ $this->_smarty->assign($key, $value); } define('LOAD_SITEINFO', 1); } } } // テンプレートに値を割り当てる function assign($val1, $val2) { $this->_smarty->assign($val1, $val2); } // テンプレートの処理結果を取得 function fetch($template, $no_error=false) { return $this->_smarty->fetch($template); } /** * SC_Display用にレスポンスを返す * @global string $GLOBAL_ERR * @param array $template * @param boolean $no_error * @return string */ function getResponse($template, $no_error = false) { if(!$no_error) { global $GLOBAL_ERR; if(!defined('OUTPUT_ERR')) { // GLOBAL_ERR を割り当て $this->assign("GLOBAL_ERR", $GLOBAL_ERR); define('OUTPUT_ERR','ON'); } } $res = $this->_smarty->fetch($template); if(ADMIN_MODE == '1') { $time_end = SC_Utils_Ex::sfMicrotimeFloat(); $time = $time_end - $this->time_start; $res .= '処理時間: ' . sprintf('%.3f', $time) . '秒'; } return $res; } // テンプレートの処理結果を表示 function display($template, $no_error = false) { if(!$no_error) { global $GLOBAL_ERR; if(!defined('OUTPUT_ERR')) { // GLOBAL_ERR を割り当て $this->assign("GLOBAL_ERR", $GLOBAL_ERR); define('OUTPUT_ERR','ON'); } } $this->_smarty->display($template); if(ADMIN_MODE == '1') { $time_end = SC_Utils_Ex::sfMicrotimeFloat(); $time = $time_end - $this->time_start; echo '処理時間: ' . sprintf('%.3f', $time) . '秒'; } } // オブジェクト内の変数をすべて割り当てる。 function assignobj($obj) { $data = get_object_vars($obj); foreach ($data as $key => $value){ $this->_smarty->assign($key, $value); } } // 連想配列内の変数をすべて割り当てる。 function assignarray($array) { foreach ($array as $key => $val) { $this->_smarty->assign($key, $val); } } /* サイト初期設定 */ function initpath() { global $viewDir; $array['tpl_mainnavi'] = $viewDir . '../Smarty/templates/frontparts/mainnavi.tpl'; $objDb = new SC_Helper_DB_Ex(); $array['tpl_root_id'] = $objDb->sfGetRootId(); $this->assignarray($array); } /** * テンプレートパスをアサインする. * * @param integer $device_type_id 端末種別ID */ function assignTemplatePath($device_type_id) { // テンプレート変数を割り当て $this->assign("TPL_URLPATH", SC_Helper_PageLayout_Ex::getUserDir($device_type_id, true)); // ヘッダとフッタを割り当て $templatePath = SC_Helper_PageLayout_Ex::getTemplatePath($device_type_id); $header_tpl = $templatePath . "header.tpl"; $footer_tpl = $templatePath . "footer.tpl"; $this->assign("header_tpl", $header_tpl); $this->assign("footer_tpl", $footer_tpl); } // デバッグ function debug($var = true){ $this->_smarty->debugging = $var; } } ?>