プラグイン > 開発について > 4系プラグインのPluginManagerの書き方 |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h_tanaka |
投稿日時: 2019/3/5 18:50
対応状況: 解決済
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1877 |
4系プラグインのPluginManagerの書き方 EC-CUBE3系プラグインを4系用に開発し直しています。
サンプルプラグインである商品レビュープラグインを参考にしているのですが、PluginManager.php において、各関数のパラメーターが変わっているようです。
3系で$appを用いた次のような処理は、4系ではどのように記述すればよいかわかりますでしょうか? $app['config']['plugin_urlpath'] $app['config']['plugin_html_realdir'] $app['config']['block_realdir'] $app['eccube.repository.block'] $app['eccube.repository.page_layout'] Cache::clear($app, false); |
umebius |
投稿日時: 2019/3/5 19:02
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 4系プラグインのPluginManagerの書き方 js、cssなどのasset類は自動でコピーしてくれるようになったので 自前で書かなくて良さそうですが $app['eccube.repository.block']などのレポジトリは$containerを使って、 $repository = $container->get(\Eccube\Repository\BlockRepository::class); で取得できると思います。
|
h_tanaka |
投稿日時: 2019/3/6 10:04
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1877 |
Re: 4系プラグインのPluginManagerの書き方 umebius さん
ありがとうございます! js、cssなどは自動でコピーされるのですね! コピーされるようにしておくよう、特定のパスに配置する必要があるなどの条件はありますか? プラグイン有効時に行いたいのは、次のとおりです。 これらの方法を4系のときにどう実装すればよいかがわかりません。 ・リソースのコピー →自動で行われる? ・WYSIWYGでアップロードされる画像の保存先パスの指定 ・ブロックのコピー 参考に、3系プラグインの時のソースを記載しておきます。
|
h_tanaka |
投稿日時: 2019/3/6 16:56
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1877 |
Re: 4系プラグインのPluginManagerの書き方 ブロックのコピーは次のような方法で自己解決できました。
リソースであるassetsのコピーは自動では行われないようです。 app/Plugin/pluginName/Resource/assets ↓ html/plugin/pluginname/assets 引き続き調査します。
|
umebius |
投稿日時: 2019/3/6 18:01
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 4系プラグインのPluginManagerの書き方 リソースのコピーはインストール時に下記の処理が走りますね。
EC-CUBE4.0.2のPluginServiceより引用
|
h_tanaka |
投稿日時: 2019/3/7 12:40
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1877 |
Re: 4系プラグインのPluginManagerの書き方 umebius さん
ありがとうございます。 改めてプラグインをアンインストールしてからインストールし直してみたところ、確かに html/plugin 配下に自動でコピーされていました!
|
h_tanaka |
投稿日時: 2019/3/7 15:48
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1877 |
Re: 4系プラグインのPluginManagerの書き方 プラグインの assets ファイルをTwigで呼び出すにはどうしたらよいでしょうか?
次のような感じになるのだと思うのですが、'admin'の箇所を何にすればよいのかが分かりません。
呼び出したいファイルは次の場所に配置されています。 html/plugin/tbsCustom/assets/css/fileupload/jquery.fileupload.css
|
h_tanaka |
投稿日時: 2019/3/7 16:39
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1877 |
Re: 4系プラグインのPluginManagerの書き方 自己解決しました。
次のような書き方でうまくロードできました。
|
h_tanaka |
投稿日時: 2019/3/8 11:09
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1877 |
Re: 4系プラグインのPluginManagerの書き方 WYSIWYGでアップロードされる画像の保存先パスの指定方法がまだわかっていません。
プロジェクトのインストールディレクトリまでの物理パスは次の前提です。 /Applications/MAMP/htdocs/test/eccube-4.0.2/ 管理画面のプラグイン編集ページ(app/Plugin/tbsCustom/Resource/template/admin/edit.twig)では、商品登録ページを参考にして、画像保存先のパスは次のような記述で取得できました。
取得結果は次のとおりです。 /test/eccube-4.0.2/html/plugin/tbsCustom/save_image/ このパスを PluginManager (app/Plugin/tbsCustom/PluginManager.php)の enable() のタイミングで取得したいです。 まず、$eccubeConfig (app/config/eccube/packages/eccube.yaml)から取得しようとしましたが、それらしいパスは定義されていませんでした。
上の場合の取得結果は次のとおりです。 /Applications/MAMP/htdocs/test/eccube-4.0.2/html/plugin それから、twig と同じように assets から取得しようと次のように記述しました。
しかし twig と PluginManager のパスが異なるため(?)か、取得できたパスは次のとおりです。 /html/plugin/tbsCustom/save_image/ PluginManager の enable() にて、/test/eccube-4.0.2/html/plugin/tbsCustom/save_image/ のパスを取得するにはどうすればよいでしょうか? ちなみに3系では $app['config']['plugin_urlpath'] にて取得できていました。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |