Создание CMS

Шаг за шагом мы опишем, как построить систему управления контентом, которая использует PHP в качестве языка программирования, и XML или MySQL для хранения данных. Это не простой учебник, а конкретный проект по построению инструмента, который можно использовать в производстве.

Зачем строить CMS

?

Доступны сотни бесплатных CMS, так зачем тогда строить еще одну?
Этот проект отличается тем, что мы хотим и построить инструмент, и объяснить, как можно построить инструмент. Мы считаем, что веб-приложения начнут заменять локально работающие, а также заменять обычные веб-сайты, состоящие из страниц, написанных в HTML-редакторе. Теперь веб-сайты, как правило, все больше и больше разрабатываются и состоят из передовых технологий, и нам нужно знать, как эти инструменты работают.
Замена офисного ПО веб-приложениями не означает, что в будущем мы будем работать онлайн, а что мы будем использовать приложения, которые построены для интернета: они тоже могут работать локально.
Еще одна причина узнать, как строится CMS, заключается в том, что предлагаемые в настоящее время инструменты предназначены только для публикации документов, если мы хотим провести особую обработку данных перед их публикацией, нам нужно собственное программное обеспечение.

Интересы окончательной CMS

После завершения работы эта CMS позволит любому пользователю добавлять контент на сайт без каких-либо знаний о технологиях, используемых для его работы. Авторы смогут писать статьи в редакторе wysiwyg (не в пресловутом bbCode), а веб-мастер сможет управлять статьями, комментариями, новостями и т. Д. без дополнительных знаний.

Предварительное требование

Программа требует от программиста:
- хостинг, поддерживающий PHP для тестирования демо,
- редактор HTML,
- компилятор Script для генерации самых больших частей PHP-кода,
- и, по желанию, лицензированные библиотеки LGPL для расширения CMS (например, с помощью форума).
Веб-мастеру сайта понадобится только PHP-хостинг и MySQL для установки финальной CMS.

Как построить CMS: проектирование

Мы запустили проект, который является и учебником, и действительно функциональным инструментом. Мы будем добавлять инструмент за инструментом и каждый придет с учебником, объясняющим, как он реализуется, как он работает и как расширить свои возможности.
Конечная CMS будет состоять из набора модулей, которые возьмут на себя следующие функции:
- Редактирование статей осуществляется внешним редактором wysiwyg.
- Обмен с сервером будет происходить в Аяксе (не сюрприз!).
- CSS используется для презентации и шаблонов CMS.
- Тексты обрабатываются для заполнения шаблона, а затем записываются непосредственно в HTML-файлы, а не в базу данных.
- Информация управления хранится в XML или JSON.
- Информация пользователя должна храниться в кодированном XML или в базе данных.
- Читатели смогут добавлять комментарии к каждой статье. Они могут быть встроены в HTML-страницу (с динамическим отображением по требованию) или сохранены в дополнительный XML-файл.
- Участники могут также предлагать статьи. Последние будут сначала храниться в категории «предлагаемые».
- RSS, форум/FAQ, новости и справочники будут добавлены в качестве расширений.

Создание блога

Формально блог - это веб-страница со списком хронологически перевернутых векселей. Главное отличие от сайта портала в том, что на одной странице отображаются несколько текстов, но если мы можем установить количество билетов на странице, Просто поставьте это число в 1, чтобы преобразовать блог в портал, если рядом с основной страницей отображается постоянная часть, описывающая содержание сайта и связанная с ним.
В блоге также должны быть специальные инструменты для поиска текстов и возможности для посетителей добавлять комментарии, что мы намерены включить в нашу CMS.

Сведения о компонентах

Большинство этих компонентов независимы и могут обрабатываться в любом порядке.

Добавление редактора wysiwyg для создания страниц

Мы должны уметь сочинять статьи с помощью издателя, на любом компьютере онлайн, после того, как будет дан пароль.
Страницы не хранятся непосредственно, а обрабатываются переводчиком, который заполняет шаблон текстом, введенным веб-мастером или участником.

Управление меню

Созданные страницы не должны оставаться осиротевшими. В файле должна быть создана ссылка. Мы должны иметь возможность создавать меню с категориями и подкатегориями и добавлять ссылку на каждую новую страницу, приходящую на сайт.
Название категории указывается при вводе текста, а также появится возможность редактирования меню.

Проверка подлинности участников

Форма позволит ввести имя пользователя и пароль перед добавлением содержимого на узел. Если сайт включает нескольких участников, менеджер предоставляет разрешения и сохраняет профили. Желательно использовать MySQL.

Включить комментарии к статьям

Читатели смогут размещать комментарии и добавлять ответы на комментарии других интернет-пользователей. Это превращает площадку в форум и потребует какого-то управления. Администратор должен иметь возможность удалять комментарии. Нам нужно построить систему для хранения комментариев, отображения их в виде списка или дерева, которое можно открыть или закрыть (например, каталоги). XML хорошо подходит для такого рода структуры.

Администрация

Для управления системой нам необходимо создать административную панель:
- создание или редактирование статей,
- удалить статьи или комментарии,
- управление пользователями,
- настроить систему.

RSS

RSS-канал должен быть создан для выбора страниц или последних статей, добавленных на сайт. Он будет работать как первый список впервые выпущенный, при этом самые старые заголовки удаляются, чтобы освободить место для последних.

Карта сайта

Карта сайта будет создана автоматически. В идеале карта будет обновлена, как только будет создана новая статья. На самом деле, поскольку стандартный sitemap - это XML-файл, менеджер статей, который доступен из панели администрирования, может непосредственно использовать этот XML-файл для хранения списка статей.

Код

Форум

Build a CMS, захватывающий...

09-09-2009 19:41:21

gwinru

Захватывающие статьи о создании CMS. Я с радостью использовал некоторые советы. Что, помимо монстров рынка, легко редактировать существующую страницу с помощью FckEditor. Можно ли надеяться на продолжение?
09-09-2009 20:30:17

веб-мастер

Что ж, следующий шаг - использование Tiny MCE, с которым ты будешь взаимодействовать со статическими HTML-страницами или с базой MySQL. Это позволит иметь онлайн-редактор, а в процессе автоматически обновлять sitemap, RSS-каналы и другие.
09-09-2009 23:06:46

gwinru

Я с нетерпением жду этого. Опять молодец за сайт.