在smarty中创建用户定义标签以及如何获取其中的内容
在 smarty Smarty_Compiler.class.php
中,在两个标签之间执行了一些操作,例如 {if}{/if}
如果我想获取新标签中的文本,那么如何继续
function _compile_tag($template_tag)
{
....
switch ($tag_command) {
-----
case 'newtag':
break;
case '/newtag':
break;
}
我在新标签中尝试如何获取 tpl 的内容
in smarty Smarty_Compiler.class.php
performed some operation between two tags like {if}{/if}
if i want to get text within the new tag then how to proceedi tried inside
function _compile_tag($template_tag)
{
....
switch ($tag_command) {
-----
case 'newtag':
break;
case '/newtag':
break;
}
How can i get the content of tpl within the new tag
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该创建一个 Smarty 插件。您可以阅读文档此处(关于扩展 Smarty)和此处(更具体地说,关于创建块功能插件)。
基本上,您必须创建
smarty_make_pdf()
PHP 函数(请参阅我给您的第二个链接中的参数),将其放在名为block.make_pdf.php
的文件中(请参阅此处)并告诉 Smarty搜索插件您使用$smarty->addPluginsDir()
创建该文件的文件夹(请参阅此处)。PS:我假设您正在使用 Smarty 3。
You should create a Smarty plugin. You can read documentations here (about extending Smarty) and here (more specific, about create block functions plugins).
Basically, you have to create your
smarty_make_pdf()
PHP function (see parameters in the second link I gave you), place it in a file calledblock.make_pdf.php
(see here) and tell Smarty to search for plugins in the folder you created that file using$smarty->addPluginsDir()
(see here).PS: I'm supposing you are using Smarty 3.
您确实不应该通过编辑核心 Smarty 代码来实现此目的。
如果您使用的是 Smarty 3,请查看 registerPlugin()(如果您使用的是 Smarty 2,请查看 register_block())。
这些方法将允许您创建自己的 Smarty 标签并编写实现它们的处理函数。
You really shouldn't be editing the core Smarty code to achieve this.
Look into registerPlugin() if you're using Smarty 3 (or register_block() if you're on Smarty 2).
These methods will allow you to create your own Smarty tags and write handler functions that implement them.