EC-CUBE / coupon-plugin

GNU Lesser General Public License v2.1
11 stars 41 forks source link

テンプレートのディレクトリ構造の整理 #128

Open okazy opened 4 years ago

okazy commented 4 years ago

4系のプラグインにおいて、テンプレートのディレクトリ構造と不具合の状況について調査した。

インストール時にファイルが配置される。

app/template/default/Coupon4/coupon_shopping_item.twig app/template/default/Coupon4/coupon_shopping_item_confirm.twig app/template/default/Coupon4/mypage_history_coupon.twig

以下のようにスニペットとして利用される。

$event->addSnippet('@Coupon4/default/coupon_shopping_item.twig');

無効化時に削除される。 作成されたファイルを編集してもフロントには反映されず、以下のファイルが優先される。 app/Plugin/Coupon4/Resource/template/default/coupon_shopping_item.twig

管理画面のページ管理から編集時に作成される

app/template/default/Coupon4/Resource/template/default/shopping_coupon.twig

以下のように利用されている。

/**
 * @Template("@Coupon4/default/shopping_coupon.twig")
*/

管理画面で編集はできるがフロントには反映されない、以下のファイルが優先される。(★) app/Plugin/Coupon4/Resource/template/default/shopping_coupon.twig

★の問題に対して、以下のプルリクをいただいている。 https://github.com/EC-CUBE/coupon-plugin/pull/126

/**
 * @Template("@Coupon4/default/shopping_coupon.twig")
*/
↓
/**
 * @Template("Coupon4/Resource/template/default/shopping_coupon.twig")
*/

こちらの修正で以下のファイルが読み込まれるようになる。 app/template/Coupon4/Resource/template/default/shopping_coupon.twig

本当なら根本対応したいところであるが、稼働中のサイトへ影響があるので慎重に行う必要がある。

4.0.4では app/template/plugin/[Plugin Code] 配下に配置することで優先して読み込まれるようになる見込みである。 https://github.com/EC-CUBE/ec-cube/pull/4527 なので以下に配置するのが適切かと思われる。

app/template/plugin/Coupon4/coupon_shopping_item.twig app/template/plugin/Coupon4/coupon_shopping_item_confirm.twig app/template/plugin/Coupon4/mypage_history_coupon.twig app/template/plugin/Coupon4/shopping_coupon.twig

ファイルの配置を変える必要があるのでマイナーバージョンアップでは変更しにくい。 現在も不具合があるので、実際には影響は限定的だと思われる。

4.0.3では上記に配置しても読み込まれない問題は残る。

どのように対応すべきか判断が難しいので、ご意見をいただけると嬉しいです。

okazy commented 4 years ago

不具合の修正はできるため、 #126 の修正でいく。 今後マイナーバージョンアップではディレクトリ構造に関する修正が難しくなる。 不適切なお作法の状態となってしまうが、不具合があるよりはよいと判断。