Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Создание CMS для сайта-визитки
Форумы портала PHP.SU » » CMS и фреймворки » Создание CMS для сайта-визитки

Страниц (2): [1] 2 »
 

1. morph-x - 20 Октября, 2011 - 01:55:51 - перейти к сообщению
Мне нужно создать CMS для сайта-визитки. Она должна быть рассчитана на людей, которые плохо умеют пользоваться компьютером. Уже несколько дней пытаюсь хотя бы нормально начать ядро. Может вы поможете? Подскажите, пожалуйста, как сделать хотя бы 2 уровня вложенности (т.е. может быть просто страница, а может быть страница -> подстраница) и как правильнее это сделать. Я на этом завис Огорчение . Заранее буду очень благодарен!
2. DeepVarvar - 20 Октября, 2011 - 02:10:24 - перейти к сообщению
morph-x, а ведь все оказалось не таким простым как выглядело на первый взгляд? Подмигивание
И как вот тут сейчас поступать?
Писать скатерть "Создание ЦМС с нуля"?
Слать гуглить?
Путей решения несчетное кол-во...
Каждый из путей наличие знаний.
Чем больше знаний - тем меньше путей, но тем они более ёмки.

Может и не надо такие абстрактные вопросы задавать?
Даже про ваши "страница -> подстраница" тут скатерть писать надо.
А потом вы будете холивары читать про то, что один делает так, а другой эдак...

Как быть?
3. morph-x - 20 Октября, 2011 - 02:39:13 - перейти к сообщению
DeepVarvar пишет:
morph-x, а ведь все оказалось не таким простым как выглядело на первый взгляд? Подмигивание


Да, как вы правы Улыбка

DeepVarvar пишет:
Может и не надо такие абстрактные вопросы задавать?


А что я не так спросил? Мне интересна сама логика, как это сделать. Конечно, я рылся в чужих исходниках (Template CMS, CMSimple, WordPress) но теперь меня мучает мысль какой из методов будет лучше использовать (в моем случае) у кого какие преимущества (а ведь преимущества с исходного кода не понять Улыбка ). Поэтому я и обращаюсь к вам. Насчет гугла, я даже не знаю как правильно сформировать запрос...

DeepVarvar пишет:
Как быть?


Вам решать... Но если можете, поделитесь ссылкой на какую-нибудь статью, пожалуйста.
4. DeepVarvar - 20 Октября, 2011 - 02:54:30 - перейти к сообщению
Что я встречал?
Встречал что есть каталог и в нем есть несколько типов:
Продукт, Раздел, Производитель.

Встречал что есть блоги и в них есть несколько типов:
Блог, Раздел, Тематика, Теги.

Встречал новости и там та же песня..

Что лучше?
Помоему принцип один.
Как это делается?
Одна таблица на каждый тип + если надо, таблицу связей меж ними.
В двух словах - так.
(Добавление)
В вашем случае типа два:
Раздел и Документ.
Отсюда и пляшите.
5. morph-x - 20 Октября, 2011 - 03:05:36 - перейти к сообщению
Спасибо. Я тут думаю еще про несколько методов. Можно я опишу какие-то методы или еще что-то, может люди что-то оценят, обсудят, а может кому-то и пригодится. А то мне как-то страшно их использовать, когда не знаю что о них думают другие. Вы не против?
6. DeepVarvar - 20 Октября, 2011 - 03:08:06 - перейти к сообщению
Никто не против, я думаю.
7. morph-x - 20 Октября, 2011 - 04:31:40 - перейти к сообщению
Вот первый метод. Таблица со страницами будет выглядеть примерно так:

NL - это уровень вложенности (от Nesting Level). Если NL = 0 значит что страница в корне (родительская страница), если 1 - то это дочерняя страница. Т.е. получается как бы иерархия, и в данном примере она выглядит приблизительно так:

Животные
- Кошки
- Собаки
Природа
- Цветы
- Деревья

Теперь если мы выводим какую-то страницу, и ее NL = 0, то нужно отображать ссылки на следующие страницы пока не встретится следующая родительская страница (или не закончится список). Можно, конечно, не просто ссылки, но и содержимое или его часть, но это уже дело вкуса.

Плюс этого метода в том, что для хранения иерархии страниц можно использовать лишь одну таблицу, да и понять его, как мне кажется, проще.
8. DeepVarvar - 20 Октября, 2011 - 04:36:05 - перейти к сообщению
Гон. Вам нужно точно знать кто кому папа.
9. morph-x - 20 Октября, 2011 - 04:48:08 - перейти к сообщению
DeepVarvar пишет:
Гон. Вам нужно точно знать кто кому папа.

А что мешает? Здесь все понятно. Кстати, можно переместить страницу Цветы выше и она будет принадлежать уже странице Животные. Можно сделать сортировку страниц (т.е. сам редактор списка страниц) как это сделано в Drupal для сортировки терминов, тогда вообще будет классно (особенно для пользователя Подмигивание ).
10. DeepVarvar - 20 Октября, 2011 - 04:50:20 - перейти к сообщению
morph-x пишет:
переместить страницу Цветы выше
Как ???
11. morph-x - 20 Октября, 2011 - 04:58:01 - перейти к сообщению
DeepVarvar пишет:
morph-x пишет:
переместить страницу Цветы выше
Как ???

Можно ввести еще один параметр - POS - позиция, куда записывать позицию страницы. Так же здесь можно поменять значениями 5-й и 4-й ряды таблицы.
12. DeepVarvar - 20 Октября, 2011 - 05:42:27 - перейти к сообщению
И как вы себе представляете алгоритм вычисления "рокировки" страниц по уровню + позиции, когда юзер захочет перенести "деревья" в самый верх над "животными" и сделать эти "деревья" разделом?
(Добавление)

Вы сами сказали что станете предлагать свои варианты, и будете ждать критики или одобрения. Подмигивание

(Добавление)
morph-x пишет:
Можно ввести
а можно вывести.. Так введите же Радость
13. morosit - 20 Октября, 2011 - 06:51:33 - перейти к сообщению
morph-x пишет:
Если NL = 0 значит что страница в корне (родительская страница), если 1 - то это дочерняя страница.

ИМХО NL дочернеи страницы должен быть равен ID родительской
14. morph-x - 20 Октября, 2011 - 17:07:53 - перейти к сообщению
DeepVarvar пишет:
И как вы себе представляете алгоритм вычисления "рокировки" страниц по уровню + позиции, когда юзер захочет перенести "деревья" в самый верх над "животными" и сделать эти "деревья" разделом?

После того как он перенесет "деревья" в самый верх ему нужно будет "сдвинуть" на +1 все страницы ниже. Алгоритм следующий: когда вы выводите страницу, то вы записываете ее NL во временную ($tmp_nl) переменную и выводите ссылки на все страницы ниже, пока не встретите страницу с NL >= $tmp_nl.

morosit пишет:
ИМХО NL дочернеи страницы должен быть равен ID родительской

Нет, NL - это УРОВЕНЬ вложенности. ID родительской странички лучше записывать в PARENT или PARENT_ID (так более логично).
15. caballero - 20 Октября, 2011 - 17:21:52 - перейти к сообщению
Дико извиняюсь но сия задача для вашего уровня знаний неподьемная.
Это только как страницы вывести - уже проблемма. А еще контент на страницах
а еще управление страницами. В лучшем случае через несколько месяцев переделок с нуля сгородите невообразимый для сопровождения кусок кодв.
Архитектуру надо сразу разрабатывать а не обсуждать какими переменными буду страницы выводить.

 

Powered by ExBB FM 1.0 RC1