0

「トップ 100 製品」というタイトルのカテゴリがあり、今のところ、コレクションは正常に機能しています。しかし、私がやりたいことは、リストされている 100 個の製品に関連して、各製品が何であるかを動的に決定することです。つまり、製品 1 がリストされている場合、値を取得できるので、製品タイトルの横に「#1」を追加できます。

製品 #74 がリストされると、動的に「#74」と表示されます。getSize 関数を使用してリストの総数を計算できますが、その変数を使用してリストされた各製品の適切な「シーケンス」番号を吐き出す方法がわかりません。getSize を使用する理由は、ページングによってカウントを保持できるようにするためです。

コードを理解するには、/catalog/product/list.phtml テンプレートを参照してください。リストまたはグリッド モードでは、次のように表示されます。

編集。このコードをここに投稿することはできません。それは腹立たしいです。while (x) < variable_with_total_products_counted を使用して x++ を製品コントローラー for ループ内に配置できるように、「foreach」製品コントローラー ループを囲む while ループを取得する方法を知る必要があります。これをやろうとするたびに、構文エラーが発生します。製品コントローラ ループ (for each ループ) が、0 から反復する while ループ内に存在しないかのように --> 99 (上位 100 製品)。

4

1 に答える 1

0

このようなものはどうですか:

$count = $collection->getSize();
$counter = 1;
foreach($collection as $item) {
    // Process item
    echo '<p>' . $item->getName . ' (' . $counter . ')</p>';
    $counter++;
}

番号が永続的であることを確認するには、それを製品に割り当てることができます。スクリプト/ページの間、割り当てられたままになります。

$count = $collection->getSize();
$counter = 1;
foreach($collection as $item) {
    $item->setData('tmp_number', $counter);
    $counter++;
}
// Work with products
于 2012-11-12T20:45:59.640 に答える