Перейти к содержанию
Glinda

[Решено] Хлебные крошки. Вопрос.

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

День добрый. В ходе "допиливания" opencart 1.5.6 возникла необходимость в  controller/module/file.tpl осуществить проверку на условия по хлебный крошкам. Последние формируются в контроллерах стрниц - можно ли в контроллере модуля "увидеть" массив breadcrumbs и если да то каким образом?

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


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

Добрый. Нет, нельзя. Хлебные крошки в контроллерах формируются из URL, достаточно скопировать код генерации хлебных крошек из контроллера и вставить его в модуль. Однако работать будет не на всех страницах т.к. в каждом разделе правила генерации крошек из URL разные, т.е. для категории и производителя они разные.

 

Выходом может служить написание алгоритма генерации хлебных крошек для всего магазина для всех страниц. Либо можно заранее (сразу после генерации) сохранить их в зоне глобальной видимости ($this->config->set($name, $value), $this->registry->set($name, $value)).

 

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

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

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


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

Можно увидеть

Только скажите что вы хотите увидеть

И получите решение.

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


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

Есть обычный модуль HTML, в его контроллере я проверяю на условие по URL и в зависимости от этого скрываю тот или иной HTML блок (в примере проверка одного условия)

$URL = $_SERVER['REQUEST_URI'];
if (strstr($URL, 'belaya-santehnika') != FALSE)
{
switch($position)
	{
		     case "area1":
                         $this->data['escape'] = "visible";
                         break;
		     case "area2":
                         $this->data['escape'] = "none";
                         break;
		     case "area3":
                         $this->data['escape'] = "none";
                         break;
	  } 

}

Теперь появилась задача проверять условия и по хлебным крошкам, т.е. типа если раздел такой-то, то выводим блок такой-то. Проблема в получении значений масива breadcrumbs в контроллере модуля. Пробовал так.

$breadcrumbs = $this->document->breadcrumbs;
print_r($breadcrumbs);

Пишет неопределённая переменная.

Хотя по идее перед исполнением модуля массив breadcrumbs должен сформироваться.

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

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


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

тогда лучше отслеживать по:

$this-request->get['category_id']; //ID категории
$this-request->get['product_id']; //ID товара
$this-request->get['path']; //Путь категорий на странице товара.

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


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

Если в контроллере модуля пишу  $this-request->get['path']; или один из предложенных вариантов, страница не грузится вообще.

Сайт , идём в категорию допустим "белая сантехника" - белый экран. Файербаг пишет "NetworkError: 500 Internal Server Error - http://legarta.seotime.su/santehnika-creavit/belaya-santehnika"

"

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


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

Значит  у вас ошибка в коде - смотрите логи

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


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

Упс. Надо 

$this->request->get['path'];

(вместо стрелки тире поставил). Теперь пишет неопределённая переменная. get. -

Notice: Undefined property: Config::$get in /var/www/glinda/data/subdomain/legarta/catalog/controller/module/cr2htmlmodule.php on line 29Notice: Undefined property: Config::$get in /var/www/glinda/data/subdomain/legarta/catalog/controller/module/cr2htmlmodule.php on line 29

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


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

Решил проблему следующим способом - фильтрую по $parts

$parts = explode('_', (string)$this->request->get['path'])

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.