私はこれにあまりにも長い間取り組んできました...その例はひどいものです。Niakのせいではありません。元の作成者は、単純な変数を既存のテンプレートに登録する方法についてあまり明確ではなかったと思います。
上記の例を文字通りコピーしてプラグインに貼り付け、$my_var を「test」に設定し{vb:raw my_insertvar}
ましたが、FORUMHOME
テンプレートでは機能しませんでした。最初に試したコードは次のとおりです。
$my_var = "test";
$templater = vB_Template::create('mytemplate'); // Define a template
$templater->register('my_var', $my_var); // define some variables
$templatevalues['my_insertvar'] = $templater->render();
vB_Template::preRegister('FORUMHOME', $templatevalues);
元の例の の値にアクセスできないことで私が間違っていることを誰かが知っている場合はmy_var
、お知らせください! 私はそれを私の人生のために働かせることはできません。吐き出すだけ<!-- BEGIN TEMPLATE: mytemplate --><!-- END TEMPLATE: mytemplate -->
。
=============================== 作業例 ================= ==============
次に、より良い例を見つけました。これが機能するために必要なのは 2 行だけです。
Plugins & Products
>に移動しますPlugin Manager
。
- 一番下までスクロールしてクリック
[Add New Plugin]
- 私が選んだフックは
global_bootstrap_init_start
次の 2 行を挿入します (navbar
は登録先のテンプレートですtestVar_output
)。
$testVar = "This is a test.";
vB_Template::preRegister('navbar',array('testVar_output' => $testVar));
このコードを次の場所に配置しますnavbar
。
{vb:生の testVar_output}
vb:raw
変数名は の左側の値であることに注意してくださいarray()
。
$templater->render()
私が見たすべての例は、あなたがそれを必要としていると言っていますが、変数を事前登録するために関数を使用する必要はないようです。変数を登録して、変数を使用するだけです。それはとても簡単です!
- これではテンプレートのキャッシュが許可されないことに気付きました。そのため、元の例を機能させることができないのではないかと心配しています... (助けて!?)