OpenCart V1.5.3.1を使用しており、ページの読み込み時にカテゴリごとに製品をランダム化またはシャッフルしようとしています。ただし、他の並べ替えオプションは引き続き機能します(価格、評価、アルファベット順など)。
私にいくつかの指針を与えることができる人はいますか?
どうもありがとう、スティーブン
私が試したコード:controller / catalog / product / category.php
すぐ下
$this->data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
'price' => $price,
'special' => $special,
'tax' => $tax,
'rating' => $result['rating'],
'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
);
追加した:
shuffle($this->data['products']);
これの代わりに、私もこれを試しました:すぐ下:
$results = $this->model_catalog_product->getProducts($data);
追加した:
srand((float)microtime() * 1000000);
shuffle($results);
$results = array_slice($results, 0, $data['limit']);
残念ながら、これらの方法はどちらも、別の並べ替えオプション(評価、価格設定、名前)を選択したときに結果をシャッフルします。ページ読み込み時の初期結果のみをシャッフルしたい。