form_define = implode("",file(UA_FORM_DATA_FILE)); //date を使う場合 //$objForm->min_year = date("Y"); //$objForm->max_year = date("Y")+1; //$objForm->hour = $def[hour]; //$objForm->min = $def[min]; //■フォームデータにDBから生成したものを追加 //if ($form_db_define) $form_define = str_replace("<{form_db_define}>", $form_db_define, $objForm->form_define); //■DBから変数読み込み //$res=$db->Execute("SELECT * FROM variable"); //$row=$res->GetRows(); //foreach ($row as $val) $global["var"][$val[name]]=$val["var"]; //■フォームコア呼び出し $objForm->init(); $objForm->define(); // class化後未確認 if (UA_USE_FILEUPLOAD) include(UA_DLV."plugins/file_upload.inc");//ファイルアップロード // フォームコントロール $ctrl = new HTML_QuickForm_Controller(UA_FORM_NAME, true);//第2引数 trueで順番遷移+チェックを有効 // clearがセットされていたらフォームキャッシュを初期化する if ($_SESSION[UA_FORM_NAME][clear]) { $ctrl->container(TRUE); $_SESSION[UA_FORM_NAME][clear] = ""; $_SESSION[UA_FORM_NAME][define] = array(); } // フォームアクション定義 foreach ($objForm->forms as $key => $val) { $ctrl->addPage($objForm->forms[$key]); foreach ($objForm->submit_define[$key] as $sbmKey => $sbmVal) { if ($sbmVal === "next") $objForm->forms[$key]->addAction($sbmKey, new HTML_QuickForm_Action_Next()); if ($sbmVal === "back") $objForm->forms[$key]->addAction($sbmKey, new HTML_QuickForm_Action_Back()); if ($sbmVal === "direct") $objForm->forms[$key]->addAction($sbmKey, new HTML_QuickForm_Action_direct($sbmKey)); if ($sbmVal === "jump") $objForm->forms[$key]->addAction($sbmKey, new HTML_QuickForm_Action_direct($sbmKey)); if ($sbmVal === "ShowThird") $objForm->forms[$key]->addAction($sbmKey, new ShowThird()); } } // ページ名取得 $temp = $ctrl->getActionName(); $page_name = $temp[0]; // フックが設定されていれば呼び出し if (function_exists($form_core_hook_func)) { $temp = $ctrl->exportValues(); $form_core_hook_func($page_name, $temp,$ctrl); } // 携帯用出力 class化後未確認 if (UA_USE_MOBILE) { header("Content-Type: application/xhtml+xml; charset=Shift_JIS;");// xhtmlコーディング用 $html->register_outputfilter("smarty_u2j");// 携帯用 mb_convert_variables("UTF-8", "SJIS", $_POST); mb_convert_variables("UTF-8", "SJIS", $_GET); } $ctrl->addAction("process", new ControllerAction($global,$html,$ctrl,$objForm));// 最終ページアクション $ctrl->addAction("display", new myDisplay($global,$html,$ctrl,$objForm,$page_name,$form_db_data));// 各ページアクション $ctrl->run(); //■プラグイン用実行クラス // DB書き込み処理を行う場合、ここでSQLを作成 /* class form_finish_dbquery { function execute($global,$db,$value) { } } */ /** * リファラから検索ワードを探して返す * @param string $target_query 検索キーワードが入るクエリ文字列 * @return string 検索キーワード */ function findSearchWord($target_query) { $url = parse_url($_SERVER['HTTP_REFERER']); $queries = explode('&', $url['query']); foreach ($queries as $q) { if (preg_match("/^{$target_query}=.*/", $q) === 1) { return urldecode(str_replace("{$target_query}=", '', $q)); } } return false; } ?>