【发布时间】:2011-02-25 04:29:31
【问题描述】:
我在 ezpublish 中计算数组键值时遇到问题,其 php 函数是
array_count_values();
我需要 ezpublish 中的类似功能。 ezpublish 里面有没有运营商,还是我也得做个扩展?
【问题讨论】:
-
这是一个 PHP 的 cms 系统。此外,它适用于企业级
-
更多详情请点击链接ez.no
我在 ezpublish 中计算数组键值时遇到问题,其 php 函数是
array_count_values();
我需要 ezpublish 中的类似功能。 ezpublish 里面有没有运营商,还是我也得做个扩展?
【问题讨论】:
研究了很久,发现array_count_values();没有ez publish模板操作符,我们得做个扩展。下面的链接给出了扩展的过程。
http://blog.developeronhire.com/using-custom-php-functions-in-ez-publish-templates/
谢谢大家
【讨论】:
count 操作符就是你要找的,它出现了:
{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(但我认为您已经知道这个地方;))
希望对你有帮助, 干杯,
【讨论】:
PHPOperatorList template.ini 中的配置指令,允许您将任何简单的 php 函数直接插入到 eZ Publish 的模板语言中。干杯苏吉特!
您可以将 php 函数声明为 new template operator 以供模板使用。
将其添加到 template.ini 覆盖文件中。
【讨论】:
正如 Nicolas 所说,您可以将任何 PHP 函数映射到模板运算符,如果:
所以做你想做的事真的很容易,因为array_key_values() 是一个很好的候选人并且符合要求。
【讨论】:
试试这个
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);
【讨论】:
如果你需要使用 PHP 原生函数,你真的应该使用这个扩展:http://projects.ez.no/wrap_operator
您只需在扩展的ini文件中启用所选功能并在您的模板中使用它。
例如:
{def $html = wrap_php_func('str_replace', array('&', '&', $article.data_map.descriptif.data_text))}
它会挽救你的生命!
【讨论】:
如果将其添加到您网站扩展的 template.ini 中不起作用,只需创建一个自动加载。它们的创建非常简单,也是我经常添加我需要的任何 php 函数的方式。您不需要为自动加载添加新的扩展,只需将其添加到 autoloads 目录中的现有扩展中即可。 不要忘记在 eztemplateautoload.php 文件中声明您的自动加载,您可能还必须将其中之一添加到您的自动加载目录中。
【讨论】: