7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
9 * @package Magic3 Framework
10 * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11 * @copyright Copyright 2006-2012 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: s_jquery_initWidgetContainer.php 4648 2012-02-01 14:23:42Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getContainerPath() . '/baseWidgetContainer.php');
18 class s_jquery_initWidgetContainer extends BaseWidgetContainer
20 private $initScript; // 初期化用スクリプトファイル
21 private $script; // 追加スクリプト
22 const DEFAULT_CONFIG_ID = 0;
27 function __construct()
30 parent::__construct();
35 * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
36 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
38 * @param RequestManager $request HTTPリクエスト処理クラス
39 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
40 * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
42 function _setTemplate($request, &$param)
49 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
51 * @param RequestManager $request HTTPリクエスト処理クラス
52 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
55 function _assign($request, &$param)
58 $configId = $this->gEnv->getCurrentWidgetConfigId();
59 if (empty($configId)) $configId = self::DEFAULT_CONFIG_ID;
62 $targetObj = $this->getWidgetParamObjByConfigId($configId);
63 if (empty($targetObj)){// 定義データが取得できないときは終了
64 $this->cancelParse(); // テンプレート変換処理中断
68 $this->script = $targetObj->script; // スクリプト
70 $act = $request->trimValueOf('act');
71 if ($act == 'initscript'){ // 初期化スクリプト取得のとき
73 $initTemplate = $this->getParsedTemplateData('init.tmpl.js', array($this, 'makeInitScript'));// 初期化スクリプト
75 // 標準のテンプレート変換をキャンセルし、直接出力
77 $this->gPage->setOutputByHtml(false); // HTML出力をキャンセル
81 if (!empty($this->script)) $this->initScript = $this->getUrl($this->createCmdUrlToCurrentWidget('act=initscript'));
86 * JavascriptファイルをHTMLヘッダ部に設定
88 * JavascriptファイルをHTMLのheadタグ内に追加出力する。
89 * _assign()よりも後に実行される。
91 * @param RequestManager $request HTTPリクエスト処理クラス
92 * @param object $param 任意使用パラメータ。
93 * @return string Javascriptファイル。出力しない場合は空文字列を設定。
95 function _addPreMobileScriptFileToHead($request, &$param)
97 return $this->initScript;
100 * テンプレートデータ作成処理コールバック
102 * @param object $tmpl テンプレートオブジェクト
105 function makeInitScript($tmpl)
107 $tmpl->addVar("_tmpl", "script", $this->script);