【问题标题】:How can i count array keys in ezpublish?如何计算 ezpublish 中的数组键?
【发布时间】:2011-02-25 04:29:31
【问题描述】:

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

array_count_values();

我需要 ezpublish 中的类似功能。 ezpublish 里面有没有运营商,还是我也得做个扩展?

【问题讨论】:

  • 这是一个 PHP 的 cms 系统。此外,它适用于企业级
  • 更多详情请点击链接ez.no

标签: php ezpublish


【解决方案1】:

研究了很久,发现array_count_values();没有ez publish模板操作符,我们得做个扩展。下面的链接给出了扩展的过程。

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

谢谢大家

【讨论】:

    【解决方案2】:

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

    希望对你有帮助, 干杯,

    【讨论】:

    • {def $count = $myArray|count()} 只计算数组项的数量。 eZ发布模板引擎只是没有作为array_count_values()的函数;在 PHP 中。所以我们必须对其进行扩展。如果有请告诉我。无论如何,感谢 Nicolas 的宝贵时间
    • @Sujeet:好的,知道了。很抱歉过快地阅读了最初的帖子。您可能想看看这个:doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/…PHPOperatorList template.ini 中的配置指令,允许您将任何简单的 php 函数直接插入到 eZ Publish 的模板语言中。干杯苏吉特!
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

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

      所以做你想做的事真的很容易,因为array_key_values() 是一个很好的候选人并且符合要求。

      【讨论】:

        【解决方案5】:

        试试这个

        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 函数,只能使用 ezpublish 模板操作符。只是可以使用 if、foreach、for、count
        【解决方案6】:

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

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

        例如:

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

        它会挽救你的生命!

        【讨论】:

          【解决方案7】:

          如果将其添加到您网站扩展的 template.ini 中不起作用,只需创建一个自动加载。它们的创建非常简单,也是我经常添加我需要的任何 php 函数的方式。您不需要为自动加载添加新的扩展,只需将其添加到 autoloads 目录中的现有扩展中即可。 不要忘记在 eztemplateautoload.php 文件中声明您的自动加载,您可能还必须将其中之一添加到您的自动加载目录中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-08-22
            • 1970-01-01
            • 1970-01-01
            • 2018-11-01
            • 1970-01-01
            • 1970-01-01
            • 2020-01-26
            • 2017-01-17
            相关资源
            最近更新 更多