Это старая версия документа!
Создание собственной CMS
В этой статье мы рассмотрим создание собственной cms с инсталятором, регистрацией пользователей и шаблонами сайта. При этом это будет общая cms-шаблон, для которой будет возможность создавать темы и плагины. Поэтому нам понадобиться время и все наше усердие. Предпалогается, что модулями выступят: сайт блога, видеохостинг, букхостинг и небольшая социальная сеть с возможностью личных сообщений.
А начнем мы с самого простого, с видеохостинга, так как блог- это совсем просто. И что нам понадобиться? Правильно сервер с установленным ПО.
В моем случае:
- база данных MariaDB
Позже сдетаем тоже самое с файловой базой для домашнего использования. Основное рукописание в Notepad++ на:
Подготовка к работе
Рабочая станция
Мною будет использоваться Apache/2.4.58 (Unix) на Synology NAS c PHP: 8.2.21 и MariaDB 10, но можно для простоты использовать локальный сервер, например Denwer
- Устанавливаем Putty - клиентскую программу для работы с сетевым протоколом SSH, SFTP и генерации цифровых SSH-ключей, которая является свободным приложением с открытым исходным кодом и распространяется под Open Source лицензией MIT.
- Устанавливаем редактор Notepad++ - бесплатный текстовой редактор исходного кода. Работая в среде MS Windows, его использование регулируется GNU General Public License.
Планирование
Расмотрим примерную структуру нашего приложения (названия директорий произвольное, но проще использовать традицирнные, чтобы не запутаться.). Ниже приведен предварительной проект директорий нашей будущей CMS.
«./» | ||||||||||||||||||||
administrator | ||||||||||||||||||||
admin | ||||||||||||||||||||
account_admin | ||||||||||||||||||||
admin_login.php | ||||||||||||||||||||
admin_logout.php | ||||||||||||||||||||
admin_setting.php | ||||||||||||||||||||
admin_nav.php | ||||||||||||||||||||
admin.php | ||||||||||||||||||||
user | ||||||||||||||||||||
account_user | ||||||||||||||||||||
user_login.php | ||||||||||||||||||||
user_logout.php | ||||||||||||||||||||
user_signup.php | ||||||||||||||||||||
messages | ||||||||||||||||||||
user_edit.php | ||||||||||||||||||||
user_nav.php | ||||||||||||||||||||
user.php | ||||||||||||||||||||
install | ||||||||||||||||||||
account_settings.php | ||||||||||||||||||||
database_options.php | ||||||||||||||||||||
installation_progress.php | ||||||||||||||||||||
options.php | ||||||||||||||||||||
setting.php | ||||||||||||||||||||
install.php | ||||||||||||||||||||
administrator.php | ||||||||||||||||||||
content | ||||||||||||||||||||
data | ||||||||||||||||||||
books | ||||||||||||||||||||
media | ||||||||||||||||||||
cont.php | ||||||||||||||||||||
includes | ||||||||||||||||||||
config.php | ||||||||||||||||||||
db.php | ||||||||||||||||||||
mail.php | ||||||||||||||||||||
lang.php | ||||||||||||||||||||
function.php | ||||||||||||||||||||
search.php | ||||||||||||||||||||
library | ||||||||||||||||||||
template | ||||||||||||||||||||
vcms | ||||||||||||||||||||
css | ||||||||||||||||||||
main.css | ||||||||||||||||||||
js | ||||||||||||||||||||
main.js | ||||||||||||||||||||
img | ||||||||||||||||||||
fonts | ||||||||||||||||||||
tpl_main.php | ||||||||||||||||||||
tpl_footer.php | ||||||||||||||||||||
tpl_header.php | ||||||||||||||||||||
blog | ||||||||||||||||||||
main.php | ||||||||||||||||||||
404.php | ||||||||||||||||||||
lib.php | ||||||||||||||||||||
.htaccess | ||||||||||||||||||||
index.php | ||||||||||||||||||||
readme.html | ||||||||||||||||||||
Надеюсь, что из вышеприведенной схемы директорий все понятно? Кратко:
- .htaccess — это локальный конфигурационный файл веб-сервера Apache, который позволяет управлять настройками сайта.
- index.php - это стартовая страница.
- readme.html - руководство, которое дает пользователям подробное описание проекта
- user - главная папка пользователей
- account_user - папка аккаунта пользователя
- user_login.php - файл авторизации пользователя
- user_logout.php - файл окончания сеанса авторизации пользователя
- user_signup.php - файл регистрации нового пользователя
- user_edit.php - редактор постов пользователя
- user_nav.php - меню пользователя
- account_admin - папка аккаунта администратора
- admin_setting.php - файл настроек CMS администратором
- admin_nav.php - расширенное меню пользователь/администратор
- install - папка установки CMS