0

本当に難しいことを探しています。ネット全体でSolutionを検索しようとしましたが、見つからなかったようです。私もこれを何時間もやってみました。


私がしていること:PHPBB2のテーマを作成し、テーマにPHPを含めることができるMODをインストールしました。問題は何ですか:phpで{}タグを実行していると、それらのタグをエコーできません。次のように、テーブルを作成する関数があるとします。

CreateMyTable(Name,Size,Color);

これらの文字列を関数に入れます。

CreateMyTable("{FORUM_NAME}",1000,red);

タイトルは空白のままです。実際には、{FORUM_NAME}をエコーし​​たいと思います。これどうやってするの?

PS:私はこれを行うことはできません

CreateMyTable(?>{FORUM_NAME}<?php , 1000, red);

それはうまくいかないからです<? = <!-- PHP --> , ?> = <!-- ENDPHP -->

  • ご協力いただきありがとうございます :)
4

2 に答える 2

1

PHPbb2 テンプレート クラスを調べると、テンプレートが eval() 関数を使用して単純に評価された PHP のセットであることがわかります。eval() を使用して解析する前に PHP の内容を出力してから、テンプレートが指定する変数名を使用することができます。IE のようなものです (テンプレートの設定方法によっては機能しない場合があります)。

CreateMyTable(((isset($this->_tpldata['.'][0]['FORUM_NAME'])) ? $this->_tpldata['.'][0]['FORUM_NAME'] : '' ),1000,randomcolor());

上記の方法と同じようにするには、実際にこれをテンプレート クラスに挿入する必要があることに注意してください。

より良い解決策は、テンプレートで PHP を許可する mod の使用を避け、テンプレートで JavaScript を使用して関数を作成し、その JavaScript 関数への呼び出しを出力することです。

于 2012-07-27T15:12:25.393 に答える
0

これはうまくいきます:

CreateMyTable(FORUM_NAME,1000,red);

が引用符なしで使用されていることにも気付きましたred-これも定数ですか? 変数の場合は、その$前に a が必要です。文字列の場合は、引用符で囲む必要があります。

CreateMyTable(FORUM_NAME,1000,"red");
于 2012-07-27T15:05:08.730 に答える