ホームページ >バックエンド開発 >PHPチュートリアル >まだecshopの問題があります:smartyの反復を2から開始するにはどうすればよいですか?

まだecshopの問題があります:smartyの反復を2から開始するにはどうすればよいですか?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 14:01:37906ブラウズ


//デフォルトでは反復は 1 から始まります
{$smarty.foreach.pro.iteration}

// start from 先頭の11はどう書けばいいでしょうか?
{$smarty.foreach.pro.iteration + 10?}


{if $smarty.foreach.pro.iteration = 1 を判断するためにこのような if を使用しないでください。 } 2{/if}

のディスカッション (解決策)


に返信できますか? start を追加します

includecls_template.php の foreach 処理メソッドを変更し、

function _compile_foreach_start($tag_args) を見つけます

内部の出力の前に 1 つ追加します
$i = $attrs['start'] $attrs['start'] : 0 ; / /by neo

以下の if に $i++ を追加します
if (!empty($name))
$foreach_props = "$this->_foreach['$name']"
$output .= "{ $foreach_props} = array('total' => count($_from), 'iteration' => 0, 'i' => {$i});n"; ({ $foreach_props}['total'] > 0):n";
$output .= " foreach ($_from AS $key_part$item):n";
$output .= " {$foreach_props}[' iteration' ]++;n";
$output .= " {$foreach_props}['i']++;n"; //neo による
}

start=2 試してみる

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。