Changeset 21546 for branches/version-2_12-dev
- Timestamp:
- 2012/02/23 15:34:37 (12 years ago)
- Location:
- branches/version-2_12-dev/data
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/SC_Display.php
r21514 r21546 72 72 } 73 73 $this->assignobj($page); 74 $this->view->setPage($page); 74 75 $this->response->setResposeBody($this->view->getResponse($page->getTemplate())); 75 76 } 76 77 77 78 /** 78 79 * リロードを行う. -
branches/version-2_12-dev/data/class/SC_View.php
r21514 r21546 27 27 28 28 var $_smarty; 29 30 var $objPage; 29 31 30 32 // コンストラクタ … … 89 91 } 90 92 } 93 // 各filterをセットします. 94 $this->registFilter(); 91 95 $res = $this->_smarty->fetch($template); 92 96 if (ADMIN_MODE == '1') { … … 97 101 return $res; 98 102 } 99 103 104 /** 105 * Pageオブジェクトをセットします. 106 * @param LC_Page_Ex $objPage 107 * @return void 108 */ 109 function setPage(LC_Page_Ex $objPage) { 110 $this->objPage = $objPage; 111 } 112 113 /** 114 * Smartyのfilterをセットします. 115 * @return void 116 */ 117 function registFilter() { 118 $this->_smarty->register_prefilter(array(&$this, 'prefilter_transforme')); 119 $this->_smarty->register_outputfilter(array(&$this, 'outputfilter_transforme')); 120 } 121 122 /** 123 * prefilter用のフィルタ関数。プラグイン用のフックポイント処理を実行 124 * @param string $source ソース 125 * @param Smarty_Compiler $smarty Smartyのコンパイラクラス 126 * @return string $source ソース 127 */ 128 function prefilter_transforme($source, &$smarty) { 129 // フックポイントを実行. 130 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 131 $objPlugin->doAction('prefilterTransforme', array(&$source, $this->objPage)); 132 return $source; 133 } 134 135 /** 136 * outputfilter用のフィルタ関数。プラグイン用のフックポイント処理を実行 137 * @param string $source ソース 138 * @param Smarty_Compiler $smarty Smartyのコンパイラクラス 139 * @return string $source ソース 140 */ 141 function outputfilter_transforme($source, &$smarty) { 142 // フックポイントを実行. 143 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 144 $objPlugin->doAction('outputfilterTransforme', array(&$source, $this->objPage)); 145 return $source; 146 } 147 100 148 // テンプレートの処理結果を表示 101 149 function display($template, $no_error = false) { -
branches/version-2_12-dev/data/class/helper/SC_Helper_Plugin.php
r21527 r21546 35 35 // プラグインのIDの配列. 36 36 var $arrPluginIds = array(); 37 37 // HeadNaviブロックの配列 38 var $arrHeadNaviBlocsByPlugin = array(); 39 38 40 /** 39 41 * 有効なプラグインのロード. プラグインエンジンが有効になっていない場合は … … 285 287 286 288 /** 287 * 全てのテンプレートを再生成する288 *289 * @param boolean $test_mode true の場合、validate のみを行い、実際にテンプレートの再生成は行わない290 * @return void291 */292 function remakeAllTemplates($test_mode = false) {293 $this->load(); // 最新のデータを読み込みなおす294 if (!is_writable(PLUGIN_TMPL_CACHE_REALDIR)) {295 // TODO エラー処理;296 exit;297 }298 // キャッシュテンプレートを削除299 if ($test_mode === false) {300 SC_Utils_Ex::deleteFile(PLUGIN_TMPL_CACHE_REALDIR, false);301 }302 $objTemplateTransformList = SC_Plugin_TemplateTransformList::getSingletonInstance();303 $objTemplateTransformList->init();304 // プラグインのsetTemplateTransformerを実行します.305 foreach ($this->arrPluginInstances as $objPlugin) {306 if (method_exists($objPlugin, 'setTemplateTransformer') === true) {307 // SC_Plugin_TemplateTransformList::arrConfsByTemplatesにトランスフォーム情報をセットします308 $objPlugin->setTemplateTransformer();309 }310 }311 // SC_Plugin_TemplateTransformList::arrConfsByTemplatesにセットされた情報を元にトランスフォームの実行312 $objTemplateTransformList->transformAll($test_mode);313 }314 315 /**316 * テンプレートキャッシュファイルのフルパスを返す.317 *318 * @param string $tpl_mainpage 返すキャッシュファイルのパスの対象となるテンプレート.319 * @param object $objPage ページオブジェクト.320 */321 function getPluginTemplateCachePath($objPage) {322 // main_template の差し替え323 if (strpos($objPage->tpl_mainpage, SMARTY_TEMPLATES_REALDIR) === 0) {324 // フルパスで指定された325 $dir = '';326 $default_tpl_mainpage = str_replace(SMARTY_TEMPLATES_REALDIR, '', $objPage->tpl_mainpage);327 } else {328 // フロントページ or 管理画面を判定329 $dir = ($objPage instanceof LC_Page_Admin) ? 'admin/' : TEMPLATE_NAME . '/';330 $default_tpl_mainpage = $objPage->tpl_mainpage;331 }332 return PLUGIN_TMPL_CACHE_REALDIR . $dir . $default_tpl_mainpage;333 }334 335 /**336 289 * ブロックの配列から有効でないpluginのブロックを除外して返します. 337 290 * … … 353 306 } 354 307 355 /** 356 * テンプレートの再生成 357 * 308 /** 309 * テンプレートのヘッダに追加するPHPのURLをセットする 310 * 311 * @param string $url PHPファイルのURL 358 312 * @return void 359 313 */ 360 function remakeTemplate() { 361 $this->remakeAllTemplates(true); 362 $this->remakeAllTemplates(); 314 function setHeadNavi($url) { 315 $this->arrHeadNaviBlocsByPlugin[$url] = TARGET_ID_HEAD; 316 } 317 318 /** 319 * PHPのURLをテンプレートのヘッダに追加する 320 * 321 * @param array|null $arrBlocs 配置情報を含めたブロックの配列 322 * @return void 323 */ 324 function setHeadNaviBlocs(&$arrBlocs) { 325 foreach ($this->arrHeadNaviBlocsByPlugin as $key => $value) { 326 $arrBlocs[] = array( 327 'target_id' =>$value, 328 'php_path' => $key 329 ); 330 } 363 331 } 364 332 } -
branches/version-2_12-dev/data/class/pages/LC_Page.php
r21514 r21546 121 121 122 122 // HeadNaviにpluginテンプレートを追加する. 123 $objTemplateTransformList = SC_Plugin_TemplateTransformList::getSingletonInstance();124 $objTemplateTransformList->setHeadNaviBlocs($this->arrPageLayout['HeadNavi']);125 126 // plugin側で生成したページがあるかを検証し、ある場合は tpl_mainpage にセットする.127 123 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 128 $plugin_tmplpath = $objPlugin->getPluginTemplateCachePath($this); 129 if (file_exists($plugin_tmplpath)) $this->tpl_mainpage = $plugin_tmplpath; 124 $objPlugin->setHeadNaviBlocs($this->arrPageLayout['HeadNavi']); 130 125 131 126 // スーパーフックポイントを実行. 132 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance();133 127 $objPlugin->doAction('lc_page_process', array($this)); 134 128 -
branches/version-2_12-dev/data/class/pages/admin/LC_Page_Admin.php
r21515 r21546 92 92 if ($_SERVER['PHP_SELF'] !== ROOT_URLPATH . ADMIN_DIR . 'system/plugin.php') { 93 93 94 // プラグインによってトランスフォームされたテンプレートがあればセットする94 // HeadNaviにpluginテンプレートを追加する. 95 95 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 96 $plugin_tmplpath = $objPlugin->getPluginTemplateCachePath($this); 97 if (file_exists($plugin_tmplpath)) $this->tpl_mainpage = $plugin_tmplpath; 96 $objPlugin->setHeadNaviBlocs($this->arrPageLayout['HeadNavi']); 98 97 99 98 // スーパーフックポイントを実行. 100 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance();101 99 $objPlugin->doAction('lc_page_process', array($this)); 102 103 // HeadNaviにpluginテンプレートを追加する.104 $objTemplateTransformList = SC_Plugin_TemplateTransformList::getSingletonInstance();105 $objTemplateTransformList->setHeadNaviBlocs($this->arrPageLayout['HeadNavi']);106 100 } 107 101 -
branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php
r21527 r21546 69 69 // パラメーター管理クラス 70 70 $objFormParam = new SC_FormParam_Ex(); 71 $mode = $this->getMode(); 71 72 // パラメーター情報の初期化 72 $this->lfInitParam($objFormParam );73 $this->lfInitParam($objFormParam, $mode); 73 74 $objFormParam->setParam($_POST); 74 75 … … 90 91 $this->arrErr = $this->installPlugin($plugin_code, $plugin_file_name); 91 92 if ($this->isError($this->arrErr) === false) { 92 // テンプレート再生成. 93 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 94 $objPlugin->remakeTemplate(); 93 // コンパイルファイルのクリア処理 94 SC_Utils_Ex::clearCompliedTemplate(); 95 95 $this->tpl_onload = "alert('プラグインをインストールしました。');"; 96 96 } … … 112 112 // 完了メッセージアラート設定. 113 113 if ($this->isError($this->arrErr) === false) { 114 // テンプレート再生成. 115 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 116 $objPlugin->remakeTemplate(); 114 // コンパイルファイルのクリア処理 115 SC_Utils_Ex::clearCompliedTemplate(); 117 116 $this->tpl_onload = "alert('" . $plugin['plugin_name'] ."を削除しました。');"; 118 117 } … … 130 129 $this->arrErr = $this->enablePlugin($plugin_id, $plugin['plugin_code']); 131 130 if ($this->isError($this->arrErr) === false) { 132 // テンプレート再生成. 133 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 134 $objPlugin->remakeTemplate(); 131 // コンパイルファイルのクリア処理 132 SC_Utils_Ex::clearCompliedTemplate(); 135 133 $this->tpl_onload = "alert('" . $plugin['plugin_name'] . "を有効にしました。');"; 136 134 } … … 148 146 $this->arrErr = $this->disablePlugin($plugin_id, $plugin['plugin_code']); 149 147 if ($this->isError($this->arrErr) === false) { 150 // テンプレート再生成. 151 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 152 $objPlugin->remakeTemplate(); 148 // コンパイルファイルのクリア処理 149 SC_Utils_Ex::clearCompliedTemplate(); 153 150 $this->tpl_onload = "alert('" . $plugin['plugin_name'] . "を無効にしました。');"; 154 151 } … … 172 169 $this->arrErr = $this->updatePlugin($plugin_code, $update_plugin_file_name, $plugin_code, $objFormParam->getValue('plugin_id')); 173 170 if ($this->isError($this->arrErr) === false) { 174 // テンプレート再生成. 175 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 176 $objPlugin->remakeTemplate(); 171 // コンパイルファイルのクリア処理 172 SC_Utils_Ex::clearCompliedTemplate(); 177 173 $this->tpl_onload = "alert('プラグインをアップデートしました。');"; 178 174 } … … 192 188 $priority = $objFormParam->getValue('priority'); 193 189 $this->updatePriority($plugin_id, $priority); 194 // テンプレート再生成. 195 $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 196 $objPlugin->remakeTemplate(); 190 // コンパイルファイルのクリア処理 191 SC_Utils_Ex::clearCompliedTemplate(); 197 192 } else { 198 193 // エラーメッセージを詰め直す. … … 231 226 * パラメーター初期化. 232 227 * 233 * @param object $objFormParam 228 * @param SC_FormParam_Ex $objFormParam 229 * @param string $mode モード 234 230 * @return void 235 * 236 */ 237 function lfInitParam(&$objFormParam) { 231 */ 232 function lfInitParam(&$objFormParam, $mode) { 238 233 $objFormParam->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 239 234 $objFormParam->addParam('plugin_id', 'plugin_id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 240 235 $objFormParam->addParam('plugin_code', 'plugin_code', MTEXT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 241 $objFormParam->addParam('優先度', 'priority', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 236 if($mode === "priority"){ 237 $objFormParam->addParam('優先度', 'priority', INT_LEN, '', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); 238 } 242 239 } 243 240 … … 245 242 * ファイルパラメーター初期化. 246 243 * 247 * @param object$objUpFile SC_UploadFileのインスタンス.244 * @param SC_UploadFile_Ex $objUpFile SC_UploadFileのインスタンス. 248 245 * @param string $key 登録するキー. 249 246 * @return void … … 738 735 } 739 736 740 // /**741 // * テンプレート再生成742 // *743 // * @return void744 // */745 // function remakeTemplate() {746 // $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance();747 // $objPlugin->remakeAllTemplates(true);748 // $objPlugin->remakeAllTemplates();749 // }750 751 737 /** 752 738 * plugin_idをキーにdtb_pluginのstatusを更新します. … … 852 838 * 853 839 * @param string $dir_path 作成するディレクトリのパス 840 * @return void 854 841 */ 855 842 function makeDir($dir_path) { -
branches/version-2_12-dev/data/class/util/SC_Utils.php
r21527 r21546 2177 2177 return $flg; 2178 2178 } 2179 2180 /** 2181 * コンパイルファイルを削除します. 2182 * @return void 2183 */ 2184 function clearCompliedTemplate() { 2185 // コンパイルファイルの削除処理 2186 SC_Utils_Ex::deleteFile(COMPILE_REALDIR, false); 2187 SC_Utils_Ex::deleteFile(COMPILE_ADMIN_REALDIR, false); 2188 SC_Utils_Ex::deleteFile(SMARTPHONE_COMPILE_REALDIR, false); 2189 SC_Utils_Ex::deleteFile(MOBILE_COMPILE_REALDIR, false); 2190 } 2179 2191 } -
branches/version-2_12-dev/data/require_plugin.php
r21500 r21546 22 22 */ 23 23 24 require_once (PLUGIN_ENGINE_REALDIR . 'SC_Plugin_TemplateTransformList.php');25 require_once (PLUGIN_ENGINE_REALDIR . 'SC_Plugin_TemplateTransformList.php');26 require_once (PLUGIN_ENGINE_REALDIR . 'SC_Plugin_TemplateSelector.php');27 24 require_once (PLUGIN_UPLOAD_REALDIR . 'SC_Plugin_Base.php');
Note: See TracChangeset
for help on using the changeset viewer.