我想在vbulletin中的另一个页面上使用{vb:raw human_verify}?
当我在另一个模板中使用此变量时,它不起作用。
它完美地适用于某些模板(注册,搜索,...),但从不在另一个模板中工作..
我试图添加新的插件,使vars全局:
vB_Template::preRegister('activity_home',array('includedphp ' => $includedphp));
但这仅适用于新的(自定义)vbulletin vb:raw变量。
如何克服这个问题?
提前致谢
答案 0 :(得分:2)
我假设您使用vb4并且您的变量在includephp中设置。 然后你需要改变:
activity_home
使用您需要使用变量的模板名称(如果要将其添加到多个模板中,请多次执行此操作)。所以基本上:使用“FORUMHOME”将它放入您的论坛主页或“标题”以将其放在标题上...
This link可能会有所帮助(请参阅“保存到阵列并预先注册以在现有/库存模板中使用”部分)。 希望有所帮助。
编辑:
$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模板中添加新模板:
{vb:raw my_insertvar}
答案 1 :(得分:1)
我刚刚用这个问题摔跤......这个例子太可怕了。没有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 -->
。
===============================工作示例============== =================
然后,我找到了一个更好的例子。事实证明,你只需要两行就可以了:
Plugins & Products
&gt; 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));
将此代码放在 navbar
:
{vb:raw testVar_output}
vb:raw
变量名称是array()
中 LEFT 的值。$templater->render()
函数来预先注册变量,尽管我已经看过所有的例子,说你需要它。只需注册变量,然后使用变量!就这么简单!