在smarty中创建用户定义标记以及如何获取其中的内容

时间:2012-01-23 07:02:14

标签: php tags smarty

smarty Smarty_Compiler.class.php中的

在两个标记之间执行了一些操作,例如{if}{/if} 如果我想在新标签内获取文本,那么如何在

内进行尝试
function _compile_tag($template_tag)
    {
     ....
     switch ($tag_command) {
    -----
     case 'newtag':
      break;
     case  '/newtag':
       break;
      }

如何在新标签中获取tpl的内容

2 个答案:

答案 0 :(得分:3)

你真的不应该 编辑核心Smarty代码来实现这一目标。

如果您正在使用Smarty 3(或 register_block(),如果您使用的是Smarty 2),请查看 registerPlugin()

这些方法允许您创建自己的Smarty标签并编写实现它们的处理函数。

答案 1 :(得分:3)

您应该创建一个Smarty插件。您可以阅读文档 here (关于扩展Smarty)和 here (更具体地说,关于创建块功能插件)。

基本上,您必须创建smarty_make_pdf() PHP函数(请参阅我给您的第二个链接中的参数),将其放在名为block.make_pdf.php的文件中(参见 here )并告诉Smarty使用$smarty->addPluginsDir()在您创建该文件的文件夹中搜索插件(请参阅 here )。

PS:我猜你正在使用Smarty 3。