| |||||||||
|
25.08.2015 16:31
Не могу понять, каким образом создавать товары с parent-child
Давайте рассуждать.
Раздел переделать в Parent
Подраздел переделать в Child
Пусть это будут к примеру номера какие нибудь
к примеру раздел=1 подраздел=2
вместо предыдущей записи
?catid=1_2
будет
?parent=1&child=2
теперь создадим подраздел
?parent=2&child=3
что по старому будет ?catid=2_3
Поэтому смысла менять старую запись не надо. все нормально как было ?catid=2_3 это хорошо.
Можно было бы даже оставить по старому ?catid=avto_audi, но без номеров может произойти коллизия:
к примеру такая структура:
Авто
-Ауди
--шины
--запчасти
---рули
---глушители
-БМВ
--шины
--запчасти
---рули
приведет к тому что будет 2 одинаковых раздела Запчасти/Рули
а если уникально нумеровать, то не приведет к такому.
значит решили, что будем нумеровать.
но тогда надо где-то хранить названия этих разделов и сами главные Parent-ы
я смогу это сделать на основе готового модуля public
Или может сразу сделать файловую структуру с папками, в которых будут лежать индексные базы?
корневая папка items
в ней папки с языками rus uam eng (если есть)
в них папки: auto
в ней папки: audi и bmw
в них папки zapchasti и shini
а в них уже сами базы или index.php со всеми настройками, куда смотреть и какую индексную базу брать, где кеш и т.п. и require (path_to_root/index.php);
тогда очень легко будет работать и иметь доступ к нужным товарам через их путь:
http://SITE/items/rus/auto/audi/zapchasti/ruli/index.php
в первых не надо будет указывать язык, и так все понятно.
во вторых там можно хранить кеш и сами индексные базы
в третьих это какой никакой а ЧПУ, причем реальный
В каждой папке будет лежать свой файл .idx с названием на родном языке этой папки и его номеров parent и child id (как в модуле паблика) всегда можно переименовать, не трогая название папки.
т.е. можно обратиться к товарам по прежнему &catid=1_2 ( &catid=zapchasti_ruli вызовут коллизию)
переделывать базу не надо будет.
старые ссылки 2-х уровневые будет работать по старому (они же без коллизии)
db_index.txt останется прежний
у товаров останется прежний unifid и item_id
поиск, аксессуары будут раотать по прежнему, ведь мы не трогали ничего в db_index
просто для многоуровневых баз надо будет создать пабликом все разделы заранее, а потом указать из текущей базы их parentы и childы (или файл индексной базы), иконки разделов, описания разделов, может настройки заодно внешнего вида и варианта выдачи. после чего можно отключить левое меню и перейти на систему паблика. придется только переделать главную витрину и хлебные крошки.
Кстати что показывать при промежуточных путешествиях по хлебным крошкам? к примере в разделе audi?
Самое простое - разделы (папки) с иконками.
Не выводить же весь audi товар?
Как вам?
минусы - это то что разделы могут оказаться пустые, если там нет товара, но это как-то решить можно.
Давайте рассуждать.
Раздел переделать в Parent
Подраздел переделать в Child
Пусть это будут к примеру номера какие нибудь
к примеру раздел=1 подраздел=2
вместо предыдущей записи
?catid=1_2
будет
?parent=1&child=2
теперь создадим подраздел
?parent=2&child=3
что по старому будет ?catid=2_3
Поэтому смысла менять старую запись не надо. все нормально как было ?catid=2_3 это хорошо.
Можно было бы даже оставить по старому ?catid=avto_audi, но без номеров может произойти коллизия:
к примеру такая структура:
Авто
-Ауди
--шины
--запчасти
---рули
---глушители
-БМВ
--шины
--запчасти
---рули
приведет к тому что будет 2 одинаковых раздела Запчасти/Рули
а если уникально нумеровать, то не приведет к такому.
значит решили, что будем нумеровать.
но тогда надо где-то хранить названия этих разделов и сами главные Parent-ы
я смогу это сделать на основе готового модуля public
Или может сразу сделать файловую структуру с папками, в которых будут лежать индексные базы?
корневая папка items
в ней папки с языками rus uam eng (если есть)
в них папки: auto
в ней папки: audi и bmw
в них папки zapchasti и shini
а в них уже сами базы или index.php со всеми настройками, куда смотреть и какую индексную базу брать, где кеш и т.п. и require (path_to_root/index.php);
тогда очень легко будет работать и иметь доступ к нужным товарам через их путь:
http://SITE/items/rus/auto/audi/zapchasti/ruli/index.php
в первых не надо будет указывать язык, и так все понятно.
во вторых там можно хранить кеш и сами индексные базы
в третьих это какой никакой а ЧПУ, причем реальный
В каждой папке будет лежать свой файл .idx с названием на родном языке этой папки и его номеров parent и child id (как в модуле паблика) всегда можно переименовать, не трогая название папки.
т.е. можно обратиться к товарам по прежнему &catid=1_2 ( &catid=zapchasti_ruli вызовут коллизию)
переделывать базу не надо будет.
старые ссылки 2-х уровневые будет работать по старому (они же без коллизии)
db_index.txt останется прежний
у товаров останется прежний unifid и item_id
поиск, аксессуары будут раотать по прежнему, ведь мы не трогали ничего в db_index
просто для многоуровневых баз надо будет создать пабликом все разделы заранее, а потом указать из текущей базы их parentы и childы (или файл индексной базы), иконки разделов, описания разделов, может настройки заодно внешнего вида и варианта выдачи. после чего можно отключить левое меню и перейти на систему паблика. придется только переделать главную витрину и хлебные крошки.
Кстати что показывать при промежуточных путешествиях по хлебным крошкам? к примере в разделе audi?
Самое простое - разделы (папки) с иконками.
Не выводить же весь audi товар?
Как вам?
минусы - это то что разделы могут оказаться пустые, если там нет товара, но это как-то решить можно.