Я новичок в opencart, и я создал модуль, подобный последнему модулю в opencart, но разница заключается только в том, что последний модуль показывает последний продукт, а мой модуль предназначен для всех продуктов и показывает продукт случайным образом. этот мой модуль работает нормально ... но возникает проблема с отображением фактического рейтинга для каждого продукта ... Теперь я хочу добавить систему рейтинга в свой модуль. Поэтому я хочу знать, что whta должен быть правильным запросом mysql для получения всей информации о продукте, такой как имя, описание, обзоры, рейтинги, product_id и т. д.
Как показать всю информацию о продукте в модуле opencart?
Ответы (1)
вы не показали свой подход, так что это просто общие указатели
сначала вы загружаете модель product.php в файл вашего контроллера $this->load->model('catalog/product');
затем вы решаете, какие будут ваши фильтры при вызове getProducts, если вы не дадите никаких фильтров, он вернет все продукты в базе данных, скажем, вы решите не использовать фильтры, а затем просто передайте пустой массив данных (или вообще ничего не передавайте )
$data = array();
затем вы вызываете функцию
$results = $this->model_catalog_product->getProducts($data); //or without $data
теперь вы можете сделать что-то вроде
foreach ($results as $result) {
$this->data['products'][] = array(
'product_id' => $result['product_id'],
'name' => $result['name'],
'rating' => $result['rating'],
);
теперь вы можете использовать это в своем файле tpl, например
<?php foreach ($products as $product) { ?>
some code here
<?php echo $product['rating']; ?>
<?php } ?>
это общий способ, который вы должны использовать, и он также прост, если вы знаете, как функция getProducts извлекает данные из базы данных и возвращает результат, см. функцию getProducts в catalog/model/catalog/product.php.
(SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r WHERE r.product_id = p.product_id AND r.status = '1' GROUP BY r.product_id) AS rating
вместо r.rating
- person Chetan Paliwal; 12.02.2013