Jump to content
Sign in to follow this  
lrbis80

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

Recommended Posts

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

Share this post


Link to post
Share on other sites
Понимаю, что так не правильно в плане MVC-L. Но я не ас, как правильно имею смутное представление.

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

 

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

 

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

Edited by Dotrox

Share this post


Link to post
Share on other sites

количество заказов у которых статус (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'];

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

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

Share this post


Link to post
Share on other sites

количество заказов у которых статус (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'];

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

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

 

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

Share this post


Link to post
Share on other sites

есть документация +полный движок примеров ;)

 

если в header.tpl - пихать в его контроллер catalog\controller\common\header.php

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

согласен

но в данном случае - человеку хотя бы ложку держать научиться, с ножами/вилками позже сам разберется  :ugeek: 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

можно и в теле

$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 правильно говорит, желательно держаться стандартов и обращения к бд делать в моделях

Share this post


Link to post
Share on other sites

@AlexDW, большое спасибо! Бог с ними, с моделями. Надеюсь не придется еще и в это погружаться :-)

 

Вопрос решен.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.