Практикум по разработке системы управления контентом (CMS)
Покупка
Новинка
Тематика:
Системы управления базами данных (СУБД)
Издательство:
ИНТУИТ
Автор:
Гутентог М. А.
Год издания: 2016
Кол-во страниц: 52
Дополнительно
Создание несложной системы управления сайтом на языках PHP, Javascript
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 10.03.01: Информационная безопасность
- 38.03.05: Бизнес-информатика
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.03: Прикладная информатика
- 10.04.01: Информационная безопасность
- 38.04.05: Бизнес-информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Практикум по разработке системы управления контентом (CMS) 2-е издание, исправленное Гутентог М.А. Национальный Открытый Университет “ИНТУИТ” 2016 2
Практикум по разработке системы управления контентом (CMS)/ М.А. Гутентог - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Создание несложной системы управления сайтом на языках PHP, Javascript. (c) ООО “ИНТУИТ.РУ”, 2016-2016 (c) Гутентог М.А., 2016-2016 3
Обзор технологий. Начало кодирования Введение CMS – content management system, обычно переводится как “система управления содержимым (сайта)”. Возможно, вы слышали о таких широко распросранённых CMS, как Joomla, Битрикс. Создав собственную CMS, вы сможете понять, как работают другие, научитесь видеть их внутренние достоинства и недостатки. А несложные сайты (вроде блога с комментариями) вы сможете создавать прямо на своей CMS, которая позволит вам легко редактировать содержимое сайта, делать резервные копии, переносить файлы сайта и базу данных (БД) с одного хостинга на другой. Для работы вам понадобятся следующие инструменты: текстовый редактор с подсветкой синтаксиса: Notepad++ (на Windows), Kate или Geany (на Linux, MaxOS); Mysql-сервер; веб-сервер Apache с подключенным в виде модуля PHP; phpMyAdmin (ссылка: http://www.phpmyadmin.net/) для создания таблиц mysql; браузер Firefox. Вам не нужна будет громоздкая система разработки (IDE), весь код вашей CMS не превысит 100 килобайт (несколько файлов php, css, js). Веб-сервер и mysql-сервер вы можете установить сразу, используя для Windows такой дистрибутив, как USBWebserver V8 (ссылка: http://www.usbwebserver.net/en/download.php), а для Linux набор пакетов LAMP (MAMP, XAMP для MacOS). Если вы не сможете это сделать самостоятельно, используя компьютер и Интернет, вам, скорее всего, пока рано изучать данный курс. Курс рассчитан на людей, знакомых со спецификациями HTML5, CSS2 и с основами программирования на PHP, Javascript, с работой в phpMyAdmin и составлением простых sql-запросов. Нужны также будут начальные знания английского языка – чтобы с помощью словаря разбирать, что значит “affected rows”, “deprecated“, или “alter table files add primary key …”. HTML В мире веб существуют сотни CMS, фреймворков и прочих “библиотек”, и число их постоянно растёт. Потому что каждый человек, создавший хоть один сайт, обязательно задумается: нельзя ли в следующий раз избежать многочисленных трудов и создать новый сайт, взяв из старого сайта нечто существенное и слегка подправив? Что общего у блога, сайта доставки суши и сайта школьного расписания? Обнаружив это общее, мы сможем значительно ускорить создание следующего сайта (например, landing-page для продажи воздушных шариков). 4
Любой сайт состоит из html-страниц, это лежит на поверхности. Значит, общим будет некоторый набор html-тэгов. Большинство из них повторяются от одного сайта к другому: DOCTYPE, title, charset, link, script… То есть можно смело взять такой кусок текста (листинг 1.1 пример 1.1): <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Астрология</title> <link rel="stylesheet" href="site.css" type="text/css"> <script type="text/javascript" src="site.js"></script> </head> <body> <p><img src="files/img1.jpg" />Гадание по кофейной гуще</p> <p><img src="files/img2.jpg" />Оптом, в розницу и на экспорт</p> </body> Листинг 1.1. – и использовать его для создания любой страницы любого сайта, подставляя вместо слов “Астрология” и “Гадание по кофейной гуще” другие слова (и копируя на место картинок img1.jpg и img2.jpg другие файлы). В этом случае каждая страница сайта будет реально существующим html-файлом, и вы сможете менять этот текст, редактировать его. То есть это уже будет что-то вроде системы управления содержанием. Но работать в такой системе не очень удобно: править тексты вы сможете только в текстовом редакторе на своём компьютере – в Блокноте (или Notepad++); править текст надо будет очень аккуратно, чтобы не испортить окружающие htmlтэги; чтобы изменить текст, вам нужно будет скачать нужный html-файл к себе на комьютер, отредактировать его, а потом загрузить обратно на сервер по ftpпротоколу (то есть не через браузер, а с помощью отдельной специальной программы). Идея CMS как раз в том и состоит, чтобы вы могли менять содержимое своего сайта, используя только браузер, без дополнительных программ и сложных манипуляций с файлами. Здесь возникает две разные задачи: Доступ к содержимому сервера через браузер. Удобное изменение текстов сайта без опасности повредить html-код. Для загрузки файлов на сервер используют html-формы. Браузер передаёт с помощью такой формы запрос, к которому присоединяет выбранный вами (на вашем 5
компьютере) файл. Запрос в соответствии с протоколом HTTP должен быть “POST“. Сервер без помощи специальных языков программирования (php, java, python) не сможет поместить отправленный вами файл в нужную папку. Теоретически существует ещё возможность отправлять на веб-сервер файлы методом PUT (которые, например, http-сервер Nginx может получать и распеределять по папкам самостоятельно, без использования Php), но такой возможности (отправлять файлы методом PUT) пока нет у самих html-форм, поэтому мы будем исходить только из использования метода POST. Это значит, что у работы на “чистом html” нет перспектив и нам сразу же понадобится php. А чтобы соединять разные тексты с одним и тем же повторяющимся фрагментом html, нужно будет хранить тексты отдельно от фрагментов html (называемых обычно шаблонами). Хранить тексты можно просто в отдельных файлах, но база данных (Mysql) намного удобнее. PHP, MySQL Листинг 1.1 пример 1.1 был достаточно прост, но дальше вам понадобится проверять работу каждого фрагмента кода в реальных условиях, отлаживать программу. Поэтому сразу создадим эти реальные условия (или убедимся, что они созданы). Если вы работаете на Windows, мы будем исходить из того, что вы установили USBWebserver и назначили для Apache порт 80; тогда в браузере вы сможете открыть ваш сайт по адресу ссылка: http://localhost/ (либо ссылка: http://localhost:8080/), а файлы для работы сайта (php, js, css) вы должны будете копировать в папку c:/usbws/root (или другую папку, в которую вы установили USBWebserver). Вместе с USBWebserver, кстати, должен сразу установиться phpMyAdmin. Если вы работаете под Линуксом, папка для вашего сайта, скорее всего, будет расположена по адресу /var/www/html (хотя, возможно, и в домашней директории пользователя – это будет зависеть от настроек веб-сервера), а phpMyAdmin вы должны будете установить самостоятельно (например, командой консоли sudo apt-get install phpmyadmin). Вся дальнейшая работа технически будет выглядеть так: 1. вы пишете что-то (например, программный код) в файлы php, js, css в папке вашего сайта; 2. открываете в браузере адрес ссылка: http://localhost/ (иногда ссылка: http://localhost/index2.php или index3.php) и смотрите, какие изменения произошли на сайте вследствие вашей работы с кодом; 3. корректируете код – и затем повторяете пункты 1 и 2 (и при необходимости 3 – пока не “заработает”). От этих двух добавлений (Php и Mysql) сложность кода начнёт возрастать по экспоненте. Минимальный повторяемый фрагмент страницы (“шаблон”) теперь будет 6