Ticket #2181 (new 改善提案) — at Version 2

Opened 11 years ago

Last modified 11 years ago

開発合宿:プラグインのインストーラ

Reported by: adachi Owned by: somebody
Priority: Milestone: EC-CUBE2.13.0
Component: フロント Version: 2.12.3
Keywords: Cc:
修正済み: yes

Description (last modified by adachi) (diff)

以下は、現状プラグイン任せなので、エラーがおきやすい

・インストール ・アンインストール ・有効 ・無効

インストール用ユーティリティを用意し、プラグイン作成者に使ってもらう ※テーブル作成、ファイルコピー、ブロック追加など

利用イメージ

function install($arrPlugin) {
  $objInstaller->sql("create table xxx")
  $objInstaller->copyfiles("media/product.css", "media/product.css");
  $objInstaller->sql("alter table add column xxx int");
  ※このタイミングでは、SQLやファイルコピーは実行されない。
  ※実行は上のレイヤで制御
}

使い方

install($arrPlugin, $objPluginInstaller) {
    // カラム追加
    $objPluginInstaller->sql("alter table dtb_products add column plg_plugin_code_hoge text");

    // テーブル追加
    $objPluginInstaller->sql(
        "create table plg_plugin_code_hogehugatable (
             hoge_id int not null primary key
             hoge_name text)");

    // data/downloads/plugin/plugin_code/media/hoge.cssをhtml/plugin/plugin_code/media/huga.cssへコピー
    $objPluginInstaller->copyFile("media/hoge.css", "media/huga.css");

    // data/downloads/plugin/plugin_code/js/以下をhtml/plugin/plugin_code/js/へコピー
    $objPluginInstaller->copyDirectory("js", "js");
}

uninstall($arrPlugin, $objPluginInstaller) {
    // カラム追加
    $objPluginInstaller->sql("alter table dtb_products drop column plg_plugin_code_hoge");

    // テーブル削除
    $objPluginInstaller->sql("drop table plg_plugin_code_hoge");

    // ファイル削除
    html以下はアンインストール時にまるっと削除される
}

Change History

Changed 11 years ago by h_yoshimoto

エラー出るプラグイン

comment:1 Changed 11 years ago by adachi

使い方:

install($arrPlugin, $objPluginInstaller) {
    // カラム追加
    $objPluginInstaller->sql("alter table dtb_products add column plg_plugin_code_hoge text");
    // テーブル追加
    $objPluginInstaller->sql(
        "create table plg_plugin_code_hogehugatable (
             hoge_id int not null primary key
             hoge_name text)");
    // data/downloads/plugin/plugin_code/media/hoge.cssをhtml/plugin/plugin_code/media/huga.cssへコピー
    $objPluginInstaller->copyFile("media/hoge.css", "media/huga.css");

    // data/downloads/plugin/plugin_code/js/以下をhtml/plugin/plugin_code/js/へコピー
    $objPluginInstaller->copyDirectory("js", "js");
}

comment:2 Changed 11 years ago by adachi

  • Description modified (diff)

Changed 11 years ago by h_yoshimoto

エラー出るプラグインをアップデート

Note: See TracTickets for help on using tickets.