SOY Shopの銀行振込支払いモジュールを支払先の銀行分だけ増やしたいという要望がありましたので、モジュール(プラグイン)の複製方法を紹介します。

はじめに、銀行振込支払いモジュールのファイル構成は下記の通り。


soyshop
└── webapp
    └── src
        └── module
            ├── features
            │   └── payment_furikomi
            │       └── module.ini
            └── plugins
                └── payment_furikomi
                    ├── config
                    │   ├── PaymentFurikomiConfigFormPage.class.php
                    │   └── PaymentFurikomiConfigFormPage.html
                    ├── soyshop.config.php
                    ├── soyshop.info.php
                    ├── soyshop.order.mail.php
                    ├── soyshop.payment.php
                    └── util
                        └── PaymentFurikomiUtil.class.php

/soyshop/webapp/src/module/featuresディレクトリと

/soyshop/webapp/src/module/pluginsディレクトリ以下にあるpayment_furikomiというファイル郡が揃って一つのモジュール(プラグイン)を構成しています。


それでは、銀行振込支払いモジュール2というプラグインを作成してみます。

featuresとpluginsディレクトリ以下にあるpayment_furikomiディレクトリ丸々を複製して、payment_furikomi2というファイル群を作成します。


その時のディレクトリ名やファイル名の変更は下記の通り。


soyshop
└── webapp
    └── src
        └── module
            ├── features
            │   └── payment_furikomi2
            │       └── module.ini
            └── plugins
                └── payment_furikomi2
                    ├── config
                    │   ├── PaymentFurikomi2ConfigFormPage.class.php
                    │   └── PaymentFurikomi2ConfigFormPage.html
                    ├── soyshop.config.php
                    ├── soyshop.info.php
                    ├── soyshop.order.mail.php
                    ├── soyshop.payment.php
                    └── util
                        └── PaymentFurikomi2Util.class.php

ディレクトリ、ファイルに関わらず、

payment_furikomipayment_furikomi2に変更

PaymentFurikomiとあるところはPaymentFurikomi2に変更します。


payment_furikomi2がモジュールIDになり、各ファイルで使用します。




それでは上のファイルから変更内容を見ていきます。


はじめにiniファイルで、

/soyshop/webapp/src/module/features/payment_furikomi2/module.ini

を開いて、


[payment_furikomi2]
name="銀行振込支払いモジュール2"
type="payment"
description="銀行振込での支払い方法を追加するモジュールです。振込先の口座情報、購入者に送信するメールの文章を設定できます。"
version="1.1"
link=""
label=""

一行目の[]の中身を変更したモジュールIDに修正します。

※今回のモジュールIDはpayment_furikomi2です。


続いて、

soyshop.***.phpといった各種拡張ポイント用のファイルですが、

どのファイルも共通で


payment_furikomiという文字列をpayment_furikomi2へ

PaymentFurikomiという文字列をPaymentFurikomi2へ

FurikomiPaymentという文字列をFurikomiPayment2へと一括置換を行ってください。

※ファイル内にある日本語の文字列は必要であれば修正してください。


プラグイン内のhtmlファイルは特に修正する必要がありません。


残りの

/soyshop/webapp/src/module/plugins/payment_furikomi2/config/PaymentFurikomi2ConfigFormPage.class.php

/soyshop/webapp/src/module/plugins/payment_furikomi2/util/PaymentFurikomi2Util.class.php

ですが、


この二つのファイルも各種拡張ポイントファイルと同様に

payment_furikomiという文字列をpayment_furikomi2へ

PaymentFurikomiという文字列をPaymentFurikomi2へと一括置換すれば良いです。


この状態で管理画面を開くと新しいプラグインとして今回のプラグインが表示されています。

PHPが書ける方は複製後に適宜都合の良い様に修正してください。


今回の内容でエラーが表示された場合は、

エラー内容を添えてお問い合わせください。


他のプラグインの複製も対応方法は大体同じで、

プラグインID(モジュールID)の置換と、拡張ポイント(soyshop.****.php)以外で作成しているファイル名とコードを複製前のプラグインと重複させないようにすれば良いです。