Статические страницы в БД

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Дмитрий_89
Сообщения: 53
Зарегистрирован: 2013.11.25, 03:01

Статические страницы в БД

Сообщение Дмитрий_89 »

Здравствуйте.

Занимаюсь разработкой модуля "Страницы".
Что он должен уметь:
  • Добавление новых страниц с панели администратора
  • Редактирование существующих
  • Удаление
  • Ну и собственно вывод "отображение"
Все это реализовано уже.
Возникает вопрос с под страницами "дочерними", допустим url страницы первого уровня http://webapp.loc/contacts, а второго уровня уже http://webapp.loc/page1/page2.

Вот и возникает вопрос с маршрутизацией страниц второго уровня.
Подскажите как это можно реализовать, заранее очень благодарен.
Последний раз редактировалось Дмитрий_89 2015.02.17, 16:25, всего редактировалось 1 раз.
Аватара пользователя
Дмитрий_89
Сообщения: 53
Зарегистрирован: 2013.11.25, 03:01

Re: Статические страницы в БД

Сообщение Дмитрий_89 »

хранение дерева в базе данных - это немного не то что мне нужно.
Меня собственно интересует вопрос маршрутизации.

Вот допустим у меня есть url "http://webapp.loc/page1/page2" он говорит что страница "page2" это дочерняя страница "page1".
Собственно в базе данных есть поле "alias" в котором храним alias страницы.
В данной ситуации нам нужно получить страницу с alias "page2", и также при создании url нам нужно создавать его зависимо от наличия родительской страницы "в базе есть поле parent_id". Как можно реализовать подобное?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Статические страницы в БД

Сообщение SiZE »

А чо тут реализовывать то? Храни полный путь от корня, получай из _GET, сравнивай, выводи нужную страницу.
Аватара пользователя
Дмитрий_89
Сообщения: 53
Зарегистрирован: 2013.11.25, 03:01

Re: Статические страницы в БД

Сообщение Дмитрий_89 »

Точнее говоря, при добавлении страницы строить полный путь с учетом ее родителей и записывать в поле "alias", правильно я понимаю?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Статические страницы в БД

Сообщение SiZE »

Да. Только не родителей, а родителя. Т.к. у ближайшего уже будет построен путь. Останется только конкатенировать.

id | parent_id | url
1 | 0 | news
2 | 1 | news/2015
3 | 2 | news/2015/nu_i_pogodka
Аватара пользователя
Дмитрий_89
Сообщения: 53
Зарегистрирован: 2013.11.25, 03:01

Re: Статические страницы в БД

Сообщение Дмитрий_89 »

Спасибо, буду пробовать таким методом
Аватара пользователя
Дмитрий_89
Сообщения: 53
Зарегистрирован: 2013.11.25, 03:01

Re: Статические страницы в БД

Сообщение Дмитрий_89 »

SiZE писал(а):Да. Только не родителей, а родителя. Т.к. у ближайшего уже будет построен путь. Останется только конкатенировать.

id | parent_id | url
1 | 0 | news
2 | 1 | news/2015
3 | 2 | news/2015/nu_i_pogodka
Да вот в такой ситуации возникает проблема, допустим мы сменили alias для страницы "news" - и теперь нам нужно найти все ее дочерние и так рекурсией пройтись по ним и сменить у них alias-ы. Мне кажется это не совсем красиво. :?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Статические страницы в БД

Сообщение SiZE »

Дмитрий_89 писал(а):Да вот в такой ситуации возникает проблема, допустим мы сменили alias для страницы "news" - и теперь нам нужно найти все ее дочерние и так рекурсией пройтись по ним и сменить у них alias-ы. Мне кажется это не совсем красиво. :?
Ну смотря чего ты хочешь добиться: скорости получения информации или ее записи?
Аватара пользователя
jilizart
Сообщения: 82
Зарегистрирован: 2010.04.22, 18:56
Контактная информация:

Re: Статические страницы в БД

Сообщение jilizart »

Можно тогда без алиасов делать. Просто /page-1/page-2
И да для обработки таких страниц тебе придется писать свой "UrlRule". Т.к слешей в пути у тебя может быть неограниченное множество
Аватара пользователя
Дмитрий_89
Сообщения: 53
Зарегистрирован: 2013.11.25, 03:01

Re: Статические страницы в БД

Сообщение Дмитрий_89 »

jilizart писал(а):Можно тогда без алиасов делать. Просто /page-1/page-2
И да для обработки таких страниц тебе придется писать свой "UrlRule". Т.к слешей в пути у тебя может быть неограниченное множество
Насчет urlRules я знаю, у меня уже есть класс. А насчет хранения url именно такого типа как предлогалось выше, я смотрю во многих CMS такойже подход к решению данной задачи.
Аватара пользователя
jilizart
Сообщения: 82
Зарегистрирован: 2010.04.22, 18:56
Контактная информация:

Re: Статические страницы в БД

Сообщение jilizart »

Дмитрий_89 писал(а):
jilizart писал(а):Можно тогда без алиасов делать. Просто /page-1/page-2
И да для обработки таких страниц тебе придется писать свой "UrlRule". Т.к слешей в пути у тебя может быть неограниченное множество
Насчет urlRules я знаю, у меня уже есть класс. А насчет хранения url именно такого типа как предлогалось выше, я смотрю во многих CMS такойже подход к решению данной задачи.
А на обновление всех алиасов у детей, мне кажется, можно забить. Это не критично, да и ссылки менять туда суда не очень хорошая идея
Аватара пользователя
Дмитрий_89
Сообщения: 53
Зарегистрирован: 2013.11.25, 03:01

Re: Статические страницы в БД

Сообщение Дмитрий_89 »

des1roer писал(а):посмотрите http://des1roer.blogspot.ru/2015/03/yii ... es_20.html
Все картинки битые - неоткрывает их.
Аватара пользователя
des1roer
Сообщения: 391
Зарегистрирован: 2015.02.06, 17:03
Контактная информация:

Re: Статические страницы в БД

Сообщение des1roer »

поправил. только там от картинок то не много толку
Ответить