Ignore:
Timestamp:
2012/02/15 19:38:35 (14 years ago)
Author:
h_yoshimoto
Message:

#1603 #1632 優先度変更処理を修正、rankをpriorityに変更、細かなバグ修正、コメントの追加

Location:
branches/version-2_12-dev/data
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/Smarty/templates/admin/system/plugin.tpl

    r21501 r21512  
    2525    $(function() { 
    2626 
     27       /** 
     28        * 「有効/有効にする」チェックボタン押下時 
     29        * ajaxでPOSTする. 
     30        */ 
    2731        $('input[id^=plugin_enable]').change(function(event) { 
    2832            var data = {}; 
     
    5458        }); 
    5559 
    56         /** 
    57          * 通信エラー表示. 
    58          */ 
    59         function remoteException(XMLHttpRequest, textStatus, errorThrown) { 
    60             alert('通信中にエラーが発生しました。'); 
    61         } 
    62  
     60   /** 
     61    * 通信エラー表示. 
     62    */ 
     63    function remoteException(XMLHttpRequest, textStatus, errorThrown) { 
     64        alert('通信中にエラーが発生しました。'); 
     65    } 
     66 
     67   /** 
     68    * アップデートリンク押下時の処理. 
     69    */ 
    6370    $('.update_link').click(function(event) { 
    6471        var plugin_id = event.target.name; 
     
    6774    }); 
    6875 
    69  
     76   /** 
     77    * アプデートボタン押下時の処理. 
     78    * アップデート対象ファイル以外はPOSTされない様にdisabled属性を付与 
     79    */ 
    7080    function removeUpdateFile(select_id) { 
    7181        $('input[name="update_plugin_file"]').attr("disabled", "disabled"); 
    7282        $('input[id="' + select_id + '"]').removeAttr("disabled"); 
    7383    } 
    74      
     84 
     85   /** 
     86    * インストール 
     87    */ 
    7588    function install() { 
    7689        if (window.confirm('プラグインをインストールしても宜しいでしょうか?')){ 
    77             fnModeSubmit('install', '', ''); 
     90            fnModeSubmit('install'); 
    7891        } 
    7992    } 
    80      
     93 
     94   /** 
     95    * アンインストール(削除) 
     96    */ 
    8197    function uninstall(plugin_id, plugin_code) { 
    8298        if (window.confirm('一度削除したデータは元に戻せません。\nプラグインを削除しても宜しいですか?')){ 
     
    86102    } 
    87103     
     104   /** 
     105    * アップデート 
     106    */ 
    88107    function update(plugin_id, plugin_code) { 
    89108        if (window.confirm('プラグインをアップデートしても宜しいですか?')){ 
     
    94113    } 
    95114     
    96     function priority(plugin_id) { 
    97         if (window.confirm('プラグインをアップデートしても宜しいですか?')){ 
    98            fnModeSubmit('priority','plugin_id',plugin_id); 
    99         } 
    100     } 
    101      
     115 
     116   /** 
     117    * 優先度変更. 
     118    */ 
     119    function priority(plugin_id, plugin_code) { 
     120        var priority = $("*[name=priority_" + plugin_code +"]").val(); 
     121        fnSetFormValue('priority', priority); 
     122        fnModeSubmit('priority','plugin_id',plugin_id); 
     123    } 
    102124     
    103125//]]> 
     
    202224                </td> 
    203225                <!--優先順位--> 
    204                 <!--{assign var=key value="rank"}--> 
    205226                <td class="center"> 
    206227                    <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/> 
     228                    <input type="text" class="center" name="priority_<!--{$plugin.plugin_code}-->" value="<!--{$plugin.priority|h}-->" size="1" class="priority" /> 
     229                    <a class="btn-action" href="javascript:;" onclick="priority(<!--{$plugin.plugin_id}-->, '<!--{$plugin.plugin_code}-->');return false;"><span class="btn-next">変更</span></a><br/> 
    209230                </td> 
    210231            </tr> 
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Plugin.php

    r21486 r21512  
    6464                $this->arrPluginIds[] = $arrPluginData['plugin_id']; 
    6565                // ローカルフックポイントの登録. 
    66                 $this->registLocalHookPoint($objPlugin, $arrPluginData['rank']); 
     66                $this->registLocalHookPoint($objPlugin, $arrPluginData['priority']); 
    6767                // スーパーフックポイントの登録. 
    68                 $this->registSuperHookPoint($objPlugin, HOOK_POINT_PREPROCESS, 'preProcess', $arrPluginData['rank']); 
    69                 $this->registSuperHookPoint($objPlugin, HOOK_POINT_PROCESS, 'process', $arrPluginData['rank']); 
     68                $this->registSuperHookPoint($objPlugin, HOOK_POINT_PREPROCESS, 'preProcess', $arrPluginData['priority']); 
     69                $this->registSuperHookPoint($objPlugin, HOOK_POINT_PROCESS, 'process', $arrPluginData['priority']); 
    7070            } 
    7171        } 
     
    100100            && is_array($this->arrRegistedPluginActions[$hook_point])) { 
    101101 
    102             ksort($this->arrRegistedPluginActions[$hook_point]); 
     102            krsort($this->arrRegistedPluginActions[$hook_point]); 
    103103            foreach ($this->arrRegistedPluginActions[$hook_point] as $priority => $arrFuncs) { 
    104  
     104                 
    105105                foreach ($arrFuncs as $func) { 
    106106                    if (!is_null($func['function'])) { 
     
    122122        // XXX 2.11.0 互換のため 
    123123        $arrCols = $objQuery->listTableFields($table); 
    124         if (in_array('rank', $arrCols)) { 
    125             $objQuery->setOrder('rank DESC'); 
     124        if (in_array('priority', $arrCols)) { 
     125            $objQuery->setOrder('priority DESC, plugin_id ASC'); 
    126126        } 
    127127        $arrRet = $objQuery->select($col,$table,$where); 
     
    140140        // XXX 2.11.0 互換のため 
    141141        $arrCols = $objQuery->listTableFields($table); 
    142         if (in_array('rank', $arrCols)) { 
     142        if (in_array('priority', $arrCols)) { 
    143143            $objQuery->setOrder('plugin_id ASC'); 
    144144        } 
     
    158158        $table = 'dtb_plugin'; 
    159159        $where = 'plugin_id = ?'; 
    160         // XXX 2.11.0 互換のため 
    161         $arrCols = $objQuery->listTableFields($table); 
    162         if (in_array('rank', $arrCols)) { 
    163             $objQuery->setOrder('rank ASC'); 
    164         } 
    165160        $plugin = $objQuery->getRow($col, $table, $where, array($plugin_id)); 
    166161        return $plugin; 
     
    178173        $table = 'dtb_plugin'; 
    179174        $where = 'plugin_code = ?'; 
    180         // XXX 2.11.0 互換のため 
    181         $arrCols = $objQuery->listTableFields($table); 
    182         if (in_array('rank', $arrCols)) { 
    183             $objQuery->setOrder('rank ASC'); 
    184         } 
    185175        $plugin = $objQuery->getRow($col, $table, $where, array($plugin_code)); 
    186176        return $plugin; 
     
    310300            SC_Utils_Ex::deleteFile(PLUGIN_TMPL_CACHE_REALDIR, false); 
    311301        } 
    312         $objTemplateTransformList = SC_Plugin_Template_Transform_List::getSingletonInstance(); 
     302        $objTemplateTransformList = SC_Plugin_TemplateTransformList::getSingletonInstance(); 
    313303        $objTemplateTransformList->init(); 
     304        // プラグインのsetTemplateTransformerを実行します. 
    314305        foreach ($this->arrPluginInstances as $objPlugin) { 
    315             // TODO 関数チェック; 
    316             $objPlugin->setTemplateTransformer(); 
    317         } 
    318         // トランスフォーム実行 
     306            if(method_exists($objPlugin, 'setTemplateTransformer') === true) { 
     307                // SC_Plugin_TemplateTransformList::arrConfsByTemplatesにトランスフォーム情報をセットします 
     308                $objPlugin->setTemplateTransformer(); 
     309            } 
     310        } 
     311        // SC_Plugin_TemplateTransformList::arrConfsByTemplatesにセットされた情報を元にトランスフォームの実行 
    319312        $objTemplateTransformList->transformAll($test_mode); 
    320313    } 
  • branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php

    r21509 r21512  
    637637        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    638638        // UPDATEする値を作成する。 
    639         $sqlval['rank'] = $priority; 
     639        $sqlval['priority'] = $priority; 
    640640        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
    641641        $where = "plugin_id = ?"; 
     
    671671        $arr_sqlval_plugin['compliant_version'] = $objReflection->getConstant('COMPLIANT_VERSION'); 
    672672        $arr_sqlval_plugin['plugin_description'] = $objReflection->getConstant('DESCRIPTION'); 
    673         $arr_sqlval_plugin['rank'] = 1 + $objQuery->max('rank', 'dtb_plugin'); 
     673        $arr_sqlval_plugin['priority'] = 0; 
    674674        $arr_sqlval_plugin['enable'] = PLUGIN_ENABLE_FALSE; 
    675675        $arr_sqlval_plugin['update_date'] = 'CURRENT_TIMESTAMP'; 
  • branches/version-2_12-dev/data/class/plugin/SC_Plugin_TemplateSelector.php

    r21509 r21512  
    3939     * コンストラクタ 
    4040     * 
    41      * @param SC_Plugin_TemplateTransformList $objTransformer SC_Plugin_TemplateTransformListオブジェクト 
     41     * @param SC_Plugin_TemplateTransformer $objTransformer SC_Plugin_TemplateTransformerオブジェクト 
    4242     * @param string $current_plugin プラグイン名 
    4343     * @return void 
    4444     */ 
    45     function __construct(SC_Plugin_TemplateTransformList $objTransformer, $current_plugin) { 
     45    function __construct(SC_Plugin_TemplateTransformer $objTransformer, $current_plugin) { 
    4646        $this->objTransformer = $objTransformer; 
    4747        $this->current_plugin = $current_plugin; 
     
    7474     * @return SC_Plugin_TemplateSelector SC_Plugin_TemplateSelectorオブジェクト 
    7575     */ 
    76     function find($selector, $index = NULL, $require = true, $err_msg = NULL, SC_Plugin_TemplateSelector $objSelector = NULL, $parent_index = NULL) { 
     76    function find($selector, $index = NULL, $require = true, $err_msg = NULL) { 
    7777        $objSelectorChild = new SC_Plugin_TemplateSelector($this->objTransformer, $this->current_plugin); 
    78         foreach ($this->arrElements as $key => &$objElement) { 
     78        foreach ($this->arrElements as &$objElement) { 
    7979            $this->objTransformer->find($selector, $index, false, NULL, $objSelectorChild, $objElement[0]); 
    8080        } 
     
    9797     */ 
    9898    function insertBefore($html_snip) { 
    99         foreach ($this->arrElements as $key => $objElement) { 
     99        foreach ($this->arrElements as $objElement) { 
    100100            $this->objTransformer->setTransform('insertBefore', $objElement[0], $html_snip); 
    101101        } 
     
    110110     */ 
    111111    function insertAfter($html_snip) { 
    112         foreach ($this->arrElements as $key => $objElement) { 
     112        foreach ($this->arrElements as $objElement) { 
    113113            $this->objTransformer->setTransform('insertAfter', $objElement[0], $html_snip); 
    114114        } 
     
    123123     */ 
    124124    function appendChild($html_snip) { 
    125         foreach ($this->arrElements as $key => $objElement) { 
     125        foreach ($this->arrElements as $objElement) { 
    126126            $this->objTransformer->setTransform('appendChild', $objElement[0], $html_snip); 
    127127        } 
     
    136136     */ 
    137137    function replaceChild($html_snip) { 
    138         foreach ($this->arrElements as $key => &$objElement) { 
     138        foreach ($this->arrElements as &$objElement) { 
    139139            $this->objTransformer->setTransform('replaceChild', $objElement[0], $html_snip); 
    140140        } 
  • branches/version-2_12-dev/data/class/plugin/SC_Plugin_TemplateTransformList.php

    r21509 r21512  
    3232class SC_Plugin_TemplateTransformList { 
    3333 
    34     // トランスフォームするテンプレートの配列 
     34    // テンプレート毎のSC_Plugin_TemplateTransformerのインスタンス. 
    3535    var $arrConfsByTemplates; 
     36    // プラグインが介入するテンプレートの配列 
    3637    var $arrTemplatesByPlugin; 
     38    // HeadNaviに追加するブロックの配列 
    3739    var $arrBlocsByPlugin; 
    3840 
     
    5658    function init() { 
    5759        $this->arrConfsByTemplates = array(); 
    58         // プラグインが介入するテンプレートの配列 
    5960        $this->arrTemplatesByPlugin = array(); 
    60         // HeadNaviに追加するブロックの配列 
    6161        $this->arrHeadNaviBlocsByPlugin = array(); 
    6262    } 
     
    6666     * 
    6767     * @param streing $tmpl 設定対象のテンプレートパス 
    68      * @param SC_Plugin_Base $objPlugin プラグインオブジェクト 
    69      * @return SC_Plugin_TemplateTransformList 指定したテンプレートを transform するための SC_Plugin_TemplateTransformList オブジェクト 
     68     * @param SC_Plugin_Base $objPlugin プラグインインスタンス 
     69     * @return SC_Plugin_TemplateTransformer 指定したテンプレートを transform するための SC_Plugin_TemplateTransformer オブジェクト 
    7070     */ 
    7171    function setTemplate($tmpl, SC_Plugin_Base $objPlugin) { 
    7272        $this->arrTemplatesByPlugin[$objPlugin->arrSelfInfo['class_name']][$tmpl] = 1; 
    7373 
    74         if (!is_array($this->arrConfsByTemplates)) $this->arrConfsByTemplates = array(); 
     74        if (!is_array($this->arrConfsByTemplates)) $this->arrConfsByTemplates = array(); // 初期化 
    7575        if (!array_key_exists($tmpl, $this->arrConfsByTemplates)) { 
    7676            // テンプレートパスをキーにトランスフォーマのインスタンスをセット. 
    77             $this->arrConfsByTemplates[$tmpl] = new SC_Plugin_TemplateTransformList($tmpl); 
     77            $this->arrConfsByTemplates[$tmpl] = new SC_Plugin_TemplateTransformer($tmpl); 
    7878        } 
    7979        // 処理を行うプラグイン名をセットする. 
     
    8787     * @param streing $tmpl 設定対象のテンプレートのパス(adminディレクトリからの相対パス) 
    8888     * @param SC_Plugin_Base $objPlugin プラグインオブジェクト 
    89      * @return SC_Plugin_TemplateTransformList SC_Plugin_TemplateTransformList オブジェクト 
     89     * @return SC_Plugin_TemplateTransformer SC_Plugin_TemplateTransformer オブジェクト 
    9090     */ 
    9191    function setTemplateAdmin($tmpl, SC_Plugin_Base $objPlugin) { 
     
    9898     * @param streing $tmpl 設定対象のテンプレートのパス(PCディレクトリからの相対パス) 
    9999     * @param SC_Plugin_Base $objPlugin プラグインオブジェクト 
    100      * @return SC_Plugin_TemplateTransformList SC_Plugin_TemplateTransformList オブジェクト 
     100     * @return SC_Plugin_TemplateTransformer SC_Plugin_TemplateTransformer オブジェクト 
    101101     */ 
    102102    function setTemplatePC($tmpl, SC_Plugin_Base $objPlugin) { 
     
    109109     * @param streing $tmpl 設定対象のテンプレートのパス(携帯ディレクトリからの相対パス) 
    110110     * @param SC_Plugin_Base $objPlugin プラグインオブジェクト 
    111      * @return SC_Plugin_TemplateTransformList SC_Plugin_TemplateTransformList オブジェクト 
     111     * @return SC_Plugin_TemplateTransformer SC_Plugin_TemplateTransformer オブジェクト 
    112112     */ 
    113113    function setTemplateMobile($tmpl, SC_Plugin_Base $objPlugin) { 
     
    120120     * @param streing         $tmpl      設定対象のテンプレートのパス(スマホディレクトリからの相対パス) 
    121121     * @param SC_Plugin_Base $objPlugin プラグインオブジェクト 
    122      * @return SC_Plugin_TemplateTransformList SC_Plugin_TemplateTransformList オブジェクト 
     122     * @return SC_Plugin_TemplateTransformer SC_Plugin_TemplateTransformer オブジェクト 
    123123     */ 
    124124    function setTemplateSphone($tmpl, SC_Plugin_Base $objPlugin) { 
     
    143143     */ 
    144144    function transformAll($test_mode = false) { 
     145        // SC_Plugin_TemplateTransformerの配列. 
    145146        foreach ($this->arrConfsByTemplates as $tmpl => $objTransformaer) { 
    146147            $objTransformaer->saveHTMLFile($tmpl, $test_mode); 
  • branches/version-2_12-dev/data/class/plugin/SC_Plugin_TemplateTransformer.php

    r21509 r21512  
    3030 * @version $Id: $ 
    3131 */ 
    32 class SC_Plugin_TemplateTransformList { 
     32class SC_Plugin_TemplateTransformer { 
    3333 
    3434    var $objDOM; 
     
    5050     * @return void 
    5151     */ 
    52     function SC_Plugin_TemplateTransformList($tmpl) { 
     52    function SC_Plugin_TemplateTransformer($tmpl) { 
    5353        $this->objDOM = new DOMDocument(); 
    5454        $this->objDOM->strictErrorChecking = false; 
     
    424424     * 変形済みファイルを書き出す 
    425425     * 
     426     * @param string $filename ファイル名. 
    426427     * @param boolean $test_mode  
    427428     * @return mixed  書き出しに成功した場合は,書き出したファイルのパス. 失敗した場合は false. 
Note: See TracChangeset for help on using the changeset viewer.