Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
software:development:demo:cms:video_cms [2025/04/24 19:08] – vladpolskiy | software:development:demo:cms:video_cms [2025/04/26 12:01] (текущий) – внешнее изменение 127.0.0.1 |
---|
=====Подготовка к работе===== | =====Подготовка к работе===== |
====Рабочая станция==== | ====Рабочая станция==== |
Мною будет использоваться Apache/2.4.58 (Unix) на [[software:nas:synology_diskstation_ds218|Synology NAS]] c PHP: <html><?php echo PHP_VERSION ?></html> 8.2.211 и [[software:development:web:docs:glossary:mariadb_10|MariaDB 10]], но можно для простоты использовать локальный сервер, например [[software:denwer:denwer|Denwer]] | Мною будет использоваться Apache/2.4.58 (Unix) на [[software:nas:synology_diskstation_ds218|Synology NAS]] c PHP: 8.2.21 и [[software:development:web:docs:glossary:mariadb_10|MariaDB 10]], но можно для простоты использовать локальный сервер, например [[software:denwer:denwer|Denwer]] |
<fc #22b14c>Устанавливаем редактор</fc> [[https://notepad-plus-plus.org/|Notepad++]] <fc #22b14c>- бесплатный текстовой редактор исходного кода. Работая в среде MS Windows, его использование регулируется</fc> [[https://ru.wikipedia.org/wiki/GNU_General_Public_License|GNU General Public License]]. | |
| * <fc #22b14c>Устанавливаем</fc> [[software:nas:putty|Putty]] <fc #22b14c>- клиентскую программу для работы с сетевым протоколом SSH, SFTP и генерации цифровых SSH-ключей, которая является свободным приложением с открытым исходным кодом и распространяется под </fc> [[https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT|Open Source лицензией MIT]]. |
| * <fc #22b14c>Устанавливаем редактор</fc> [[https://notepad-plus-plus.org/|Notepad++]] <fc #22b14c>- бесплатный текстовой редактор исходного кода. Работая в среде MS Windows, его использование регулируется</fc> [[https://ru.wikipedia.org/wiki/GNU_General_Public_License|GNU General Public License]]. |
| |
| ====Планирование==== |
| Расмотрим примерную структуру нашего приложения (названия директорий произвольное, но проще использовать понятные или традиционные, чтобы не запутаться, например: user - в переводе "пользователь", install - "установка", readme - "прочти меня", user_login - "пользователь_авторизация" и т.д.). Ниже приведен предварительной проект директорий нашей будущей CMS. |
| <diagram> |
| |AAA||||||AAA{text-align:left;border-color:white}={{fa>folder?}} "./ucms/" |
| |)|EEE|||||EEE{text-align:left;border-color:white}={{fa>folder?}} users |
| |!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} admin |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} account_admin |
| |!|!|!|`|BBB||BBB{text-align:left;border-color:white}={{fa>file}} admin_setting.php |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} admin_nav.php |
| |!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} admin.php |
| |!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} user |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} account_user |
| |!|!|!|)|BBB||BBB{text-align:left;border-color:white}={{fa>file}} user_login.php |
| |!|!|!|)|BBB||BBB{text-align:left;border-color:white}={{fa>file}} user_logout.php |
| |!|!|!|`|BBB||BBB{text-align:left;border-color:white}={{fa>file}} user_signup.php |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} messages |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} user_edit.php |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} user_nav.php |
| |!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} user.php |
| |!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} install |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} account_settings.php |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} database_options.php |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} installation_progress.php |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} options.php |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} setting.php |
| |!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} install.php |
| |!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} ghost.php |
| |!|`|CCC|||||CCC{text-align:left;border-color:white}={{fa>file?}} administrator.php |
| |)|BBB|||||BBB{text-align:left;border-color:white}={{fa>folder?}} content |
| |!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} data |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} books |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} images |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} media |
| |!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} music |
| |!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} media |
| |!|`|BBB|||BBB{text-align:left;border-color:white}={{fa>file?}} cont.php |
| |)|DDD|||DDD{text-align:left;border-color:white}={{fa>folder?}} includes |
| |!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} config.php |
| |!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} db.php |
| |!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} mail.php |
| |!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} lang.php |
| |!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} function.php |
| |!|`|DDD|||DDD{text-align:left;border-color:white}={{fa>file?}} search.php |
| |)|CCC|||CCC{text-align:left;border-color:white}={{fa>folder?}} library |
| |!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} template |
| |!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} vcms |
| |!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} css |
| |!|!|!|!|)|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} main.css |
| |!|!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} nav.css |
| |!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} js |
| |!|!|!|!|)|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} main.js |
| |!|!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} nav.js |
| |!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} img |
| |!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} fonts |
| |!|!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} style.ini |
| |!|!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>file}} tpl_main.php |
| |!|!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>file}} tpl_footer.php |
| |!|!|!|`|CCC||CCC{text-align:left;border-color:white}={{fa>file}} tpl_header.php |
| |!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} blog |
| |!|!|`|CCC||CCC{text-align:left;border-color:white}={{fa>file?}} main.php |
| |!|)|222||222{text-align:left;border-color:white}={{fa>file?}} 404.php |
| |!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} lib.php |
| |)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} .htaccess |
| |)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} index.php |
| |`|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} readme.html |
| </diagram> |
| Надеюсь, что из вышеприведенной схемы директорий все понятно? Кратко: |
| * .htaccess — это локальный конфигурационный файл веб-сервера Apache, который позволяет управлять настройками сайта. |
| * index.php - это стартовая страница. |
| * readme.html - руководство, которое дает пользователям подробное описание проекта |
| * user - главная папка пользователей |
| * guest - пользователь с правом только просмотра и поиска по сайту контента. |
| * 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 |
| и т.д... (см. описание в файле readme.html) с создание которого мы и начнем. На нашем вебсервере создаем директорию с понятным названием, к примеру... и так уже обозначенно в нашем проекте "ucms" - "Universal Content management system" (Универсальная Система Управления Контентом), а в ней файл с расширение .txt и именем readme |
| {{:software:development:demo:cms:ucms_creat_1.png?|}} |
| Этот файл не будет участвовать в работе приложения, в этом файле мы будем писать подробное руководство для пользователя проекта. Да, мы будем много писать, и в основном это будут комментарии. Поэтому создаем еще один файл с именем help.txt |
| {{:software:development:demo:cms:ucms_creat_2.png?|}} |
| этот файл в конце нашей работы мы удалим, в нем будут записываться используемые части кода, чтобы вы всегда могли посмотреть как и что пишется, чтобы не тратить время на перелистывание страниц в интернете. Так-же там будут наши заметки, т.к. за один день мы не успеем охватить весь процесс. |
| |
| Пример файла help.txt |
| <code php 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 |
| </code> |
| Казалось бы, этого можно не делать, но поверьте, когда у вас будет много директорий и много файлов, вы начнете путаться, а если вас еще отвлекут от процесса на недельку, то вы вообще все забудите, а так у вас будет все записано и вам не прийдется начинать все с начала. |
| <note blue> |
| <wrap left>← [[software:development:demo:cms:table_of_contents|Оглавление]]</wrap> |
| <wrap right>[[software:development:demo:cms:video_cms:creating_cms_installer|Создание установщика CMS]] →</wrap> |
| </note> |
| <note blue> |
| <wrap left>← [[software:development:demo:cms:table_of_contents|Оглавление]]</wrap> |
| <wrap right>[[software:development:demo:cms:video_cms:creating_cms_readme|Файл readme.txt]] →</wrap> |
| </note> |
| |