我在 ezpublish 中计算数组键值时遇到问题,其 php 函数是
array_count_values();
我需要 ezpublish 中的类似功能。ezpublish 中是否有任何运营商,或者我也必须对其进行扩展?
After research for long time i found that, there is no any ez publish template operators for array_count_values();
we have to make an extension for it. And process of making extension is given in the link below.
http://blog.developeronhire.com/using-custom-php-functions-in-ez-publish-templates/
Thank you all
您可以将 php 函数声明为要使用的模板的新模板运算符。
将其添加到 template.ini 覆盖文件。
正如 Nicolas 所说,您可以将任何 PHP 函数映射到模板运算符,如果:
所以做你想做的事情真的很容易,因为array_key_values()是一个很好的候选者并且符合要求。
计数运算符是您在此处寻找的,它显示为:
{def $arrayCount = $myArray|count()}
文档中有关此运算符的更多信息:http: //doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Template-operators/Variable-and-type-handling/count
一般来说,您也可以在 eZ Publish 社区门户上提出您的问题: http: //share.ez.no(但我认为您已经知道这个地方;))
希望有帮助,干杯,
尝试这个
function count_array_key($arr)
{
return count(array_keys($arr));
}
用法
$array = array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"));
echo count_array_key($array);
如果将其添加到站点扩展的 template.ini 不起作用,只需创建一个自动加载。它们的创建非常简单,也是我经常添加我需要的任何 php 函数的方式。您不需要自动加载的新扩展,只需将其添加到自动加载目录中的现有扩展中即可。不要忘记在 eztemplateautoload.php 文件中声明您的自动加载,您可能还必须将其中之一添加到您的自动加载目录中。
如果你需要使用 PHP 原生函数,你真的应该使用这个扩展:http ://projects.ez.no/wrap_operator
您只需在扩展的 ini 文件中启用所选功能并在模板中使用它。
例如 :
{def $html = wrap_php_func('str_replace', array('&', '&', $article.data_map.descriptif.data_text))}
它会救你的命!