バージョン選択

フォーラム

メニュー

オンライン状況

46 人のユーザが現在オンラインです。 (34 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 46
もっと...

サイト内検索

プラグイン > 開発について > プラグインの「ヘッダーにタグ追加」の影響について

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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: プラグインの「ヘッダーにタグ追加」の影響について
なるほど。
そこら辺が選択の基準かもしれませんね。

どうもありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,296名です
総投稿数は110,077件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1302
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.