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

Layouts: o,mzcybnt мне :)


Recommended Posts

Не понимаю я Даниеля, зачем он каждый раз высчитывает $layout_id, везде где только можно (catalog/controller/common/*), этим самым он делает кучу лишних, не нужных запросов MySQL.

 

Например...class ControllerCommonContentTop и т п

 

$this->load->model('design/layout');
$this->load->model('catalog/category');
$this->load->model('catalog/product');
$this->load->model('catalog/information');

if (isset($this->request->get['route'])) {
$route = (string)$this->request->get['route'];
} else {
$route = 'common/home';
}

$layout_id = 0;

if ($route == 'product/category' && isset($this->request->get['path'])) {
$path = explode('_', (string)$this->request->get['path']);

$layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));
}

if ($route == 'product/product' && isset($this->request->get['product_id'])) {
$layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
}

if ($route == 'information/information' && isset($this->request->get['information_id'])) {
$layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']);
}

if (!$layout_id) {
$layout_id = $this->model_design_layout->getLayout($route);
}

if (!$layout_id) {
$layout_id = $this->config->get('config_layout_id');
}

 

 

Ну неужели нельзя было один раз в самом начале высчитать layout_id, или он как-то измениться :)

Потом его $this->config->set('document_layout_id', $layout_id);

 

И всё, бери его в любом месте, без постоянного "высчитывания" и лишних запросов к БД.

 

И Layouts это основа и философия opencart.

 

Кто-то объяснит, что он замутил. Или это очередной "индийский код".

 

Склоняюсь к последнему.

 

P.S. Разработал я observer классов. В данном случаи разработка фитчи для для того чтобы можно было повесить например модуль на все layouts выбрав всего один layout (например All) или выбор "чекером"

 

Без vqmod, без изменения файлов opencart, причем не мешая работе vqmod, т.е. без замены стандартных классов, они свою работу выполняют.

 

Пример здесь

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

Интересный подход.

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

 

Это пример реализации алгоритма, который дает безграничную власть над моделями, библиотеками, классами.

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

я по поводу етого

Не понимаю я Даниеля, зачем он каждый раз высчитывает $layout_id, везде где только можно (catalog/controller/common/*), этим самым он делает кучу лишних, не нужных запросов MySQL.

Никак не против Вашего решения...

 

 

Это пример реализации алгоритма, который дает безграничную власть над моделями, библиотеками, классами.

Где пример?

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

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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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