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

Удаление вложенности урлов категории

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

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

 

так есть

site.ru/category1/podcategory1/podpodcategory1/

надо надобы
site.ru/category1/
site.ru/podcategory1/
site.ru/podpodcategory1/

site.ru/tovar/

 

в админке смог добиться только чтобы у товара не отображалась эта вложенность в урле там надо просто галку поставить, а как можно сделать такоеже с категориями?

нашел похожие темы, но ответа там так и нет, хотя в одной есть частичное решение,вот здесь https://opencartforum.com/topic/11217-udalenie-vlozhennosti-kategorii/

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

 

 

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


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

попробуйте так (catalog\controller\common\seo_url.php):

elseif ($key == 'path') {
					$categories = explode('_', $value);
					
					foreach ($categories as $category) {
						$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
				
						if ($query->num_rows) {
							$url .= '/' . $query->row['keyword'];
						}							
					}
					
					unset($data[$key]);
				}

после

$categories = explode('_', $value);

добавьте

$categories = array(end($categories));

теперь url'ы категорий и подкатегорий должны быть 1-уровневые

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


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

фак. дубль

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


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

попробуйте так (catalog\controller\common\seo_url.php):



elseif ($key == 'path') {
					$categories = explode('_', $value);
					
					foreach ($categories as $category) {
						$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
				
						if ($query->num_rows) {
							$url .= '/' . $query->row['keyword'];
						}							
					}
					
					unset($data[$key]);
				}

после



$categories = explode('_', $value);

добавьте



$categories = array(end($categories));

теперь url'ы категорий и подкатегорий должны быть 1-уровневые

думаю проблема с хлебными крошками останется

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


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

 

 

думаю проблема с хлебными крошками останется

не увидел :)

 

тогда надо логику переписывать для хлебных крошек (писать рекурсивную функцию, которая по ID категории выводит всех родителей)

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


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

думаю проблема с хлебными крошками останется

 

не увидел :)

 

тогда надо логику переписывать для хлебных крошек (писать рекурсивную функцию, которая по ID категории выводит всех родителей)

 

вы сможете помочь с этим??? готов оплатить

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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