Changeset 20246


Ignore:
Timestamp:
2011/02/20 12:03:00 (10 years ago)
Author:
kotani
Message:

#976 ([管理画面]プラグイン)

  • プラグインアップロード機能追加
  • リファクタリング開発
  • SC_CheckError 拡張子チェックメソッドFILE_EXT_CHECK() を、判定拡張子にピリオドが複数ある場合にも対応するよう修正
Location:
branches/version-2_5-dev
Files:
2 deleted
7 edited

Legend:

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

    r20116 r20246  
    1 <form name="form1" id="form1" method="post" action="?"> 
     1<!--{* 
     2/* 
     3 * This file is part of EC-CUBE 
     4 * 
     5 * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved. 
     6 * 
     7 * http://www.lockon.co.jp/ 
     8 * 
     9 * This program is free software; you can redistribute it and/or 
     10 * modify it under the terms of the GNU General Public License 
     11 * as published by the Free Software Foundation; either version 2 
     12 * of the License, or (at your option) any later version. 
     13 * 
     14 * This program is distributed in the hope that it will be useful, 
     15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
     16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     17 * GNU General Public License for more details. 
     18 * 
     19 * You should have received a copy of the GNU General Public License 
     20 * along with this program; if not, write to the Free Software 
     21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
     22 */ 
     23*}--> 
     24<!--<form name="form1" id="form1" method="post" action="?">--> 
     25<form name="form1" method="post" action="?" enctype="multipart/form-data"> 
    226<input type="hidden" name="mode" value="" /> 
    3 <input type="hidden" name="keyname" value="" /> 
     27<input type="hidden" name="plugin_id" value="" /> 
     28<input type="hidden" name="plugin_code" value="" /> 
     29 
    430<div id="system" class="contents-main"> 
    5   <div class="paging"> 
    6     <!--▼ページ送り--> 
    7     <!--{$tpl_strnavi}--> 
    8     <!--▲ページ送り--> 
     31 
     32  <h2>プラグイン登録</h2> 
     33  <table class="form"> 
     34    <tr> 
     35      <th>プラグイン<span class="attention"> *</span></th> 
     36      <td> 
     37        <!--{assign var=key value="plugin_file"}--> 
     38        <span class="attention"><!--{$arrErr[$key]}--></span> 
     39        <input type="file" name="<!--{$key}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" class="box54" size="64" <!--{if $arrErr[$key]}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}-->> 
     40      </td> 
     41    </tr> 
     42  </table> 
     43 
     44  <div class="btn-area"> 
     45    <a class="btn-action" href="javascript:;" onclick="fnModeSubmit('upload', '', '');return false;"><span class="btn-next">この内容で登録する</span></a> 
    946  </div> 
    1047   
    11   <!--▼メンバー一覧ここから--> 
    12   <table class="list"> 
     48  <!--▼プラグイン一覧ここから--> 
     49  <h2>プラグイン一覧</h2> 
     50  <!--{if count($plugins) > 0}--> 
     51  <span class="attention"><!--{$arrErr.plugin_error}--><!--{$arrErr.mode}--><!--{$arrErr.plugin_id}--><!--{$arrErr.plugin_code}--></span> 
     52  <table class="list" width="900"> 
     53    <colgroup width="15%"> 
     54    <colgroup width="10%"> 
     55    <colgroup width="25%"> 
     56    <colgroup width="28%"> 
     57    <colgroup width="7%"> 
     58    <colgroup width="10%"> 
     59    <colgroup width="5%"> 
    1360    <tr> 
    14       <th>名前</th> 
    15       <th>パス</th> 
    16       <th>有効/無効</th> 
     61      <th >プラグイン名</th> 
     62      <th>作者</th> 
     63      <th>サイトURL</th> 
     64      <th>説明</th> 
     65      <th>ステータス</th> 
     66      <th>操作</th> 
    1767      <th>設定</th> 
    1868    </tr> 
    1969    <!--{section name=data loop=$plugins}--> 
    20     <!--▼メンバー<!--{$smarty.section.data.iteration}-->--> 
    2170    <tr> 
    22       <td><!--{$plugins[data].plugin_name|h}--></td> 
    23       <td><!--{$plugins[data].plugin_name|h}--></td> 
    24       <td> 
    25         <!--{if $plugins[data].create_date == null}--> 
    26         <input type="hidden" name="plugin_name" value="<!--{$plugins[data].plugin_name}-->" /> 
    27            <a class="btn-normal" href="javascript:;" name="install" onclick="fnModeSubmit('install','',''); return false;">install</a> 
     71      <td><!--{$plugins[data].plugin_name|default:$plugins[data].plugin_code|h}--><!--{if $plugins[data].plugin_version != ''}--><br /><!--{$plugins[data].plugin_version|h}--><!--{/if}--></td> 
     72      <td><!--{$plugins[data].author|default:'-'|h}--></td> 
     73      <td><!--{$plugins[data].plugin_site_url|default:'-'|h}--></td> 
     74      <td><!--{$plugins[data].plugin_description|default:'-'|h}--></td> 
     75      <td class="center"> 
     76        <!--{if $plugins[data].enable == $smarty.const.PLUGIN_ENABLE_TRUE}--> 
     77        有効 
     78        <!--{elseif $plugins[data].enable == $smarty.const.PLUGIN_ENABLE_FALSE}--> 
     79        無効 
     80        <!--{else}-->-<!--{/if}--> 
     81      </td> 
     82      <td class="center"> 
     83        <!--{if $plugins[data].status == $smarty.const.PLUGIN_STATUS_UPLOADED}--> 
     84        <a class="btn-normal" href="javascript:;" name="install" onclick="fnSetFormValue('plugin_id', '<!--{$plugins[data].plugin_id}-->'); fnModeSubmit('install','plugin_code','<!--{$plugins[data].plugin_code}-->'); return false;">install</a> 
    2885        <!--{else}--> 
    29           <!--{if $plugins[data].enable == 1}--> 
    30            <a class="btn-normal" href="javascript:;" name="disable" onclick="fnModeSubmit('disable','',''); return false;">disable</a> 
     86          <!--{if $plugins[data].enable == $smarty.const.PLUGIN_ENABLE_TRUE}--> 
     87          <a class="btn-normal" href="javascript:;" name="disable" onclick="fnSetFormValue('plugin_id', '<!--{$plugins[data].plugin_id}-->'); fnModeSubmit('disable','plugin_code','<!--{$plugins[data].plugin_code}-->'); return false;">disable</a><br /> 
    3188          <!--{else}--> 
    32            <a class="btn-normal" href="javascript:;" name="enable" onclick="fnModeSubmit('enable','',''); return false;">enable</a> 
     89          <a class="btn-normal" href="javascript:;" name="enable" onclick="fnSetFormValue('plugin_id', '<!--{$plugins[data].plugin_id}-->'); fnModeSubmit('enable','plugin_code','<!--{$plugins[data].plugin_code}-->'); return false;">enable</a><br /> 
    3390          <!--{/if}--> 
    34            <a class="btn-normal" href="javascript:;" name="uninstall" onclick="fnModeSubmit('uninstall','',''); return false;">uninstall</a> 
     91          <a class="btn-normal" href="javascript:;" name="uninstall" onclick="fnSetFormValue('plugin_id', '<!--{$plugins[data].plugin_id}-->'); fnModeSubmit('uninstall','plugin_code','<!--{$plugins[data].plugin_code}-->'); return false;">uninstall</a> 
    3592        <!--{/if}--> 
    3693      </td> 
    37        
    38       <td> 
    39       <!--{if $plugins[data].create_date != null && $plugins[data].enable == 1}--> 
    40         <input type="button" name="preference" value="preference" onclick="" /> 
    41         <!--{/if}--> 
     94      <td class="center"> 
     95        <!--{if $plugins[data].plugin_setting_path != ''}--> 
     96        <a href="?" onclick="win03('<!--{$plugins[data].plugin_setting_path}-->','plugin_setting','620','760'); return false;">設定</a> 
     97        <!--{else}-->-<!--{/if}--> 
    4298      </td> 
    4399       
    44100    </tr> 
    45     <!--▲メンバー<!--{$smarty.section.data.iteration}-->--> 
    46101    <!--{/section}--> 
    47102  </table> 
    48  
    49   <div class="paging"> 
    50     <!--▼ページ送り--> 
    51     <!--{$tpl_strnavi}--> 
    52     <!--▲ページ送り--> 
    53   </div> 
     103  <!--{else}--> 
     104  登録されているプラグインはありません。 
     105  <!--{/if}--> 
    54106 
    55107</div> 
  • branches/version-2_5-dev/data/class/SC_CheckError.php

    r20090 r20246  
    621621            $errFlag = 1; 
    622622            $array_ext = explode(".", $_FILES[$value[1]]['name']); 
    623             $ext = $array_ext[ count ( $array_ext ) - 1 ]; 
    624             $ext = strtolower($ext); 
    625623 
    626624            $strExt = ""; 
    627625 
    628626            foreach ( $value[2] as $checkExt ){ 
     627                $ext = ""; 
     628 
     629                // チェック拡張子のピリオドの数を取得('tar.gz'の場合1個、'jpg'のように通常は0個) 
     630                $count_period = substr_count($checkExt, "."); 
     631                 
     632                if($count_period > 0) { 
     633                    for($i = max(array_keys($array_ext)) - $count_period; $i < count($array_ext); $i++) { 
     634                        $ext .= $array_ext[$i] . "."; 
     635                    } 
     636                    $ext = preg_replace("/.$/", "" ,$ext); 
     637                } else { 
     638                    $ext = $array_ext[ count ( $array_ext ) - 1 ]; 
     639                } 
     640 
     641                $ext = strtolower($ext); 
     642 
    629643                if ( $ext == $checkExt) { 
    630644                    $errFlag = 0; 
  • branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php

    r20116 r20246  
    2424// {{{ requires 
    2525require_once(CLASS_REALDIR . "pages/admin/LC_Page_Admin.php"); 
     26require_once(CLASS_EX_REALDIR . "helper_extends/SC_Helper_FileManager_Ex.php"); 
    2627 
    2728/** 
     
    5253 
    5354    /** 
    54      * フォームパラメータ初期化 
    55      * 
    56      * @return void 
    57      */ 
    58     function initForm() { 
    59         $objForm = new SC_FormParam(); 
    60         $objForm->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 
    61         $objForm->addParam('plugin_name', 'plugin_name', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 
    62  
    63         $objForm->setParam($_POST); 
    64         $this->objForm = $objForm; 
    65     } 
    66  
    67     /** 
    6855     * Page のプロセス. 
    6956     * 
     
    8168     */ 
    8269    function action() { 
     70        // 認証可否の判定 
    8371        SC_Utils_Ex::sfIsSuccess(new SC_Session); 
    84         $this->initForm(); 
    85         switch($this->getMode()) { 
    86             // PHP INFOを表示 
    87             case 'install': 
    88                 $name = $this->objForm->getValue('plugin_name'); 
    89                 require_once(DATA_REALDIR.'/plugin/'.$name.'/'.$name.'.php'); 
    90                 $plugin = new $name(); 
    91                 $plugin->install(); 
    92                 break; 
    93             case 'uninstall': 
    94                 $name = $this->objForm->getValue('plugin_name'); 
    95                 require_once(DATA_REALDIR.'/plugin/'.$name.'/'.$name.'.php'); 
    96                 $plugin = new $name(); 
    97                 $plugin->uninstall(); 
    98                 break; 
    99             case 'enable': 
    100                 $name = $this->objForm->getValue('plugin_name'); 
    101                 require_once(DATA_REALDIR.'/plugin/'.$name.'/'.$name.'.php'); 
    102                 $plugin = new $name(); 
    103                 $plugin->enable(); 
    104  
    105                 break; 
    106             case 'disable': 
    107               $name = $this->objForm->getValue('plugin_name'); 
    108                 require_once(DATA_REALDIR.'/'.$name.'/'.$name.'.php'); 
    109                 $plugin = new $name(); 
    110                 $plugin->disable(); 
    111                 break; 
    112             default: 
    113                 $plugins = SC_Helper_Plugin_Ex::getAllPlugin(); 
    114                 $this->plugins = array_merge($plugins, 
    115                 $this->getPluginOnFilesystem($plugins)); 
    116                 break; 
    117         } 
    118  
    119         $this->arrSystemInfo = $this->getSystemInfo(); 
    120     } 
    121  
    122     /* 
    123      CREATE TABLE dtb_plugin ( 
    124      plugin_id INT NOT NULL, 
    125      plugin_name VARCHAR(255) NOT NULL DEFAULT "", 
    126      enable INT NOT NULL DEFAULT 0, 
    127      del_flg INT NOT NULL DEFAULT 0, 
    128      class_name VARCHAR(255) NOT NULL DEFAULT NULL, 
    129      create_date DATETIME NOT NULL, 
    130      update_date DATETIME NOT NULL, 
    131      PRIMARY KEY (plugin_id) 
    132      ) TYPE=InnoDB; 
    133      */ 
    134  
    135     function getPluginOnFilesystem($existsPlugins){ 
    136  
    137         $dir = DATA_REALDIR."plugin/"; 
    138         $arrPlugins = array(); 
    139         if($dh =  opendir($dir)){ 
    140             while(($file = readdir($dh)) !== false){ 
    141                 if(!preg_match('/^\\./', $file) && $file !='..' && filetype($dir.$file) == 'dir'){ 
    142                     $arrPlugins[] = array('plugin_name'=>$file,'class_name'=>$file); 
    143  
     72 
     73        // パラメータ管理クラス 
     74        $objFormParam = new SC_FormParam(); 
     75        // パラメータ情報の初期化 
     76        $this->lfInitParam($objFormParam); 
     77        $objFormParam->setParam($_POST); 
     78         
     79        $mode = $this->getMode(); 
     80 
     81        switch($mode) { 
     82        case 'install': 
     83        case 'uninstall': 
     84        case 'enable': 
     85        case 'disable': 
     86            // エラーチェック 
     87            $this->arrErr = $objFormParam->checkError(); 
     88 
     89            if(count($this->arrErr) == 0) { 
     90                $plugin_id = $objFormParam->getValue('plugin_id'); 
     91                $plugin_code = $objFormParam->getValue('plugin_code'); 
     92                 
     93                // プラグインファイルを読み込み、modeで指定されたメソッドを実行 
     94                $this->arrErr = $this->lfExecPlugin($plugin_id, $plugin_code, $mode); 
     95            } 
     96            break; 
     97        case 'upload': 
     98            // プラグイン情報を設定 
     99            $plugin_code = $this->lfGetPluginCode($_FILES['plugin_file']['name']); 
     100            $plugin_dir = $this->lfGetPluginDir($plugin_code); 
     101 
     102            // ファイルアップロード情報を設定 
     103            $objUpFile = new SC_UploadFile(TEMPLATE_TEMP_REALDIR, $plugin_dir); 
     104            $this->lfInitUploadFile($objUpFile); 
     105 
     106            // エラーチェック 
     107            $this->arrErr = $this->lfCheckErrorUploadFile($plugin_code, $plugin_dir); 
     108 
     109            if(count($this->arrErr) == 0) { 
     110                // 一時ディレクトリへアップロード 
     111                $this->arrErr['plugin_file'] = $objUpFile->makeTempFile('plugin_file', false); 
     112 
     113                if($this->arrErr['plugin_file'] == "") { 
     114                    // プラグイン保存ディレクトリへ解凍 
     115                    $this->arrErr = $this->lfUploadPlugin($objUpFile, $plugin_dir, $plugin_code, $_FILES['plugin_file']['name']); 
     116 
     117                    // 完了メッセージアラート設定 
     118                    if(count($this->arrErr) == 0) { 
     119                        $this->tpl_onload = "alert('プラグインをアップロードしました。');"; 
     120                    } 
    144121                } 
    145122            } 
    146         } 
    147         //        var_dump($arrPlugins); 
    148         return $arrPlugins; 
     123            break; 
     124        default: 
     125            break; 
     126        } 
     127 
     128        // DBからプラグイン情報を取得 
     129        $this->plugins = SC_Helper_Plugin_Ex::getAllPlugin(); 
    149130    } 
    150131 
     
    159140 
    160141    /** 
    161      * システム情報を取得する 
    162      * 
    163      * @return array 
    164      */ 
    165     function getSystemInfo() { 
    166         $objDB = SC_DB_DBFactory_Ex::getInstance(); 
    167  
    168         $arrSystemInfo = array( 
    169         array('title' => 'EC-CUBE',  'value' => ECCUBE_VERSION), 
    170         array('title' => 'OS',       'value' => php_uname()), 
    171         array('title' => 'DBサーバ',  'value' => $objDB->sfGetDBVersion()), 
    172         array('title' => 'WEBサーバ', 'value' => $_SERVER['SERVER_SOFTWARE']), 
    173         array('title' => 'PHP',      'value' => phpversion()), 
    174         array('title' => 'GD',       'value' => extension_loaded('GD') ? 'Loaded' : '--'), 
    175         ); 
    176  
    177         return $arrSystemInfo; 
     142     * パラメータ初期化. 
     143     * 
     144     * @param object $objFormParam 
     145     * @return void 
     146     *  
     147     */ 
     148    function lfInitParam(&$objFormParam) { 
     149        $objFormParam->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 
     150        $objFormParam->addParam('plugin_id', 'plugin_id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     151        $objFormParam->addParam('plugin_code', 'plugin_code', MTEXT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 
     152    } 
     153 
     154    /** 
     155     * アップロードファイルパラメータ初期化. 
     156     * 
     157     * @param object $objUpFile SC_UploadFileのインスタンス. 
     158     * @return void 
     159     */ 
     160    function lfInitUploadFile(&$objUpFile) { 
     161        $objUpFile->addFile("プラグイン", 'plugin_file', array('tar', 'tar.gz'), TEMPLATE_SIZE, true, 0, 0, false); 
     162    } 
     163 
     164    /** 
     165     * アップロードファイルのエラーチェック. 
     166     *  
     167     * @param string $plugin_code 
     168     * @param string $plugin_dir 
     169     * @return array エラー情報を格納した連想配列. 
     170     *  
     171     */ 
     172    function lfCheckErrorUploadFile($plugin_code, $plugin_dir) { 
     173        $arrErr = array(); 
     174 
     175        // プラグイン重複チェック 
     176        $plugins = SC_Helper_Plugin_Ex::getAllPlugin(); 
     177        foreach($plugins as $val) { 
     178            if($val['plugin_code'] == $plugin_code) { 
     179                $arrErr['plugin_file'] = "※ 同名のプラグインがすでに登録されています。<br/>"; 
     180            } 
     181        } 
     182 
     183        return $arrErr; 
     184    } 
     185 
     186    /** 
     187     * プラグイン名(物理名)を取得する. 
     188     * (アップロードされたファイル名をプラグイン名(物理名)とする). 
     189     *  
     190     * @param string $upload_file_name 
     191     * @return string プラグイン名(物理名). 
     192     *  
     193     */ 
     194    function lfGetPluginCode($upload_file_name) { 
     195        $array_ext = explode(".", $upload_file_name); 
     196        return $array_ext[0]; 
     197    } 
     198 
     199    /** 
     200     * プラグイン保存ディレクトリのパスを取得する. 
     201     * 
     202     * @param string $plugin_code 
     203     * @return string プラグイン保存ディレクトリ. 
     204     *  
     205     */ 
     206    function lfGetPluginDir($plugin_code) { 
     207        $plugin_dir = DATA_REALDIR . 'plugin/' . $plugin_code . '/'; 
     208        return $plugin_dir; 
     209    } 
     210 
     211    /** 
     212     * プラグインファイルのパスを取得する. 
     213     *  
     214     * @param string $plugin_code 
     215     * @return string プラグインファイルパス. 
     216     */ 
     217    function lfGetPluginFilePath($plugin_code) { 
     218        $plugin_file_path = $this->lfGetPluginDir($plugin_code) . $plugin_code . '.php'; 
     219        return $plugin_file_path; 
     220    } 
     221    /** 
     222     * プラグインをアップロードする. 
     223     *  
     224     * @param object $objUpFile 
     225     * @param string $plugin_dir 
     226     * @param string $plugin_code 
     227     * @param string $plugin_file_name 
     228     * @return array エラー情報を格納した連想配列. 
     229     *  
     230     */ 
     231    function lfUploadPlugin(&$objUpFile, $plugin_dir, $plugin_code, $plugin_file_name) { 
     232        $arrErr = array(); 
     233         
     234        // 必須チェック 
     235        $arrErr = $objUpFile->checkEXISTS('plugin_file'); 
     236 
     237        if(count($arrErr) == 0) { 
     238            // プラグイン保存ディレクトリ作成 
     239            if(file_exists($plugin_dir)) { 
     240                $arrErr['plugin_file'] = "※ 同名のディレクトリがすでに存在します。<br/>"; 
     241            } else { 
     242                mkdir($plugin_dir); 
     243            } 
     244 
     245            if(count($arrErr) == 0) { 
     246                // 一時ディレクトリからプラグイン保存ディレクトリへ移動 
     247                $objUpFile->moveTempFile(); 
     248 
     249                // プラグイン保存ディレクトリへ解凍 
     250                SC_Helper_FileManager::unpackFile($plugin_dir . $plugin_file_name); 
     251 
     252                // プラグイン情報をDB登録 
     253                $this->lfRegistData($plugin_dir, $plugin_code); 
     254            } 
     255        } 
     256 
     257        return $arrErr; 
     258    } 
     259 
     260    /** 
     261     * プラグイン情報をDB登録. 
     262     * 
     263     * @param string $plugin_dir 
     264     * @param string $plugin_code 
     265     * @return void 
     266     * 
     267     */ 
     268    function lfRegistData($plugin_dir, $plugin_code) { 
     269        $objQuery =& SC_Query::getSingletonInstance(); 
     270        $sqlval = array(); 
     271         
     272        $sqlval['plugin_id'] = $objQuery->nextVal('dtb_plugin_plugin_id'); 
     273        $sqlval['plugin_code'] = $plugin_code; 
     274        $sqlval['status'] = PLUGIN_STATUS_UPLOADED; 
     275        $sqlval['enable'] = PLUGIN_ENABLE_FALSE; 
     276        $sqlval['update_date'] = 'now()'; 
     277        $objQuery->insert('dtb_plugin', $sqlval); 
     278    } 
     279 
     280    /** 
     281     * プラグインファイルを読み込む. 
     282     *  
     283     * @param string $plugin_code 
     284     * @return array エラー情報を格納した連想配列. 
     285     */ 
     286    function lfRequirePluginFile($plugin_code) { 
     287        $arrErr = array(); 
     288        $plugin_file_path = $this->lfGetPluginFilePath($plugin_code); 
     289 
     290        if(file_exists($plugin_file_path)) { 
     291            require_once($plugin_file_path); 
     292        } else { 
     293            $arrErr['plugin_error'] = "※ " . $plugin_code . ".phpが存在しないため実行できません。<br/>"; 
     294        } 
     295         
     296        return $arrErr; 
     297    } 
     298 
     299    /** 
     300     * プラグインファイルを読み込み、指定されたメソッドを実行する. 
     301     * 
     302     * @param integer $plugin_id 
     303     * @param string $plugin_code 
     304     * @param string $exec_mode プラグイン実行メソッド名. 
     305     * @return array エラー情報を格納した連想配列. 
     306     * 
     307     */ 
     308    function lfExecPlugin($plugin_id, $plugin_code, $exec_mode) { 
     309        $arrErr = array(); 
     310 
     311        // プラグインファイル読み込み 
     312        $arrErr = $this->lfRequirePluginFile($plugin_code); 
     313         
     314        if(count($arrErr) == 0) { 
     315            $plugin = new $plugin_code(); 
     316            $arrErr = $plugin->$exec_mode($plugin_id); 
     317        } 
     318 
     319        return $arrErr; 
    178320    } 
    179321} 
  • branches/version-2_5-dev/data/mtb_constants_init.php

    r20134 r20246  
    603603/** 外部サイトHTTP取得タイムアウト時間(秒) */ 
    604604define('HTTP_REQUEST_TIMEOUT', "5"); 
     605/** プラグインの状態:アップロード済み */ 
     606define('PLUGIN_STATUS_UPLOADED', "1"); 
     607/** プラグインの状態:インストール済み */ 
     608define('PLUGIN_STATUS_INSTALLED', "2"); 
     609/** プラグイン有効/無効:有効 */ 
     610define('PLUGIN_ENABLE_TRUE', "1"); 
     611/** プラグイン有効/無効:無効 */ 
     612define('PLUGIN_ENABLE_FALSE', "2"); 
    605613?> 
  • branches/version-2_5-dev/html/install/sql/create_table_mysql.sql

    r20198 r20246  
    12321232CREATE TABLE dtb_plugin ( 
    12331233    plugin_id int NOT NULL, 
    1234     plugin_name varchar(255) NOT NULL, 
     1234    plugin_name varchar(255) NOT NULL DEFAULT '', 
     1235    plugin_code varchar(255) NOT NULL, 
     1236    author varchar(255) NOT NULL DEFAULT '', 
     1237    plugin_site_url varchar(255) NOT NULL DEFAULT '', 
     1238    plugin_version varchar(255) NOT NULL DEFAULT '', 
     1239    plugin_description varchar(255) NOT NULL DEFAULT '', 
     1240    plugin_setting_path varchar(255) NOT NULL DEFAULT '', 
     1241    class_name varchar(255) NOT NULL DEFAULT '', 
     1242    status smallint NOT NULL DEFAULT 0, 
    12351243    enable smallint NOT NULL DEFAULT 0, 
    12361244    del_flg smallint NOT NULL DEFAULT 0, 
    1237     class_name varchar(255) NOT NULL, 
    12381245    create_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    12391246    update_date timestamp NOT NULL, 
  • branches/version-2_5-dev/html/install/sql/create_table_pgsql.sql

    r20198 r20246  
    12321232CREATE TABLE dtb_plugin ( 
    12331233    plugin_id int NOT NULL, 
    1234     plugin_name text NOT NULL, 
     1234    plugin_name text NOT NULL DEFAULT '', 
     1235    plugin_code text NOT NULL, 
     1236    author text NOT NULL DEFAULT '', 
     1237    plugin_site_url text NOT NULL DEFAULT '', 
     1238    plugin_version text NOT NULL DEFAULT '', 
     1239    plugin_description text NOT NULL DEFAULT '', 
     1240    plugin_setting_path text NOT NULL DEFAULT '', 
     1241    class_name text NOT NULL DEFAULT '', 
     1242    status smallint NOT NULL DEFAULT 0, 
    12351243    enable smallint NOT NULL DEFAULT 0, 
    12361244    del_flg smallint NOT NULL DEFAULT 0, 
    1237     class_name text NOT NULL, 
    12381245    create_date timestamp NOT NULL DEFAULT now(), 
    12391246    update_date timestamp NOT NULL, 
  • branches/version-2_5-dev/html/install/sql/insert_data.sql

    r20211 r20246  
    12711271INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ECCUBE_INFO', 'true', 1218, ' EC-CUBE更新情報取得 (true:取得する false:取得しない)'); 
    12721272INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('HTTP_REQUEST_TIMEOUT', '"5"', 1219, '外部サイトHTTP取得タイムアウト時間(秒)'); 
     1273INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('PLUGIN_STATUS_UPLOADED', '"1"', 1220, 'プラグインの状態:アップロード済み'); 
     1274INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('PLUGIN_STATUS_INSTALLED', '"2"', 1221, 'プラグインの状態:インストール済み'); 
     1275INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('PLUGIN_ENABLE_TRUE', '"1"', 1222, 'プラグイン有効/無効:有効'); 
     1276INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('PLUGIN_ENABLE_FALSE', '"2"', 1223, 'プラグイン有効/無効:無効'); 
    12731277 
    12741278INSERT INTO dtb_index_list (table_name, column_name, recommend_flg, recommend_comment) VALUES ('dtb_customer', 'email_mobile', 0, '会員数増加時のログイン処理速度を向上させたいときに試してみてください'); 
Note: See TracChangeset for help on using the changeset viewer.