Changeset 21501 for branches/version-2_12-dev
- Timestamp:
- 2012/02/13 22:05:16 (12 years ago)
- Location:
- branches/version-2_12-dev/data
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/Smarty/templates/admin/system/plugin.tpl
r21467 r21501 27 27 $('input[id^=plugin_enable]').change(function(event) { 28 28 var data = {}; 29 30 29 // モード(有効 or 無効) 31 30 data.mode = event.target.name; 32 // プラグインID 33 data.plugin_id = event.target.value; 34 data['<!--{$smarty.const.TRANSACTION_ID_NAME}-->'] = '<!--{$transactionid}-->'; 35 $.ajax({ 36 type : 'POST', 37 url : location.pathname, 38 dataType : "json", 39 data: data, 40 cache : false, 41 error : remoteException, 42 success : function(data, dataType) { 43 alert(data.message); 44 location.href = location.pathname; 45 } 46 }); 31 32 if(data.mode === 'disable') { 33 result = window.confirm('プラグインを無効しても宜しいですか?'); 34 } else if(data.mode === 'enable') { 35 result = window.confirm('プラグインを有効にしても宜しいですか?'); 36 } 37 if(result){ 38 // プラグインID 39 data.plugin_id = event.target.value; 40 data['<!--{$smarty.const.TRANSACTION_ID_NAME}-->'] = '<!--{$transactionid}-->'; 41 $.ajax({ 42 type : 'POST', 43 url : location.pathname, 44 dataType : "json", 45 data: data, 46 cache : false, 47 error : remoteException, 48 success : function(data, dataType) { 49 window.location.reload(); 50 alert(data.message); 51 } 52 }); 53 } 47 54 }); 48 55 … … 65 72 $('input[id="' + select_id + '"]').removeAttr("disabled"); 66 73 } 74 75 function install() { 76 if (window.confirm('プラグインをインストールしても宜しいでしょうか?')){ 77 fnModeSubmit('install', '', ''); 78 } 79 } 80 81 function uninstall(plugin_id, plugin_code) { 82 if (window.confirm('一度削除したデータは元に戻せません。\nプラグインを削除しても宜しいですか?')){ 83 fnSetFormValue('plugin_id', plugin_id); 84 fnModeSubmit('uninstall', 'plugin_code', plugin_code); 85 } 86 } 87 88 function update(plugin_id, plugin_code) { 89 if (window.confirm('プラグインをアップデートしても宜しいですか?')){ 90 removeUpdateFile('update_file_' + plugin_id); 91 fnSetFormValue('plugin_id', plugin_id); 92 fnModeSubmit('update','plugin_code', plugin_code); 93 } 94 } 95 96 function priority(plugin_id) { 97 if (window.confirm('プラグインをアップデートしても宜しいですか?')){ 98 fnModeSubmit('priority','plugin_id',plugin_id); 99 } 100 } 101 102 67 103 //]]> 68 104 </script> … … 74 110 <input type="hidden" name="plugin_id" value="" /> 75 111 <input type="hidden" name="plugin_code" value="" /> 76 112 <input type="hidden" name="priority" value="" /> 77 113 <div id="system" class="contents-main"> 78 114 <h2>プラグイン登録</h2> … … 84 120 <span class="attention"><!--{$arrErr[$key]}--></span> 85 121 <input type="file" name="<!--{ $key }-->" class="box45" size="43" style="<!--{$arrErr[$key]|sfGetErrorColor}--> <!--{if $arrErr[$key]}--> background-color:<!--{$smarty.const.ERR_COLOR|h}--><!--{/if}-->"> 86 <a class="btn-action" href="javascript:;" onclick=" fnModeSubmit('install', '', '');return false;"><span class="btn-next">インストール</span></a>122 <a class="btn-action" href="javascript:;" onclick="install(); return false;"><span class="btn-next">インストール</span></a> 87 123 </td> 88 124 </tr> … … 95 131 <table class="system-plugin" width="900"> 96 132 <col width="10%" /> 97 <col width=" 80%" />98 <col width="1 0%" />133 <col width="77" /> 134 <col width="13%" /> 99 135 <tr> 100 136 <th colspan="2">機能説明</th> 101 <th>優先度< a class="btn-action" href="javascript:;" onclick="fnModeSubmit('priority','','');return false;"><span class="btn-next">反映</span></a></th>137 <th>優先度</th> 102 138 </tr> 103 139 <!--{section name=data loop=$plugins}--> … … 150 186 <a class="update_link" href="#" name="<!--{$plugin.plugin_id}-->">アップデート</a> | 151 187 <!-- 削除 --> 152 <a href="javascript:;" name="uninstall" onclick=" fnSetFormValue('plugin_id', '<!--{$plugin.plugin_id}-->'); fnModeSubmit('uninstall','plugin_code','<!--{$plugin.plugin_code}-->'); return false;">削除</a> | 188 <a href="javascript:;" name="uninstall" onclick="uninstall(<!--{$plugin.plugin_id}-->, '<!--{$plugin.plugin_code}-->'); return false;">削除</a> | 153 189 <!-- 有効/無効 --> 154 190 <!--{if $plugin.enable == $smarty.const.PLUGIN_ENABLE_TRUE}--> 155 191 <input id="plugin_enable" type="checkbox" name="disable" value="<!--{$plugin.plugin_id}-->" id="login_memory" checked="checked">有効</input><br/> 156 192 <!--{else}--> 157 <input id="plugin_enable" type="checkbox" name="enable" value="<!--{$plugin.plugin_id}-->" id="login_memory" onclick="fnSetFormValue('plugin_id', '<!--{$plugin.plugin_id}-->'); return false;">有効にする</input><br/>193 <input id="plugin_enable" type="checkbox" name="enable" value="<!--{$plugin.plugin_id}-->" id="login_memory">有効にする</input><br/> 158 194 <!--{/if}--> 159 195 … … 161 197 <div id="plugin_update_<!--{$plugin.plugin_id}-->" style="display: none"> 162 198 <input id="update_file_<!--{$plugin.plugin_id}-->" name="<!--{$plugin.plugin_code}-->" type="file" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" class="box30" size="30" <!--{if $arrErr[$key]}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}--> /> 163 <a class="btn-action" href="javascript:;" onclick=" removeUpdateFile('update_file_<!--{$plugin.plugin_id}-->'); fnSetFormValue('plugin_id', '<!--{$plugin.plugin_id}-->'); fnModeSubmit('update','plugin_code','<!--{$plugin.plugin_code}-->');return false;"><span class="btn-next">アップデート</span></a>199 <a class="btn-action" href="javascript:;" onclick="update(<!--{$plugin.plugin_id}-->, '<!--{$plugin.plugin_code}-->'); return false;"><span class="btn-next">アップデート</span></a> 164 200 </div> 165 201 </div> … … 168 204 <!--{assign var=key value="rank"}--> 169 205 <td class="center"> 170 <input type="text" name="priority[<!--{$plugin.plugin_id}-->]" value="<!--{$plugin.rank|h}-->" size="1" class="rank" /><br/> 206 <span class="attention"><!--{$arrErr.priority[$plugin.plugin_id]}--></span> 207 <input type="text" class="center" name="priority" value="<!--{$plugin.rank|h}-->" size="1" class="rank" /> 208 <a class="btn-action" href="javascript:;" onclick="priority(<!--{$plugin.plugin_id}-->);return false;"><span class="btn-next">変更</span></a><br/> 171 209 </td> 172 210 </tr> -
branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php
r21490 r21501 84 84 $plugin_file_name = $plugin_file['name']; 85 85 $plugin_code = $this->getPluginCode($plugin_file_name); 86 86 87 87 // 既に登録されていないか判定. 88 88 if ($this->isInstalledPlugin($plugin_code) === false) { … … 106 106 $plugin_code = $objFormParam->getValue('plugin_code'); 107 107 $plugin_id = $objFormParam->getValue('plugin_id'); 108 108 $plugin = SC_Helper_Plugin_Ex::getPluginByPluginId($plugin_id); 109 109 110 $this->arrErr = $this->uninstallPlugin($plugin_id, $plugin_code); 110 111 // 完了メッセージアラート設定. 111 112 if ($this->isError($this->arrErr) === false) { 112 $plugin = SC_Helper_Plugin_Ex::getPluginByPluginId($plugin_id);113 113 // テンプレート再生成. 114 114 $this->remakeTemplate(); … … 182 182 // 優先度. 183 183 case 'priority': 184 // TODO 優先度の変更処理. 185 // // 優先度を取得 186 // $priority_array = $objFormParam->getValue('priority'); 187 // 188 // // 優先度の更新 189 // $objQuery =& SC_Query_Ex::getSingletonInstance(); 190 // foreach ($priority_array as $key => $value) { 191 // $sqlval['rank'] = $value; 192 // $objQuery->update('dtb_plugin', $sqlval, "plugin_id = ?", array($key)); 193 // } 194 // break; 184 // エラーチェック 185 $arrErr = $objFormParam->checkError(); 186 $plugin_id = $objFormParam->getValue('plugin_id'); 187 if ($this->isError($arrErr) === false) { 188 // 優先度の更新 189 $priority = $objFormParam->getValue('priority'); 190 $this->updatePriority($plugin_id, $priority); 191 } else { 192 // エラーメッセージを詰め直す. 193 $this->arrErr['priority'][$plugin_id] = $arrErr['priority']; 194 } 195 196 break; 195 197 default: 196 198 break; … … 231 233 $objFormParam->addParam('plugin_id', 'plugin_id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 232 234 $objFormParam->addParam('plugin_code', 'plugin_code', MTEXT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 233 $objFormParam->addParam( "優先順位", 'priority', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));235 $objFormParam->addParam('優先度', 'priority', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 234 236 } 235 237 … … 287 289 function checkPluginFile($file_path, $plugin_code, $key_file) { 288 290 $arrErr = array(); 289 291 290 292 // Archive_Tarを生成します. 291 293 $tar_obj = new Archive_Tar($file_path); 292 294 293 295 // 圧縮ファイル名とディレクトリ名が同一であるかを判定します. 294 296 if ($this->checkUploadFileName($tar_obj, $plugin_code) === false) { … … 383 385 return $arrErr; 384 386 } 385 387 386 388 // リフレクションオブジェクトを生成. 387 389 $objReflection = new ReflectionClass($plugin_code); … … 404 406 $plugin_html_dir = PLUGIN_HTML_REALDIR . $plugin_code; 405 407 $this->makeDir($plugin_html_dir); 406 408 407 409 $plugin = SC_Helper_Plugin_Ex::getPluginByPluginCode($plugin_code); 408 410 $arrErr = $this->execPlugin($plugin['plugin_id'], $plugin_code, 'install'); 409 411 410 412 return $arrErr; 411 413 } … … 535 537 $this->makeDir($unpack_dir); 536 538 $objUpFile->moveTempFile(); 537 539 538 540 // 解凍 539 541 $update_plugin_file_path = $unpack_dir . "/" . $unpack_file_name; … … 623 625 624 626 return $arrErr; 627 } 628 629 /** 630 * 優先度を更新します. 631 * 632 * @param int $plugin_id プラグインID 633 * @param int $priority 優先度 634 * @return integer 更新件数 635 */ 636 function updatePriority($plugin_id, $priority) { 637 $objQuery =& SC_Query_Ex::getSingletonInstance(); 638 // UPDATEする値を作成する。 639 $sqlval['rank'] = $priority; 640 $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 641 $where = "plugin_id = ?"; 642 // UPDATEの実行 643 $ret = $objQuery->update('dtb_plugin', $sqlval, $where, array($plugin_id)); 644 return $ret; 625 645 } 626 646 … … 703 723 function execPlugin($plugin_id, $plugin_code, $exec_func) { 704 724 $arrErr = array(); 705 // インスタンスの生成. 706 $objPlugin = new $plugin_code(); 707 if (method_exists($objPlugin, $exec_func) === true) { 708 $arrErr = $objPlugin->$exec_func($plugin_id); 709 } else { 710 $arrErr['plugin_error'] = "※ " . $plugin_code . ".php に" . $exec_func . "が見つかりません。<br/>"; 711 } 725 if (method_exists($plugin_code, $exec_func) === true) { 726 call_user_func(array($plugin_code, $exec_func), $plugin_id); 727 } else { 728 $arrErr['plugin_error'] = "※ " . $plugin_code . ".php に" . $exec_func . "が見つかりません。<br/>"; 729 } 712 730 713 731 return $arrErr;
Note: See TracChangeset
for help on using the changeset viewer.