|
|
|
| Поставил себе задачу написать универсальную CMS, то есть по настоящему универсальную. Чтобы можно было осуществить любой замысел. Сейчас обдумываю логику. За написание кода возьмусь, только когда полностью определюсь с механизмом работы и продумаю до мелочей. Поэтому хочу, чтобы здесь писали всевозможные требования и пожелания, а я постараюсь их учесть. Буду благодарен за любую информацию, критику, советы и тп. | |
|
|
|
|
|
|
|
для: sasha1133
(25.04.2010 в 03:58)
| | Удобная админка.
Хороший редактор для админки с поддержкой загрузки фото и файлов к статьям и новостям.
Обязательно механизм создания превью к загружаемым фото. Желательно с поддержкой Lightbox&Highslide.
Неограниченная вложенность категорий.
Возможность расширения за счет модулей.
Удобная шаблонизация модулей.
Фотогалерея с поддержкой Lightbox&Highslide.
Вложенность категорий в фотогалерее.
Система статистики и голосований фотогалереи.
Добавление фото в галерее юзерами.
Регистрация юзеров с расширенным профилем.
Поддержка разных групп юзеров.
Поддержка аватаров, личных сообщений.
Система комментариев по всему сайту с поддержкой аватар.
Удобный встроенный форум или встроенная интеграция с phpBB, SMF.
Система статистики сайта.
Добавление новостей юзерами, с поддержкой загрузки фото и файлов к статьям и новостям.
Ну и простая возможность применения шаблонов для CMS.
Это первое что пришло на ум.)) | |
|
|
|
|
|
|
|
для: jem777
(25.04.2010 в 05:35)
| | Можно пояснить вот эти пункты?
- механизм создания превью к загружаемым фото. Желательно с поддержкой Lightbox&Highslide.
- Удобная шаблонизация модулей.
- Фотогалерея с поддержкой Lightbox&Highslide. | |
|
|
|
|
|
|
|
для: sasha1133
(25.04.2010 в 17:22)
| | 1. Это когда загружаешь в статью фото размером 1024х768 весом 100Кб, то автоматически происходит создание превью с задаваемым размером. Например 250х100 и весом в 4Кб. Когда юзер смотрит на фото и кликает на него - фото красиво увеличивается через эффекты Lightbox или Highslide.
2. Когда можно будет произвольно менять оформление каждого модуля и гибко задавать его позицию в шаблоне.
3. http://www.google.ru/search?client=opera&rls=ru&q=Lightbox&sourceid=opera&ie=utf-8&oe=utf-8
http://www.google.ru/search?client=opera&rls=ru&q=Highslide&sourceid=opera&ie=utf-8&oe=utf-8 | |
|
|
|
|
|
|
|
для: sasha1133
(25.04.2010 в 03:58)
| | Будте готовы к тому, что универсальной CMS вы не создадите. Ваша CMS будет решать ряд задач гораздо быстрее, чем если бы вы создавали код с нуля, однако другой класс задач будет решаться больше кровью. Так уж устроены компьютерные системы - за любое преимущество нужно расплачиваться, либо скоростью, либо сложностью, либо объемом, либо ещё чем-то. Это не значит, что CMS не нужно создавать, но лучше бы заранее определить, в чем она будет сильна - будет ли она компактна, очень быстрой или простой для внедрения дополнительных модулей. Реализовать абсолютно все, т.е. добиться универсальности будет очень и очень сложно. | |
|
|
|
|
|
|
|
для: cheops
(25.04.2010 в 11:30)
| | Под универсальностью я имею ввиду, что если нужно создать нестандартный сайт, то это возможно будет сделать или встроенными средствами или написав пару модулей. Хочу сделать полностью настраиваемое поведение сайта в зависимости от запроса пользователя. Получается, я хочу сделать легко настраиваемою и расширяемую CMS. Как по Вашему, хорошо в данном случае делать управление сайтом только через index.php, который разбирает запрос, находит в базе инструкции и параметры, соответствующие данному запросу, подключает нужные модули и выводит страницу? То есть все адреса будут начинаться с index.php?a=123&... Ну естественно их можно и нужно переписать mod_rewrit'ом, но обращение всегда будет только к index.php | |
|
|
|
|
|
|
|
для: sasha1133
(25.04.2010 в 17:34)
| | >Как по Вашему, хорошо в данном случае делать управление сайтом только через index.php, который разбирает запрос,
По-моему, хорошая идея. Я сейчас тоже пишу более-менее универсальную CMS, применил этот принцип. Только rewrit'ом я вывожу не id, а название для Rewrite, которое запрашивается у администратора. Ессно, это название уникально в пределах раздела CMS. | |
|
|
|
|
|
|
|
для: Commander
(25.04.2010 в 18:55)
| | >Только rewrit'ом я вывожу не id, а название для Rewrite, которое запрашивается у администратора. Ессно, это название уникально в пределах раздела CMS.
что то не очень понял. А mod rewrite может только преобразовывать один адрес в другой на основе рег. выражений, или может пользоваться какой то информацией ещё (из БД или текстовых файлов)? | |
|
|
|
|
|
|
|
для: sasha1133
(25.04.2010 в 20:40)
| | example.com/comments -> example.com/index.php?module=comments
А как цифрами можно модули передавать - не понимаю. Тогда какой смысл в ЧПУ, если пользователь увидит что-то типа
example.com/143/post-4.html?
Про mod_rewrite - еще никогда не слышал, чтобы он умел с бд работать или текстовые файлы читать. | |
|
|
|
|
|
|
|
для: neadekvat
(25.04.2010 в 21:17)
| | я бы еще добавил возможность общения с администратором онлайн,
скажем ковырят молодой геты или кучу левых постов отправляет,
а тут ему сообщение, мол э! успокойся )))
у нас каждый заказчик форум хочет, так что было бы неплохо еще и встроенный модуль форума иметь.. | |
|
|
|
|
 70.5 Кб |
|
|
для: sasha1133
(25.04.2010 в 20:40)
| |
example.com/about.html = example.com/index.php?pagename=about.html
example.com/news/ = example.com/index.php?pagename=news
|
А каждая страница идентифицируется скриптом не по id, а по названию, которое запрашивается у администратора (см. скриншот во вложении) при создании страницы. Название для Rewrite должно быть уникальным, иначе скрипт просто не сможет определить, какую страницу выводить | |
|
|
|
|
|
|
|
для: Commander
(26.04.2010 в 11:10)
| | Понятно. То есть при добавлении статьи в базу данных, никаких новых правил не дописывается. А на картинке Ваша CMS? | |
|
|
|
|
|
|
|
для: sasha1133
(26.04.2010 в 14:59)
| | А на картинке Ваша CMS?
Да, скрипт добавления текстовой страницы. | |
|
|
|
|
|
|
|
для: Commander
(26.04.2010 в 23:55)
| | А глаза при работе не режет?
Я дольше нескольких милисекунд смотреть не могу на скрин вашей админки.. | |
|
|
|
|
|
|
|
для: neadekvat
(26.04.2010 в 23:56)
| | Кому как. Я все равно как админку допишу, диз в ней поменяю | |
|
|
|
|
|
|
|
для: neadekvat
(26.04.2010 в 23:56)
| | да ужжжжжж. ну и цвета... я все время делаю серый, не напрягающий глаза, интерфейс. но иногда клиенты сами просят: один попросил черный фон, белый текст (кошмар!), другой - все зеленое, причем цвета лайма, еле-еле уговорила его на более спокойный зеленый. после работы в его "болоте" несколько минут весь мир вокруг кажется более красным, чем на самом деле :) | |
|
|
|
|
|
|
|
для: elenaki
(27.04.2010 в 21:11)
| | Вы дизайнер? =) | |
|
|
|
|
|
|
|
для: neadekvat
(27.04.2010 в 21:47)
| | я вэб-девелопер (по должности). чаще программирую, еще чаще исправляю чужие ляпы
(простых кодеров у нас человек 10), но иногда приходится и дизайн делать, хотя есть и
штатный художник. но художник рисует макет сайта, а не админки. админку иногда подгоняю
под дизайн сайта. чаще оставляю серенькой, только логотип меняю (и клиенту приятно и
сама не путаюсь. когда то в одной, то в другой админке приходится работать). | |
|
|
|
|
|
|
|
для: sasha1133
(25.04.2010 в 03:58)
| | Ещё вопрос. Например есть шаблоны для сайта. А как быть с дополнительными модулями (например форумом)? Прилагать все нестандартные изображения в папке с модулем?
И ещё вопрос) Если на сайте будут какие либо ajax модули, например голосование, можно ли обработку этих запросов всё также делать через index.php?
В общих чертах я хочу сделать так. Добавляешь модуль (установку планирую сделать через админку), создаются необходимые таблицы, копируются файлы модуля и в специальную таблицу записывается, что делать при таком то запросе. index.php получает запрос, смотрит в таблицу и обращается к нужным модулям, выбранному шаблону и тп, затем выводит страницу. Хорошо так будет сделать? | |
|
|
|
|
|
|
|
для: sasha1133
(26.04.2010 в 15:07)
| | >И ещё вопрос) Если на сайте будут какие либо ajax модули, например голосование, можно ли обработку этих запросов всё также делать через index.php?
это как? отправлять запросы на самого себя?
вообще можно, но это неправильно, пусть этим занимаются специально обученные файлы. | |
|
|
|
|
|
|
|
для: Рома
(26.04.2010 в 21:19)
| | Кто вам мешает передавать тем же ajax'ом еще один параметр, сообщающий index.php, какой модуль должен обрабатывать этот запрос? | |
|
|
|
|
|
|
|
для: neadekvat
(26.04.2010 в 21:21)
| | >Кто вам мешает передавать тем же ajax'ом еще один параметр, сообщающий index.php, какой модуль должен обрабатывать этот запрос?
Разум. | |
|
|
|
|
|
|
|
для: Рома
(26.04.2010 в 21:23)
| | И как же разум аргументирует это?
И почему делать так:
index.php?module=comments&do=add
через форму (method=post) позволяет, а вот так:
index.php?module=mark&nid=123&mark=5
но через ajax не позволяет? | |
|
|
|
|
|
|
|
для: neadekvat
(26.04.2010 в 21:36)
| | >И как же разум аргументирует это?
>И почему делать так:
>index.php?module=comments&do=add
>через форму (method=post) позволяет, а вот так:
>index.php?module=mark&nid=123&mark=5
>но через ajax не позволяет?
потому что ajax позволяет применять другую структуру движка, координально отличающуюся от вышеприведенной, а иначе он только усложняет разработку сайта. | |
|
|
|
|
|
|
|
для: sasha1133
(26.04.2010 в 15:07)
| | И ещё вопрос) Если на сайте будут какие либо ajax модули, например голосование, можно ли обработку этих запросов всё также делать через index.php?
Лучше сделать отдельный скрипт. Я лично все ajax-обработчики выношу в отдельный файл, чтобы не запутаться в собственном коде. | |
|
|
|
|
|
|
|
для: sasha1133
(25.04.2010 в 03:58)
| | А в разработке скольких CMS Вы уже приняли участие? | |
|
|
|
|
|
|
|
для: Loki
(05.05.2010 в 16:59)
| | пока двух, если это можно назвать CMS) они обе получились узкоспециализированные, что то поменять кардинально в сайте невозможно. Визуального редактора тоже не было. Короче куча минусов. Из плюсов только то, что работают нормально) | |
|
|
|
|
|
|
|
для: sasha1133
(06.05.2010 в 04:42)
| | Ну тогда я бы не рассчитывал на то, что получится "продумать структуру до мелочей". Граблей там разложено немеряно. Без опыта построения подобных штук, скорее всего, грамотно спроектировать не получится (да и с опытом - тоже не факт:). Так что либо определитесь со структурой в самом крупном приближении и начинайте набивать шишки, либо изучайте лидеров в данной области, разбираясь почему они реализованы именно так (собственно, совмещать эти занятия тоже не возбраняется:). А построить в голове "универсальный механизм", а потом просто воплотить его в коде у Вас 100% не получится. | |
|
|
|