プラグイン > その他 > プラグインが関係するtplファイルに$this->_tpl_varsがあるとエラーになる |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
rijye |
投稿日時: 2020/8/6 18:50
対応状況: −−−
|
常連 登録日: 2012/6/12 居住地: 三重県 投稿: 62 |
プラグインが関係するtplファイルに$this->_tpl_varsがあるとエラーになる ▼テンプレート
[EC-CUBE] 2.12.4 [OS] CentOS 6 [PHP] 5.5.38 [データベース] PostgreSQL 8.4.20 [WEBサーバ] apache [ブラウザ] Firefox [導入プラグインの有無] 有 いつもお世話になっております。 表題のままですが、導入プラグインに関わらず プラグインがフックされるページ(.tpl)に、 <!--{php}--> $this->_tpl_vars['xxx'] <!--{/php}--> または $_smarty_tpl->tpl_vars['xxx']; が存在するとエラーとなります。 smartyで{php}はスマートではないかと思いますが、 エラーの原因がわからず困っております。 どなたか、解消方法などご教授頂けませんでしょうか。 何卒お願い申し上げます。 |
468 |
投稿日時: 2020/8/7 11:24
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: プラグインが関係するtplファイルに$this->_tpl_varsがあるとエラーになる <!--{php}-->
<!--{/php}--> だけだとエラーにはならないという事でしょうか? あと、該当の処理を記述しているテンプレートファイルは プラグイン内のテンプレートファイルではなく ECCUBE側のテンプレートファイルと言う事でしょうか? プラグイン側でテンプレートファイルを改変するような処理がありますが (SC_Helper_Transformクラスを利用) そこで該当の記述がうまく処理できないのではないでしょうか? webサーバのエラーログにPHPのエラーが出力されていたりしませんか? そのエラーを見れば対応方法が何か見つかるかもしれません。
|
rijye |
投稿日時: 2020/8/7 12:06
対応状況: −−−
|
常連 登録日: 2012/6/12 居住地: 三重県 投稿: 62 |
Re: プラグインが関係するtplファイルに$this->_tpl_varsがあるとエラーになる 回答ありがとうございます。
引用: <!--{php}--> <!--{/php}--> だけだとエラーにはならないという事でしょうか? はい、なりませんでした。 試しに、
なども問題ありません。 $this->_tpl_varsが絡むとエラーとなります。 エラーログには
と表示されます。(templates_cのクリアなども行っております) カスタマイズはEC-CUBEのテンプレート側で行っておりますが、 記述場所自体は、プラグインの変更箇所(insertBeforeなど)にまったく関わらない部分です。 プラグイン側のtplに該当の処理を差し込んでみる方法はまだ試していないので、これからやってみたいと思います。 引き続きどうぞよろしくお願い致します。 |
468 |
投稿日時: 2020/8/7 12:25
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: プラグインが関係するtplファイルに$this->_tpl_varsがあるとエラーになる エラーが出たあと、エラーログに残っている
/data/Smarty/templates_c/default/%%8D^8DE^8DE49E14%%list.tpl.phpを確認されてみては如何でしょうか? 投稿いただいたログでいうと該当phpファイル(テンプレートをphpで処理できるように変換したファイルかと思います)の6行目を確認すると 構文エラーとなるような変換をされているのかもしれません。
|
rijye |
投稿日時: 2020/8/7 13:04
対応状況: −−−
|
常連 登録日: 2012/6/12 居住地: 三重県 投稿: 62 |
Re: プラグインが関係するtplファイルに$this->_tpl_varsがあるとエラーになる 引き続き返信ありがとうございます。
エラーの該当箇所は $this->_tpl_vars の行となります。 エラーページに飛ばされると勘違いしておりましたが、list.tpl.phpは出力されておりました。 どうやら $this->_tpl_vars が $this-&gt;_tpl_vars と変換されているのが原因のようです。 なぜプラグインが関与すると変換されるのかはまだわかりません。 プラグインが関与しないtplの場合は起こりません。 どうぞよろしくお願い申し上げます。 |
rijye |
投稿日時: 2020/8/7 14:05
対応状況: −−−
|
常連 登録日: 2012/6/12 居住地: 三重県 投稿: 62 |
追記 プラグインが動作すると、
が読み込まれるようで、その内 modifire.h とmodifire.u が エスケープ処理をしているようで、これを一時的にコメントアウトし、値をそのままリターン(return $string;)してみましたが変化はありませんでした。 取り急ぎ報告まで。 |
rijye |
投稿日時: 2020/8/7 18:26
対応状況: 解決済
|
常連 登録日: 2012/6/12 居住地: 三重県 投稿: 62 |
解決? 助言頂きました、プラグインファイル内に
tpl_varsを記述してみた所、エラーなく動作しましたので、 無理やりではありますが、プラグインのtpl内に今までの処理を 書き加えて動作致しました。 プラグインを停止するとエラーになるなど これでいいのかという感じではありますが、とりあえず報告致します。 やはり<!--{php}-->を使わず根本的に変える必要がありますね。 プラグインを動作させるとエスケープされる原因はわかりませんが、 とりあえず解決といたします。 色々とありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |