Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php tpl-调用函数_Php_Joomla_Smarty - Fatal编程技术网

Php tpl-调用函数

Php tpl-调用函数,php,joomla,smarty,Php,Joomla,Smarty,我有一些smarty php代码: 在my sample.tpl文件中: {require_once(test.php)} {php} echo test(); {/php} 在我的test.php文件中: <?php function test(){ return "hi"; } ?> 由于某些原因,这会破坏整个模板,并且不起作用。还要注意,{php}echo“hi”{/php}工作正常 最终,我只需要运行附加到按钮的代码。如果smarty中有一种简单的方法(例如If语

我有一些smarty php代码:

在my sample.tpl文件中:

{require_once(test.php)}
{php}
echo test();
{/php}
在我的test.php文件中:

<?php
function test(){
  return "hi";
}
?>

由于某些原因,这会破坏整个模板,并且不起作用。还要注意,
{php}echo“hi”{/php}
工作正常


最终,我只需要运行附加到按钮的代码。如果smarty中有一种简单的方法(例如If语句或其他),请告诉我

Smarty中没有
require\u once()

您可能需要将其移动到PHP块:

{php}
require_once("test.php");
echo test();
{/php}

或者,如果您使用的是Smarty V3,那么函数和
{php}
块的使用可能会受到安全设置的限制:

您通常不需要在Smarty内部使用
require
require\u once
,这是一个在调用方脚本(加载模板)范围内可用的函数也应该在模板中提供…

我正在尝试将其包含在模板本身中。我注意到我不能在{php}{/php}标记中定义函数。有解决办法吗?我只需要一个简单的按钮来执行几行代码。如果你需要HTML中的一个按钮来执行一些操作,你可能需要使用Javascript,或者如果你真的需要请求服务器(PHP),你需要使用Ajax,一个PHP函数通常用来组织你的PHP代码。我所有的类(db模型等)都在PHP中。问题是在smarty tpl文件中,我无法编写处理表单提交所需的php代码。我需要知道如何在smarty中声明函数。好的,但是,处理表单提交被认为是“逻辑代码”,因此不应该将其放入smarty模板中。正如我所说,如果你真的需要调用一个定制的PHP函数,你可以在调用脚本中定义它,并在Smarty模板中使用它。它甚至阻止我执行
{php}函数测试(){return“hi”}echo测试();{/php}
我需要找到一种方法在那里定义一个函数,然后使用它。@JayShri这不起作用,因为你缺少一个
返回
语句后添加code>。