Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Практикум по разработке системы управления контентом (CMS)

Покупка
Новинка
Артикул: 834159.01.99
Доступ онлайн
1 000 ₽
В корзину
Создание несложной системы управления сайтом на языках PHP, Javascript
Гутентог, М. А. Практикум по разработке системы управления контентом (CMS) : практикум / М. А. Гутентог. - Москва : ИНТУИТ, 2016. - 52 с. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2156217 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов

                                    
Практикум по разработке системы управления
контентом (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

Доступ онлайн
1 000 ₽
В корзину