1

php関数がであるezpublishの配列キー値をカウントするのに問題があります

array_count_values();

ezpublishにも同様の機能が必要です。ezpublishに演算子はありますか、それとも拡張機能を作成する必要がありますか?

4

7 に答える 7

3

長い間調査した結果、拡張機能を作成する必要があるため、ezpublishテンプレート演算子がないことがわかりましarray_count_values();た。そして、拡張を行うプロセスは、以下のリンクに示されています。

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

皆さん、ありがとうございました

于 2011-03-07T11:55:15.067 に答える
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 Community Portal: http ://share.ez.noにも質問を投稿してください(ただし、この場所はすでにご存知だと思います;))

お役に立てば幸いです、乾杯、

于 2011-03-22T11:05:31.763 に答える
1

php関数を、使用するテンプレートの新しいテンプレート演算子として宣言できます。

それをtemplate.iniオーバーライドファイルに追加します。

于 2011-05-05T17:33:38.087 に答える
1

Nicolasが言ったように、次の場合は、任意のPHP関数をテンプレート演算子にマップできます。

  • 関数は、参照ではなく値で結果を返します
  • 関数は1つのパラメーターのみを取ります(これは、1つの必須パラメーターとオプションのその他の関数で機能する可能性がありますが、PHP警告が生成され、オプションのパラメーターは無視されることを覚えています)

ドキュメント:http ://doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Configuration-files/template.ini/PHP/PHPOperatorList

したがって、array_key_values()は適切な候補であり、要件に一致するため、必要な処理を実行するのは非常に簡単です。

于 2012-03-12T14:22:23.703 に答える
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);
于 2011-02-25T05:52:44.690 に答える
0

PHPネイティブ関数を使用する必要がある場合は、実際には次の拡張機能を使用する必要があります:http: //projects.ez.no/wrap_operator

拡張機能のiniファイルで選択した機能を有効にして、テンプレートで使用する必要があります。

例えば ​​:

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

それはあなたの命を救うでしょう!

于 2011-06-09T13:10:15.410 に答える
0

サイトの拡張機能のtemplate.iniに追加しても機能しない場合は、オートロードを作成するだけです。これらは作成が非常に簡単で、必要なphp関数を頻繁に追加する方法です。autoloadに新しい拡張機能は必要ありません。それを、autoloadsディレクトリの既存の拡張機能に追加するだけです。eztemplateautoload.phpファイルでautoloadを宣言することを忘れないでください。おそらく、それらの1つをautoloadsディレクトリにも追加する必要があります。

于 2012-04-01T01:44:03.170 に答える