プラグイン > 開発について > プラグインの「ヘッダーにタグ追加」の影響について |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
dimaggio |
投稿日時: 2012/9/27 18:56
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
プラグインの「ヘッダーにタグ追加」の影響について プラグイン開発で解決できない点があり、ご助言いただければと思い投稿させていただきます。
プラグイン仕様書(Ver00.75)のP.37にあります「SC_Helper_Plugin::setHeadNaviを使う」という方法を用いて、<head></head>内にcssへのリンクタグを挿入しました。 【↓実装した関数】 function register(SC_Helper_Plugin $objHelperPlugin) {処理} ところが、この変更後からoutputfilterTransform()で行っている処理が実行されなくなってしまいました。 試しにregister()を抜いた状態でプラグインをtar.gz化するとoutputfilterTransformに記述している処理が動きますので、おそらくregister()が何かしらの影響を与えていると思います。 デバッグでも、どの辺が影響しているのか判別がつかず、コンテストの締切も近づき、アドバイスいただければと思いました。 なにとぞ、よろしくお願いいたします。 [EC-CUBE] 2.12.2 [レンタルサーバ] WebARENA SuiteX [OS] Linux [PHP] 5.1.6 [データベース] MySQL 5.1.36 [WEBサーバ] Apache 2.0 Handler [ブラウザ] Firefox [現象] register()を呼ぶと、outputfilterTransformの処理が行われなくなる。 |
hibahihi |
投稿日時: 2012/9/28 10:15
対応状況: −−−
|
常連 登録日: 2012/7/18 居住地: 投稿: 40 |
Re: プラグインの「ヘッダーにタグ追加」の影響について 通常SC_Plugin_Base::registerを実行するようになっていますが
プラグイン側でregister関数を宣言するとSC_Plugin_Base::registerをオーバーライドするので元々の処理が動かなくなり outputfilterTransformが実行されていないのではないでしょうか? register関数に parent::register($objHelperPlugin, $priority);を宣言すると上手く動く気がします。 |
dimaggio |
投稿日時: 2012/9/28 11:36
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: プラグインの「ヘッダーにタグ追加」の影響について hibahihiさん、
ご返信いただきまして、ありがとうございました。 早速試してみたいのですが、parent::register($objHelperPlugin, $priority);の宣言ってどこに実装すればよいのか解りません。 恐縮ですが、場所をお教えいただけますでしょうか。 なにとぞ、よろしくお願いいたします。 |
hibahihi |
投稿日時: 2012/9/28 11:42
対応状況: −−−
|
常連 登録日: 2012/7/18 居住地: 投稿: 40 |
Re: プラグインの「ヘッダーにタグ追加」の影響について dimaggioさんが追加された下記の関数内ですね。
【↓実装した関数】 function register(SC_Helper_Plugin $objHelperPlugin) {処理} |
dimaggio |
投稿日時: 2012/9/28 12:13
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: プラグインの「ヘッダーにタグ追加」の影響について hibahihiさん、
ご指摘の場所に宣言を入れたところ、無事にoutputfilterTransform()内の処理も実行されることを確認いたしました。 助かりました。 ご助言いただき、本当にありがとうございました。 因みにですが、prefilterTransform()内で case DEVICE_TYPE_PC: // PC if (strpos($filename, 'site_frame.tpl') !== false) { $objTransform->select('head')->appendChild(file_get_contents($template_dir . 'xxxxxxxx.tpl')); } の処理により<head></head>へのcssへのリンクタグの挿入も実装できましたが、register関数を経由する方法とどちらが便利そうか、ご意見ありますでしょうか。 テンプレート作成前の一度の実行ゆえにprefilterTransform()の方にパフォーマンス的な有利さを見出してはいるのですが、register関数経由のメリットが強ければそちらで実装するのも良い判断かと思い、悩んでいます。 もし何か思いつけば程度で構いませんので、ご意見あればお教えください。 よろしくお願いいたします。 そして、ありがとうございました。 |
hibahihi |
投稿日時: 2012/9/28 20:07
対応状況: −−−
|
常連 登録日: 2012/7/18 居住地: 投稿: 40 |
Re: プラグインの「ヘッダーにタグ追加」の影響について prefilterTransformだと一度キャッシュが生成されると以降は呼ばれなくなるので
動的に処理をしたい場合はregister関数を使うことになるのかと思います。 ぱっと思いつくのはそんな所ですかね。 |
dimaggio |
投稿日時: 2012/9/28 20:40
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: プラグインの「ヘッダーにタグ追加」の影響について なるほど。
そこら辺が選択の基準かもしれませんね。 どうもありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |