2

配列を返す関数を持つ EE プラグインを作成しました。例えば

function things(){
    return array(
        array(
            'name'=>'bob',
            'age'=>40
        ),
        array(
            'name'=>'mary',
            'age'=>50
        )
    );
}

バニラ EE テンプレート タグを使用してこの配列をループする方法が見つかりません。プラグインは文字列のみを返すことができますか? これは本当に不可能ですか、それとも単純なものを見落としていますか? 私は次のようなことをしたいと思います:

{foreach {things} }
    Name: {name}
    Age: {age}
{/foreach}
4

2 に答える 2

3

配列は正しく構造化されていますが、テンプレート クラスの変数の解析メソッドを使用する必要があります。この方法の優れた点は、必要に応じて多くのレベルを深くネストできることです (タグ ペア内のタグ ペア内のタグ ペアを許可します{count}) {total_results}

したがって、プラグインで:

function things()
{
    $things = array(
        array(
            'name'=>'bob',
            'age'=> '40'
        ),
        array(
            'name'=>'mary',
            'age'=> '50'
        )
    );
    return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $things);
}

次に、テンプレートで:

{exp:my_plugin:things}
    Name: {name}
    Age: {age}
{/exp:my_plugin:things}
于 2012-06-29T17:03:31.953 に答える
0

EE3 用に変更された以前の回答の追加:

テンプレート内 (同じ):

{exp:addon_name:method_name}

   Name: {name}
   Age: {age}

{/exp:addon_name:method_name}

アドオン プラグインでは、ee()->TMPL を使用する必要があります。

$things = array(
        array(
            'name'=>'bob',
            'age'=> '40'
        ),
        array(
            'name'=>'mary',
            'age'=> '50'
        )
    );

    return ee()->TMPL->parse_variables(ee()->TMPL->tagdata, $things);
于 2016-06-21T15:51:48.497 に答える