Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Вывод количества заказов


Recommended Posts

Надо вывести в шапке сайта на главной количество заказов (типа продано уже Х слонов, к примеру). В ходе двух дней ковыряния нашел только функцию getTotalOrders($data = array())  Но она из админки. Вызвать ее в header.tpl не получилось как не пытался. Понимаю, что так не правильно в плане MVC-L. Но я не ас, как правильно имею смутное представление. Прошу помочь, так как куда копать дальше даже не представляю :-(

Надіслати
Поділитися на інших сайтах


Понимаю, что так не правильно в плане MVC-L. Но я не ас, как правильно имею смутное представление.

MVC тут не при чём. И если б у вас только с этим была проблема, то давно б уже что-то налепили.

 

Просто берёте код функции getTotalOrders копируете его в какую-то существующую модель в catalog или создаёте там новую модель и подключаете в контроллере шапки и получаете там количество заказов тем же образом, что и в админке.

 

Дублирование кода - это не хорошо, но тут иначе не получится и в ОК дублирование - это практически фирменный стиль.

Змінено користувачем Dotrox
Надіслати
Поділитися на інших сайтах


количество заказов у которых статус (order_status_id) равен 1,2 или 4

$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "order" WHERE order_status_id IN(1,2,4) );
return $query->row['total'];

количество заказов со всеми статусами, кроме потерянных

$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "order" WHERE order_status_id > 0 );
return $query->row['total'];

только в файлы шаблона подобное пихать не нужно - используйте для этого соответствующий контроллер

а уже из него передавайте

Надіслати
Поділитися на інших сайтах

количество заказов у которых статус (order_status_id) равен 1,2 или 4

$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "order" WHERE order_status_id IN(1,2,4) );
return $query->row['total'];

количество заказов со всеми статусами, кроме потерянных

$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "order" WHERE order_status_id > 0 );
return $query->row['total'];

только в файлы шаблона подобное пихать не нужно - используйте для этого соответствующий контроллер

а уже из него передавайте

 

Спасибо. Но сам код не проблема. Проблема именно в том куда пихать и как передать. Подскажите пожалуйста.

Надіслати
Поділитися на інших сайтах


Дурной тон - запросы к БД в контроллере. В модель надо.

Все равно, что в ресторане орудовать в блюде ложкой, когда другие используют нож с вилкой.

Надіслати
Поділитися на інших сайтах

В данном случае мне бы ложку в рот засунуть, проглотить и забыть :-). Я не собираюсь становится мододелом для OpenCart, просто помогаю знакомым с сайтом, программист я хоть и с большим стажем, но далекий от сайтов (немодная нынче Delphi).

В общем, прошу разъяснить, как разместить запрос в catalog\controller\common\header.php? В теле функции public function index(), или создать новую? Как после этого получить данные в header.tpl?

Надіслати
Поділитися на інших сайтах


можно и в теле

$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "order" WHERE order_status_id > 0 );
$data['mycount'] = $query->row['total'];

 

если движок 15х - тогда $this->data['mycount'] = $query->row['total'];

 

в шаблоне

<?php echo $mycount; ?>

 

на будущее - shoputils правильно говорит, желательно держаться стандартов и обращения к бд делать в моделях

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.