Перейти к содержанию
y.vladimir

Как избавится от переменной GET ?route=product/category?

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

Добрый день.Разрабатываю интернет магазин на движке opencart.В данный момент существует задача: подсвечивание категории в которой находится конкретный товар.Например, пользователь просматривает товар:Подарки|-Особенные| |- VIP| | | -> Авторучка с позолотой и GPS приемником.Нужно подсветить самую верхнюю родительскую категорию "Подарки".Категорию подарки нужно подсвечивать в случае если пользователь находится в любой из категорий, которая находится в категории подарки.Я решил задачу обрабатывая GET переменную ?route=product/category, таким образом получая полный путь, и возможность его обработать.НО! Решил использовать SEO url (ЧПУ).Соответственно адрес конкретного товара или категории перестал содержать обрабатываемую переменную "route", и подсветка меню пропала.Подскажите пожалуйста.С помощью какой функции можно в коде получить полный путь от корня по просматриваемого элемента?

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


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

эх как все сложно вы решили сделать)

заходим в ..catalogcontrollermodulecategory.php

ищем

if ($this->category_id == $result['category_id']) {					$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">[b]' . $result['name'] . '[/b]</a>';				} else {					$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">' . $result['name'] . '</a>';				}

меняем на

if ($result['parent_id'] == 0 && $category_id == $result['category_id']) {				$output .= '[b]' . $result['name'] . '[/b]';			} else {				if ($this->category_id == $result['category_id']) {					$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">[b]' . $result['name'] . '[/b]</a>';				} else {					$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">' . $result['name'] . '</a>';				}			}

наслаждаемся =)

п.с. Если еще и

$result['parent_id'] == 0 &&
убрать из первого условия, то подсветятся все родительские категории, ну это так сказать "Наслаждаемся по вкусу")

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


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

Отличный вариант, но у меня дело немного в другом.У меня есть два блока.1. Category - отображает только меню первого уровня (parent_id = 0).2. sub_category - копия модуля category, отображает меню второго-третьего уровня, в зависимости от тогоПример:Category: [Подарки] СюрпризыSub category:|Особенные|-- [VIP]|ДругиеВ данные момент мы находимся на категории VIP, которая нах. на третьем уровне вложенности.Проблем с тем, чтобы определить родительскую категорию в блоке Category: (подарки) - НЕТ.Есть проблема с определением родительской категории в блоке Sub category, в том случае, если мы находимся в категории VIP на 3-м уровне.Тогда VIP имеет parent_id равный ID особенные.А как узнать ID САМОГО ВЕРХНЕГО ЭЛЕМЕНТА, "подарки"?

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


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

Решил.Разобрался с переменной path.Оказывается все просто.Спасибо.

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


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

Решил.Разобрался с переменной path.Оказывается все просто.Спасибо.

Поделитесь, пожалуйста, со всеми https://opencartforum.com/public/style_emoticons/default/icon_question.gif

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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