我只是糾結這個時間太長了......那個例子就是:
$templater = vB_Template::create('mytemplate'); // Define a template
$templater->register('my_var', $my_var); // define some variables
$templater->register('my_array', $my_array);
$templatevalues['my_insertvar'] = $templater->render(); // Save the template into a variable, "note that the data needs to be saved into an array a simple variable will throw an error"
vB_Template::preRegister('FORUMHOME', $templatevalues); // "insert" your variable into the FORUMHOME template
然後你就可以與線FORUMHOME模板添加新模板可怕。 Niak的沒有錯。我感覺原作者並不十分清楚如何向現有模板註冊簡單變量。
我把上面的例子直接複製/粘貼到插件中,將$ my_var設置爲「test」,FORUMHOME
模板中的{vb:raw my_insertvar}
就不起作用。這是我最初試圖代碼:
$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 -->
。
===============================工作示例============= ==================
然後,我找到了一個更好的例子。原來你只需要兩條線就可以工作:
- 轉到
Plugins & Products
>Plugin Manager
。
- 滾動至底部,然後單擊
[Add New Plugin]
- 我選擇了鉤
global_bootstrap_init_start
插入以下兩行(navbar
是我註冊testVar_output
到模板):
$testVar = "This is a test.";
vB_Template::preRegister('navbar',array('testVar_output' => $testVar));
將這個鱈魚E在navbar
:
{VB:原料testVar_output}
- 注意,
vb:raw
變量名是在array()
上LEFT的值。
- 似乎沒有必要使用
$templater->render()
函數來預先註冊變量,儘管我見過所有的例子,說你需要它。只需註冊變量,然後使用變量!就這麼簡單!
- 我知道這不允許模板緩存,這就是爲什麼我很擔心,我不能讓最初的例子的工作...(幫助!)
我知道這篇文章,但沒有注意到它也包含了現有的模板。但我無法查看代碼塊。你可以在這裏複製它嗎? –
@DZZZO:看我的編輯 – loudev
運氣不好。不工作。 –