![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: 1 Всего: 23 |
Добрый вечер
Хочу написать интернет магазин, простой. Делаю на laravel 4.1. Есть таблица категорий товаров. Бесконечное количество вложений. Вывожу я эти категории в меню. В качестве URL можно было бы задать ID категории, но хочу ЧПУ. Вот не могу только понять как это делается. Допустим я ввожу в таблицу с категориями поле slug, в котором будет имя категории для url-а. Тогда URL можно строить в виде: /phones/apple/ где phones и apple это slug-и категорий, phones отец, apple сын Делаю в роутинге такую схему /categories/{productCategories} где последнее - параметр который содержит строку вида aaa/bbb/ccc/ddd, типа вложенные категории. И как мне теперь достать нужную категорию? В плане, рассмотрим 2 случая: /tablets/apple/ /phones/apple/ Я не могу просто взять последнее слово и по нему искать айдишник категории т.к. slug не уникален. Уникальна должна быть вся структура. И получается как-то геморно проходится по tablets искать всех детей, искать в них apple, проверять что больше категорий нет и т.п. Что-то как то муторно, мне кажется все проще, просто не знаю как это проще реализовать -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Про laravel ничего не знаю, но про чпу с магазинами имеются следующие мысли
Сcылка на товар, например, может содержать название товара, хотя бы и на русском http://site.ru/items/%D0%9A%D0%BE%D0%BB%D1...%82%D0%B0).1111 Ключевым моментом тут будет цифровой индекс в конце адреса, по которому вычисляется товар. В качестве живого примера можно посмотреть на темы на phpclub.ru. Ссылки на темы сделаны примерно так. Можно применить транслитерацию, но для непродвинутых посетителей магазина это будет хуже, чем по русски. В таком же стиле можно сделать и ссылку на группу товаров. В название через `-`, к примеру, слить все группы, и добавить в конец индекс самой группы. Тоесть, ВСЕ чпу сводится к анализу первого токена (item|article|items|...) и финального индекса. Весь остальной мусор в ссылке нужен для ее читабельности. польза такого подхода в том, что ссылки не устареют, даже если товар перекинут из группы в группу и группу перетасуют по магазину. Индексы, то не меняются. Ну и достаточная читабельность ссылок - тоже довольно сильный сеошный ход. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
cia |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 15.1.2007 Репутация: 4 Всего: 4 |
Могу порекомендовать в slug писать "полный путь", тоесть "tablets/apple". Разумеется в админке, при изменении верхней категории, нужно также автоматом править и вложенные.
|
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Лучше уж иметь сквозную идентификацию товара и получать ссылки по типу (её уж точно запомнить реально) _http://moysite.ru/6281.html всяко лучше чем _http://moysite.ru/krasnaya_shapochka_s_sinem_pumponom_dlya_malchikov.html И ещё не нужно забывать что если магазин большой, то однозначно будут дубликаты названий Если уж хочется, то можно добавить категорию -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Ссылки иногда просто складируют в отдельный файл, бросают по скайпу и по почте. И чем, принципиально, отличается http://moysite.ru/6281.html от http://site.ru/items/%D0%9A%D0%BE%D0%BB%D1...%82%D0%B0).1111 ? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |