我构建了创建表单的插件:
function smarty_function_form(array $parameters, Smarty_Internal_Template $smarty) {
$form = new Form($parameters);
$smarty->form_object = $form;
return $form->output_opentag();
}
当我打电话给他并使用"如果"标签里面,我收到语法错误和"太多的速记属性"错误。
我这样使用它:
{form name="the_name" {if $var == 5}class="active"{/if} method="post" action=""}
如果我删除"如果"标记它的工作。 怎么解决?谢谢。
答案 0 :(得分:1)
您无法在标记内嵌套Smarty标记或块。您的问题有一个非常简单的解决方案:在{if}
标记之前移动{form}
:
{assign var=class value=''}
{if $var == 5}
{assign var=class val=active}
{/if}
{form name="the_name" class=$class method="post" action=""}
然后,在{form}
插件的PHP代码中,如果class
参数的值为空并且您不想要,则可以跳过生成class
属性生成类似class=""
的东西(顺便说一句,它是无害的)。