Рекомендуемые сообщения

lrbis80    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    335
Понимаю, что так не правильно в плане MVC-L. Но я не ас, как правильно имею смутное представление.

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

 

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

 

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

Изменено пользователем Dotrox

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    864

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
lrbis80    0

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    864

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shoputils    240

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    864

согласен

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
lrbis80    0

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    864

можно и в теле

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
lrbis80    0

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу