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

Как сделать одинаковый url адрес для разных категорий?


Recommended Posts

Здравствуйте уважаемые форумчане.

В ходе разработки проекта на ocStore 2.3 возникла задача реализовать две главные категории "Мужское" и "Женское", а в них подкатегории "Обувь".
Url адреса подкатегорий должны выглядеть следующим образом:
http://site.ru/muzhskoe/obuv/
http://site.ru/zhenskoe/obuv/

 

Но тут возникает сложность со встроенным в сборку дополнением Seo-Url: оно не позволяет создавать одинаковые адреса категорий и подкатегорий.

Т.е. подкатегория "Обувь" с url адресом "obuv" может использоваться только один раз.

Мне же нужно повторное использование адреса "obuv", но уже для совершенно другой категории.

Всех кто уже сталкивался с подобной проблей и владеет инфо по ее решению, просьба откликнуться.
Спасибо за внимание.

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


19 минут назад, SergeTkach сказал:

никак

Разве что переделать oc_url_alias + seo_url.php + url.php (и потом потестить, не вылезут ли какие-то подводные камни)

Переделать то можно, но навыков в php недостаточно.

Возможно имеются уже готовые решения.

 

Не понимаю как разработчики Seo-Url не усмотрели этот момент.

Ведь каждая категория может иметь схожие подкатегории.

В данной же ситуации приходится довольствоваться только уникальными адресами.

 

13 минут назад, prived сказал:

сделайте 1 символ в url на другом языке

Думаю многие согласятся, что структура адреса

site.ru/muzhskoe/obuv/
site.ru/zhenskoe/obuv/

куда приятней, чем

site.ru/muzhskoe/obuv/
site.ru/zhenskoe/obuv_2/

 

Считаю этот момент явной недоработкой.

Надеюсь решение найдется...

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


4 минуты назад, prived сказал:

костыль но я говорю про оbuv и obuv два разных слова

Я понял вас, спс за совет.

Данное решение повлечет за собой плохие последствия.

Уж лучше придерживаться общепринятых номр)

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


13 минут назад, Ywal сказал:

Переделать то можно, но навыков в php недостаточно.

Возможно имеются уже готовые решения.

 

Не понимаю как разработчики Seo-Url не усмотрели этот момент.

Ведь каждая категория может иметь схожие подкатегории.

В данной же ситуации приходится довольствоваться только уникальными адресами.

 

Думаю многие согласятся, что структура адреса

site.ru/muzhskoe/obuv/
site.ru/zhenskoe/obuv/

куда приятней, чем

site.ru/muzhskoe/obuv/
site.ru/zhenskoe/obuv_2/

 

Считаю этот момент явной недоработкой.

Надеюсь решение найдется...

А мне куда красивее кажется такое.

site.ru/mens/mens-shoes/

site.ru/womens/womens-shoes/

 

Или вообще сначала site.ru/shoes/ а тут уже mens, womens

Змінено користувачем niger
Надіслати
Поділитися на інших сайтах


2 минуты назад, niger сказал:

А мне куда красивее кажется такое.

site.ru/mens/mens-shoes/

site.ru/womens/womens-shoes/

Случай с категориями 3 уровня: 

site.ru/muzhskoe/obuv-muzhskaya/obuv-muzhskaya-krossovki/
site.ru/zhenskoe/obuv-zhenskaya/obuv-muzhskaya-krossovki/

 

Что здесь красивого?

Url становится длиннее. Слова дублируются или вставляются не совсем логичные добавки.

 

На мой взгляд вот эталон:

site.ru/muzhskoe/obuv/krossovki/
site.ru/zhenskoe/obuv/krossovki/

Красиво, коротко и понятно.

Один плюсы:D

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


1 минуту назад, Ywal сказал:

Случай с категориями 3 уровня: 

site.ru/muzhskoe/obuv-muzhskaya/obuv-muzhskaya-krossovki/
site.ru/zhenskoe/obuv-zhenskaya/obuv-muzhskaya-krossovki/

 

Что здесь красивого?

Url становится длиннее. Слова дублируются или вставляются не совсем логичные добавки.

 

На мой взгляд вот эталон:

site.ru/muzhskoe/obuv/krossovki/
site.ru/zhenskoe/obuv/krossovki/

Красиво, коротко и понятно.

Один плюсы

А вы часто вбиваете адрес и url в адресную строку?

А вот в гугле в поиске этой красоты вы все равно не увидите. так как там будут значения из хлебных крошек. =) И в чем тогда плюс, длинное название или нет?

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


По-моему разговор заходит в русло: "та зачем Вам это надо", вместо "Как же все таки-сделать" :)

Кажется, @chukcha  уже имеет решение и намекает на это :)

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

1 час назад, Ywal сказал:

Случай с категориями 3 уровня: 

site.ru/muzhskoe/obuv-muzhskaya/obuv-muzhskaya-krossovki/
site.ru/zhenskoe/obuv-zhenskaya/obuv-muzhskaya-krossovki/

 

Что здесь красивого?

Url становится длиннее. Слова дублируются или вставляются не совсем логичные добавки.

 

На мой взгляд вот эталон:

site.ru/muzhskoe/obuv/krossovki/
site.ru/zhenskoe/obuv/krossovki/

Красиво, коротко и понятно.

Один плюсы

 

У вас так категория и называется обувь мужская кроссовки? wtf?

Включите смекалку, фантазию и решение найдётся.

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


39 минут назад, Ywal сказал:

Печально 

Для пояснения проблемы
Чтобы дважды не вставать

 

				} 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 && $query->row['keyword']) {
							$url .= '/' . $query->row['keyword'];
						} else {
							$url = '';

							break;
						}
					}

					unset($data[$key]);

Правки нужны здесь
сюда приходит path в виде
44_55_77

нужно избавляться от цикла
и брать последний
Что автоматически за собой несет обязательное условие, что ВСЕ пути в категориях должны быть указаны от родительской
т.е

мужское/обувь

женское/обувь
мужское/обувь/кросовки

женское/обувь/кросовки
 

			$parts = explode('/', $this->request->get['_route_']);

			// remove any empty arrays from trailing
			if (utf8_strlen(end($parts)) == 0) {
				array_pop($parts);
			}

			foreach ($parts as $part) {
				$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");

Т.е. тут "образовался" цикл
по part
if ($query->num_rows) {
а нужно...
типа делать два запроса

part_tmp = '';

foreach {

part_tmp .=part
$query = query(part)
if numrows {

} else {

$query = query(part__tmp)

if numrows {
part_tmp .=part . '/'

}
}

 

 

Это типа черновик для тех кто захочет такое делать


Как вариант

можно запилить типа короткого url
вида

мужское_обувь

женское_обувь
мужское_обувь_кросовки

женское_обувь_кросовки

или

мужское-обувь

женское-обувь
мужское-обувь-кросовки

женское-обувь-кросовки

Вот здесь  уже все проще..

 

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

15 минут назад, freelancer сказал:

seo_url поддерживает одинаковые урлы

Ну, не совсем = возьмет первый попавшийся
 

$url = explode('=', $query->row['query']);

 

16 минут назад, freelancer сказал:

я бы просил не меньше 5тр

вот тут я согласен.

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

Добрый. Кто подскажет где можно урл на новую страницу написать вручную ? Скачал seo pro при включении модуля половина страниц 404 ошибка. 

Змінено користувачем Alexveda
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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