В этой статье мы рассмотрим создание собственной cms с инсталятором, регистрацией пользователей и шаблонами сайта. При этом это будет общая cms-шаблон, для которой будет возможность создавать темы и плагины. Поэтому нам понадобиться время и все наше усердие. Предпалогается, что модулями выступят: сайт блога, видеохостинг, букхостинг и небольшая социальная сеть с возможностью личных сообщений.
А начнем мы с самого простого, с видеохостинга, так как блог- это совсем просто. И что нам понадобиться? Правильно сервер с установленным ПО.
В моем случае:
Позже сдетаем тоже самое с файловой базой для домашнего использования. Основное рукописание в Notepad++ на:
Мною будет использоваться Apache/2.4.58 (Unix) на Synology NAS c PHP: 8.2.21 и MariaDB 10, но можно для простоты использовать локальный сервер, например Denwer
Расмотрим примерную структуру нашего приложения (названия директорий произвольное, но проще использовать понятные или традиционные, чтобы не запутаться, например: user - в переводе «пользователь», install - «установка», readme - «прочти меня», user_login - «пользователь_авторизация» и т.д.). Ниже приведен предварительной проект директорий нашей будущей CMS.
«./ucms/» | ||||||||||||||||||||
users | ||||||||||||||||||||
admin | ||||||||||||||||||||
account_admin | ||||||||||||||||||||
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 | ||||||||||||||||||||
ghost.php | ||||||||||||||||||||
administrator.php | ||||||||||||||||||||
content | ||||||||||||||||||||
data | ||||||||||||||||||||
books | ||||||||||||||||||||
images | ||||||||||||||||||||
media | ||||||||||||||||||||
music | ||||||||||||||||||||
media | ||||||||||||||||||||
cont.php | ||||||||||||||||||||
includes | ||||||||||||||||||||
config.php | ||||||||||||||||||||
db.php | ||||||||||||||||||||
mail.php | ||||||||||||||||||||
lang.php | ||||||||||||||||||||
function.php | ||||||||||||||||||||
search.php | ||||||||||||||||||||
library | ||||||||||||||||||||
template | ||||||||||||||||||||
vcms | ||||||||||||||||||||
css | ||||||||||||||||||||
main.css | ||||||||||||||||||||
nav.css | ||||||||||||||||||||
js | ||||||||||||||||||||
main.js | ||||||||||||||||||||
nav.js | ||||||||||||||||||||
img | ||||||||||||||||||||
fonts | ||||||||||||||||||||
style.ini | ||||||||||||||||||||
tpl_main.php | ||||||||||||||||||||
tpl_footer.php | ||||||||||||||||||||
tpl_header.php | ||||||||||||||||||||
blog | ||||||||||||||||||||
main.php | ||||||||||||||||||||
404.php | ||||||||||||||||||||
lib.php | ||||||||||||||||||||
.htaccess | ||||||||||||||||||||
index.php | ||||||||||||||||||||
readme.html | ||||||||||||||||||||
Надеюсь, что из вышеприведенной схемы директорий все понятно? Кратко:
и т.д… (см. описание в файле readme.html) с создание которого мы и начнем. На нашем вебсервере создаем директорию с понятным названием, к примеру… и так уже обозначенно в нашем проекте «ucms» - «Universal Content management system» (Универсальная Система Управления Контентом), а в ней файл с расширение .txt и именем readme
Этот файл не будет участвовать в работе приложения, в этом файле мы будем писать подробное руководство для пользователя проекта. Да, мы будем много писать, и в основном это будут комментарии. Поэтому создаем еще один файл с именем help.txt
этот файл в конце нашей работы мы удалим, в нем будут записываться используемые части кода, чтобы вы всегда могли посмотреть как и что пишется, чтобы не тратить время на перелистывание страниц в интернете. Так-же там будут наши заметки, т.к. за один день мы не успеем охватить весь процесс.
Пример файла help.txt
!Это файл - подсказка по написанию кода в руководстве по написанию UCMS ----------------------------------------------------------------------- <!-- Комментарии html --> // Комментарии в PHP или /* ... */ /* Комментарии CSS */ // Комментарии в JavaScript или /* ... */ /* Комментарии MySQL */ ----------------------------------------------------------------------- <?php // Вставка кода PHP в HTML-файл ?> ----------------------------------------------------------------------- Подключение файлов JavaScript к HTML <script src="js/main.js"></script> ----------------------------------------------------------------------- Подключение файлов CSS к HTML <link rel="stylesheet" href="/style.css"> /////////////////////////Важно!//////////////////////////////////////// в файле login.php переменную password заменили на login_pass не забыть !!! произвести замену в reg.php ////////////////////////26.04.2025///////////////////////////////////// закончили на подключении файла стилей CSS в index.php в директории ./ucms/bin/user
Казалось бы, этого можно не делать, но поверьте, когда у вас будет много директорий и много файлов, вы начнете путаться, а если вас еще отвлекут от процесса на недельку, то вы вообще все забудите, а так у вас будет все записано и вам не прийдется начинать все с начала.