我如何计算ezpublish中的数组键?

时间:2011-02-25 04:29:31

标签: php ezpublish

我在ezpublish中计算数组键值时遇到问题,其php函数是

array_count_values();

我需要在ezpublish中使用类似的功能。在ezpublish中是否有任何运营商,或者我也必须为其进行扩展?

7 个答案:

答案 0 :(得分:3)

经过长时间的研究,我发现array_count_values();没有任何ez发布模板运算符,我们必须对其进行扩展。延伸的过程在下面的链接中给出。

http://blog.developeronhire.com/using-custom-php-functions-in-ez-publish-templates/

谢谢大家

答案 1 :(得分:1)

计数运算符就是你在这里寻找的,它出现了:

{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(但我认为您已经知道这个地方了;)

希望它有所帮助, 欢呼声,

答案 2 :(得分:1)

您可以将php函数声明为new template operator,以便使用模板。

将其添加到template.ini覆盖文件。

答案 3 :(得分:1)

正如Nicolas所说,如果出现以下情况,您可以将任何PHP函数映射到模板运算符:

  • 该函数按值返回结果,而不是按引用
  • 该函数只接受一个参数(这可能适用于函数 有一个强制参数和其他可选参数,但我 可以记住,它会生成PHP警告和选项参数 将被忽略)

文档:http://doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Configuration-files/template.ini/PHP/PHPOperatorList

所以做你想做的事情非常简单,因为array_key_values()是一个很好的候选人并符合要求。

答案 4 :(得分:0)

试试这个

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);

答案 5 :(得分:0)

如果您需要使用PHP原生函数,您真的应该使用此扩展名:http://projects.ez.no/wrap_operator

您只需在扩展程序的ini文件中启用所选功能,并在模板中使用它。

例如:

{def $html = wrap_php_func('str_replace', array('&', '&', $article.data_map.descriptif.data_text))}

它会拯救你的生命!

答案 6 :(得分:0)

如果将其添加到您网站扩展程序的template.ini不起作用,只需创建自动加载即可。它们很容易创建,我经常添加我需要的任何PHP函数。您不需要自动加载的新扩展名,只需将其添加到 autoloads 目录中的现有扩展名即可。 不要忘记在eztemplateautoload.php文件中声明自动加载,您可能还必须将其中一个添加到自动加载目录中。