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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Создание CMS для сайта-визитки
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Мне нужно создать CMS для сайта-визитки. Она должна быть рассчитана на людей, которые плохо умеют пользоваться компьютером. Уже несколько дней пытаюсь хотя бы нормально начать ядро. Может вы поможете? Подскажите, пожалуйста, как сделать хотя бы 2 уровня вложенности (т.е. может быть просто страница, а может быть страница -> подстраница) и как правильнее это сделать. Я на этом завис . Заранее буду очень благодарен!
DeepVarvar
Отправлено: 20 Октября, 2011 - 02:10:24
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
morph-x, а ведь все оказалось не таким простым как выглядело на первый взгляд?
И как вот тут сейчас поступать?
Писать скатерть "Создание ЦМС с нуля"?
Слать гуглить?
Путей решения несчетное кол-во...
Каждый из путей наличие знаний.
Чем больше знаний - тем меньше путей, но тем они более ёмки.
Может и не надо такие абстрактные вопросы задавать?
Даже про ваши "страница -> подстраница" тут скатерть писать надо.
А потом вы будете холивары читать про то, что один делает так, а другой эдак...
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
DeepVarvar пишет:
morph-x, а ведь все оказалось не таким простым как выглядело на первый взгляд?
Да, как вы правы
DeepVarvar пишет:
Может и не надо такие абстрактные вопросы задавать?
А что я не так спросил? Мне интересна сама логика, как это сделать. Конечно, я рылся в чужих исходниках (Template CMS, CMSimple, WordPress) но теперь меня мучает мысль какой из методов будет лучше использовать (в моем случае) у кого какие преимущества (а ведь преимущества с исходного кода не понять ). Поэтому я и обращаюсь к вам. Насчет гугла, я даже не знаю как правильно сформировать запрос...
DeepVarvar пишет:
Как быть?
Вам решать... Но если можете, поделитесь ссылкой на какую-нибудь статью, пожалуйста.
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Что я встречал?
Встречал что есть каталог и в нем есть несколько типов:
Продукт, Раздел, Производитель.
Встречал что есть блоги и в них есть несколько типов:
Блог, Раздел, Тематика, Теги.
Встречал новости и там та же песня..
Что лучше?
Помоему принцип один.
Как это делается?
Одна таблица на каждый тип + если надо, таблицу связей меж ними.
В двух словах - так. (Добавление)
В вашем случае типа два:
Раздел и Документ.
Отсюда и пляшите.
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Спасибо. Я тут думаю еще про несколько методов. Можно я опишу какие-то методы или еще что-то, может люди что-то оценят, обсудят, а может кому-то и пригодится. А то мне как-то страшно их использовать, когда не знаю что о них думают другие. Вы не против?
DeepVarvar
Отправлено: 20 Октября, 2011 - 03:08:06
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Вот первый метод. Таблица со страницами будет выглядеть примерно так:
NL - это уровень вложенности (от Nesting Level). Если NL = 0 значит что страница в корне (родительская страница), если 1 - то это дочерняя страница. Т.е. получается как бы иерархия, и в данном примере она выглядит приблизительно так:
Теперь если мы выводим какую-то страницу, и ее NL = 0, то нужно отображать ссылки на следующие страницы пока не встретится следующая родительская страница (или не закончится список). Можно, конечно, не просто ссылки, но и содержимое или его часть, но это уже дело вкуса.
Плюс этого метода в том, что для хранения иерархии страниц можно использовать лишь одну таблицу, да и понять его, как мне кажется, проще.
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
DeepVarvar пишет:
Гон. Вам нужно точно знать кто кому папа.
А что мешает? Здесь все понятно. Кстати, можно переместить страницу Цветы выше и она будет принадлежать уже странице Животные. Можно сделать сортировку страниц (т.е. сам редактор списка страниц) как это сделано в Drupal для сортировки терминов, тогда вообще будет классно (особенно для пользователя ).
DeepVarvar
Отправлено: 20 Октября, 2011 - 04:50:20
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
DeepVarvar пишет:
morph-x пишет:
переместить страницу Цветы выше
Как ???
Можно ввести еще один параметр - POS - позиция, куда записывать позицию страницы. Так же здесь можно поменять значениями 5-й и 4-й ряды таблицы.
DeepVarvar
Отправлено: 20 Октября, 2011 - 05:42:27
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
И как вы себе представляете алгоритм вычисления "рокировки" страниц по уровню + позиции, когда юзер захочет перенести "деревья" в самый верх над "животными" и сделать эти "деревья" разделом? (Добавление)
Вы сами сказали что станете предлагать свои варианты, и будете ждать критики или одобрения.
Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010 Откуда: Казахстан
Помог: 4 раз(а)
morph-x пишет:
Если NL = 0 значит что страница в корне (родительская страница), если 1 - то это дочерняя страница.
ИМХО NL дочернеи страницы должен быть равен ID родительской
morph-x
Отправлено: 20 Октября, 2011 - 17:07:53
Гость
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
DeepVarvar пишет:
И как вы себе представляете алгоритм вычисления "рокировки" страниц по уровню + позиции, когда юзер захочет перенести "деревья" в самый верх над "животными" и сделать эти "деревья" разделом?
После того как он перенесет "деревья" в самый верх ему нужно будет "сдвинуть" на +1 все страницы ниже. Алгоритм следующий: когда вы выводите страницу, то вы записываете ее NL во временную ($tmp_nl) переменную и выводите ссылки на все страницы ниже, пока не встретите страницу с NL >= $tmp_nl.
morosit пишет:
ИМХО NL дочернеи страницы должен быть равен ID родительской
Нет, NL - это УРОВЕНЬ вложенности. ID родительской странички лучше записывать в PARENT или PARENT_ID (так более логично).
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Дико извиняюсь но сия задача для вашего уровня знаний неподьемная.
Это только как страницы вывести - уже проблемма. А еще контент на страницах
а еще управление страницами. В лучшем случае через несколько месяцев переделок с нуля сгородите невообразимый для сопровождения кусок кодв.
Архитектуру надо сразу разрабатывать а не обсуждать какими переменными буду страницы выводить.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.