public function fetch($template, $cache_id = null, $compile_id = null, $parent = null, $display = false) { $attributes = Vizualizer::attr(); // 標準で使用できるパラメータを登録 $templateEngine = $attributes["template"]; $templateEngine->assign("configure", Vizualizer_Configure::values()); $templateEngine->assign("post", Vizualizer::request()); $templateEngine->assign("attr", $attributes); $templateEngine->assign("session", Vizualizer_Session::values()); $templateEngine->assign("sessionName", session_name()); $templateEngine->assign("sessionId", session_id()); // リソースの利用を判定 $prefix = substr($template, 0, strpos($template, ":")); if (ctype_alpha($prefix) && $prefix != "file") { return $this->core->fetch($template, $cache_id, $compile_id, $parent, $display); } else { if (file_exists(Vizualizer_Configure::get("site_home") . $attributes["userTemplate"] . "/" . $template)) { return $this->core->fetch($template, $cache_id, $compile_id, $parent, $display); } elseif (file_exists(Vizualizer_Configure::get("site_home") . $attributes["userTemplate"] . "/err404.html")) { return $this->core->fetch("err404.html", $cache_id, $compile_id, $parent, $display); } else { header("HTTP/1.0 404 Not Found"); echo "ファイルが存在しません。"; exit; } } }
/** * Smarty {end_session} function plugin * * Type: function<br> * Name: end_session<br> * Purpose: end session module.<br> * * @author Naohisa Minagawa <minagawa at web-life dot co dot jp> * @param array $params parameters * @param object $smarty Smarty object * @param object $template template object * @return string null */ function smarty_function_end_session($params, $template) { // テンプレートに各種変数を割り当て $attr = Vizualizer::attr(); $template = $attr["template"]; $template->assign("configure", Vizualizer_Configure::values()); $template->assign("post", Vizualizer::request()); $template->assign("attr", $attr); $template->assign("sessionName", session_name()); $template->assign("sessionId", session_id()); Vizualizer_Logger::writeDebug("Page Session Ended."); }
/** * ページ出力用のメソッドをオーバーライドしています。 * 携帯のページについて、SJISに変換し、カナを半角にしています。 * * @access public */ public function display($template, $cache_id = null, $compile_id = null, $parent = null) { // キャッシュ無効にするヘッダを送信 header("P3P: CP='UNI CUR OUR'"); header("Expires: Thu, 01 Dec 1994 16:00:00 GMT"); header("Last-Modified: " . Vizualizer::now()->gmDate("D, d M Y H:i:s") . " GMT"); if (array_key_exists("HTTPS", $_SERVER) && $_SERVER['HTTPS'] == 'on') { header("Cache-Control: must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); } else { header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); } $attr = Vizualizer::attr(); $templateEngine = $attr["template"]; $templateEngine->assign("configure", Vizualizer_Configure::values()); $templateEngine->assign("post", Vizualizer::request()); $templateEngine->assign("attr", $attr); $templateEngine->assign("session", Vizualizer_Session::values()); $templateEngine->assign("sessionName", session_name()); $templateEngine->assign("sessionId", session_id()); // display template Vizualizer_Logger::writeDebug("Template Dir : " . var_export($this->template_dir, true)); if (Vizualizer_Configure::get("device")->isFuturePhone()) { // モバイルの時は出力するHTMLをデータとして取得 $content = trim($this->core->fetch($template, $cache_id, $compile_id, $parent)); // カタカナを半角にする。 $content = mb_convert_kana($content, "k"); // ソフトバンク以外の場合は、SJISエンコーディングに変換 if (Vizualizer_Configure::get("device")->getDeviceType() != "Softbank") { header("Content-Type: text/html; charset=Shift_JIS"); if (preg_match("/<meta\\s+http-equiv\\s*=\\s*\"Content-Type\"\\s+content\\s*=\\s*\"([^;]+);\\s*charset=utf-8\"\\s*\\/?>/i", $content, $params) > 0) { header("Content-Type: " . $params[1] . "; charset=Shift_JIS"); $content = str_replace($params[0], "<meta http-equiv=\"Content-Type\" content=\"" . $params[1] . "; charset=Shift_JIS\" />", $content); } else { header("Content-Type: text/html; charset=Shift_JIS"); } echo mb_convert_encoding($content, "Shift_JIS", "UTF-8"); } else { header("Content-Type: text/html; charset=UTF-8"); echo $content; } } else { header("Content-Type: text/html; charset=UTF-8"); echo trim($this->fetch($template, $cache_id, $compile_id, $parent)); } }