16 January 2021
Автор: Колисниченко Денис Николаевич
Книга ориентирована как на обычных пользователей Интернета, которым нужно в кратчайшие сроки создать свой сайт, так и на разработчиков, которые заинтересованы в построении собственной системы управления сайтом.
Рассмотрены три уже готовые системы управления сайтом ? Joomla!, Slaed, PHP-Nuke. С позиции пользователя описывается, как установить, настроить, разработать графическую тему и расширить возможности каждой системы. Для разработчиков описано программирование собственных расширений для рассмотренных движков, а также создание собственной системы управления сайтом. Отдельное внимание уделяется защите от взлома разрабатываемой системы, а также интеграции с популярным форумом phpBB из файла задания.
На прилагаемом компакт-диске находятся последние версии CMS Joomla!, Slaed, PHP-Nuke, множество расширений, шаблонов, а также все значимые листинги книги.
Введение | 1 |
Часть I. CMS Joomla! |
3 |
Глава 1. Установка Joomla! |
5 |
1.1. Краткая информация о Joomla! | 5 |
1.1.1. Joomla! — бесплатная система | 5 |
1.1.2. Происхождение Joomla! | 6 |
1.1.3. CMS Joostina | 7 |
1.2. Инсталляция Joomla! | 7 |
Глава 2. Панель управления сайтом |
14 |
2.1. Вход в панель управления | 14 |
2.2. Управление шаблонами сайта | 14 |
2.2.1. Выбор шаблона по умолчанию | 14 |
2.2.2. Установка нового шаблона | 16 |
2.2.3. Изменение шаблона | 18 |
2.3. Разделы панели управления | 19 |
2.4. Изменение общих настроек сайта | 21 |
2.5. Управление контентом сайта | 26 |
2.5.1. Разделы сайта | 26 |
2.5.2. Категории | 29 |
2.5.3. Материалы | 32 |
2.6. Управление меню сайта | 37 |
2.7. Управление главной страницей | 39 |
2.8. Управление пользователями сайта | 41 |
Глава 3. Расширения Joomla! |
45 |
3.1. Компоненты, модули и мамботы | 45 |
3.2. Установка расширений | 46 |
3.2.1. Установка и удаление компонентов | 46 |
Два способа установки | 46 |
Связь компонента с меню | 48 |
Удаление компонента | 52 |
3.2.2. Установка и удаление модулей | 52 |
3.2.3. Проблемы при установке расширений | 52 |
3.3. Создание расширений | 53 |
3.3.1. Разработка XML-шаблона | 53 |
3.3.2. Работа с базой данных | 57 |
3.3.3. Создание простого расширения | 59 |
Глава 4. Разработка шаблонов для Joomla! |
62 |
4.1. Где взять бесплатные шаблоны для Joomla! | 62 |
4.2. Создание собственного шаблона | 63 |
4.2.1. Позиционирование модулей | 63 |
4.2.2. Создание структуры каталогов | 64 |
4.2.3. Создание файла index.html | 64 |
4.2.4. Создание index.php — главного файла шаблона | 65 |
4.2.5. Создание XML-файла шаблона | 68 |
Часть II. PHP-Nuke |
71 |
Глава 5. Установка и базовая настройка PHP-Nuke |
73 |
5.1. Немного о PHP-Nuke | 73 |
5.2. Установка PHP-Nuke | 76 |
5.3. Вывод дополнительной информации с помощью блоков | 80 |
Глава 6. Установка дополнительных модулей и графических тем |
84 |
6.1. Некоторые полезные модули для PHP-Nuke | 84 |
6.2. Активизация модуля | 87 |
6.3. Темы | 89 |
Глава 7. Создание собственных модулей для PHP-Nuke |
92 |
7.1. Простой модуль | 92 |
7.2. Работа с базой данных | 96 |
Глава 8. Проблема безопасности и защита PHP-Nuke |
98 |
8.1. Безопасен ли PHP-Nuke? | 98 |
8.2. Переименование файла admin.php | 98 |
8.3. Защита файла администрирования от прямого обращения извне | 99 |
8.4. Ограничение доступа к файлу администрирования средствами Web-сервера | 99 |
8.5. Изменение префикса таблиц | 103 |
Часть III. SLAED CMS |
105 |
Глава 9. Описание и установка SLAED CMS |
107 |
9.1. Знакомство со SLAED CMS | 107 |
9.2. Установка SLAED CMS | 108 |
9.3. Удаление окна с всплывающей рекламой | 113 |
9.4. Защита SLAED CMS | 113 |
9.4.1. Изменение имени файла admin.php | 113 |
9.4.2. Нестандартный префикс таблиц SLAED CMS | 114 |
9.4.3. Правильный выбор пароля | 115 |
9.4.4. Будьте осторожны при установке дополнительных модулей | 115 |
9.4.5. Вход в панель управления только с определенного IP | 116 |
9.4.6. Не удаляйте файлы .htaccess | 117 |
9.4.7. Регулярно создавайте резервные копии базы данных | 117 |
Глава 10. Панель администрирования SLAED CMS |
118 |
10.1. Возможности панели администрирования | 118 |
10.2. Базовая настройка SLAED CMS | 120 |
10.3. Дополнительные темы оформления | 126 |
10.4. Управление контентом сайта | 127 |
10.4.1. Создание списка вопросов и ответов | 127 |
10.4.2. Каталог файлов. Статьи | 129 |
10.4.3. Опросы | 131 |
Глава 11. Полезные модули для SLAED CMS |
133 |
11.1. Перечень модулей | 133 |
11.2. Установка модулей | 136 |
Глава 12. Создание собственных модулей |
139 |
12.1. Совместимость модулей SLAED CSM и PHP-Nuke | 139 |
12.2. Простой модуль | 139 |
12.3. Активация модуля | 142 |
12.4. Передача параметров модулю | 143 |
12.5. Подробно об адаптации модулей PHP-Nuke | 144 |
12.5.1. Код защиты модуля | 144 |
12.5.2. Новый вызов файла конфигурации | 145 |
12.5.3. Код доступа к базе данных | 145 |
12.5.4. Вызовы OpenTable2() и CloseTable2() | 146 |
12.5.5. Избавляемся от подключения mainfile.php | 146 |
12.5.6. Ссылки на modules.php | 147 |
12.5.7. Цветовые переменные | 147 |
12.5.8. Переменная $nukeurl | 147 |
Часть IV. Разработка собственной CMS |
149 |
Глава 13. Функции и возможности будущей CMS. Разработка шаблонизатора |
151 |
13.1. Зачем нужно разрабатывать собственную CMS | 151 |
13.2. Вопросы планирования | 153 |
13.3. "Принципиальная" схема CMS | 155 |
13.4. Разработка шаблонизатора для CMS | 157 |
Глава 14. Реализация основных функций CMS |
162 |
14.1. Разработка TPL-шаблона | 162 |
14.2. Файл настроек | 163 |
14.3. Основной файл CMS — index.php | 164 |
14.4. Проектирование базы данных | 167 |
14.4.1. Таблица static | 167 |
14.4.2. Таблица cats | 168 |
14.4.3. Таблица pages | 169 |
14.5. Иерархическая структура сайта. Создание иерархического меню | 170 |
14.5.1. Алгоритм работы меню | 170 |
14.5.2. Сценарий menu.php | 173 |
14.5.3. Вывод содержимого раздела и страницы | 179 |
14.6. Подведем итоги проделанной работы | 184 |
Глава 15. Дополнительные функции CMS |
185 |
15.1. Вывод информации из таблицы static | 185 |
15.2. Постраничный вывод | 186 |
15.3. Функция вывода содержимого HTML-файла | 191 |
15.4. Версия для печати | 192 |
Глава 16. Работа с RSS: получаем новости на сайт |
194 |
16.1. Краткие сведения о RSS | 194 |
16.2. Формат RSS-файла | 195 |
16.3. Написание сценария импорта новостей | 197 |
16.4. Подключение файла import.php к сайту | 201 |
16.4.1. Интеграция с нашей CMS | 201 |
16.4.2. Интеграция с произвольной CMS | 202 |
16.5. Создание граббера новостей | 203 |
Глава 17. Интеграция CMS с LiveJournal |
207 |
17.1. Что такое "живой" журнал | 207 |
17.2. Интеграция фотогалереи LiveJournal и сайта | 209 |
17.3. Настройка внешнего вида галереи | 213 |
Глава 18. Защита собственной CMS |
215 |
18.1. Сайт в опасности | 215 |
18.2. Два самых распространенных метода взлома | 216 |
18.3. Межсайтовый скриптинг | 217 |
18.4. SQL-инъекции | 219 |
Часть V. Интеграция CMS с форумом phpBB |
225 |
Глава 19. Базовая интеграция |
227 |
19.1. Преимущества и недостатки интеграции с форумом | 227 |
19.2. Разработка формы входа | 228 |
19.3. Вывод последних сообщений форума на главной странице | 230 |
19.4. Вывод онлайн-посетителей | 234 |
19.5. Изменение названий полей | 236 |
Глава 20. Разработка и интеграция панели администрирования CMS |
240 |
20.1. Возможности панели управления | 240 |
20.2. Создание HTML-редактора | 240 |
20.3. Разработка модулей для панели администрирования phpBB | 244 |
20.4. Модуль редактирования таблицы static | 246 |
20.5. Домашнее задание | 253 |
Глава 21. Изменение TPL-шаблонов phpBB |
255 |
21.1. Основные TPL-шаблоны phpBB | 255 |
21.2. Изменение дизайна форума | 260 |
Глава 22. Фотогалерея за 20 минут |
262 |
22.1. Установка фотоальбома Smartor | 262 |
22.1.1. Правильная распаковка архива | 262 |
22.1.2. SQL-запросы | 262 |
22.1.3. Установка прав доступа | 265 |
22.1.4. Редактирование файлов phpBB | 266 |
22.1.5. Небольшой бонус от автора | 268 |
22.2. Использование фотоальбома | 269 |
Часть VI. Специальные движки |
275 |
Глава 23. WordPress: создай свой блог |
277 |
23.1. Что такое блог | 277 |
23.2. Установка и использование WordPress | 278 |
Глава 24. Wiki: создай свою энциклопедию |
283 |
24.1. Вкратце о MediaWiki | 283 |
24.2. Установка Вики | 284 |
24.3. Настройка MediaWiki | 290 |
24.3.1. Название сайта и его логотип | 290 |
24.3.2. Параметры доступа к БД | 291 |
24.3.3. Выбор языка MediaWiki | 291 |
24.3.4. Изменение скина (графической темы) | 292 |
24.3.5. Разрешение загрузки файлов на сайт | 292 |
24.3.6. Управление правами доступа | 292 |
24.4. Создание и редактирование страниц | 296 |
24.5. Специальные страницы | 299 |
Глава 25. Движок для интернет-магазина |
301 |
25.1. Выбор движка | 301 |
25.2. Сценарий Shop-Script FREE | 303 |
25.3. Установка сценария | 304 |
25.4. Использование сценария | 305 |
Приложения | 313 |
Приложение 1. Установка форума phpBB | 315 |
Приложение 2. Права доступа в UNIX/Linux | 317 |
Приложение 3. Основы SQL | 320 |
П3.1. Немного истории | 320 |
П3.2. Преимущества SQL | 321 |
П3.3. Как выглядят запросы | 322 |
П3.4. Что такое база данных | 322 |
П3.5. Создание таблиц | 324 |
П3.6. Добавление записей в таблицу | 328 |
П3.7. Обновление записей | 329 |
П3.8. Выборка записей | 330 |
П3.9. Удаление записей | 331 |
П3.10. Встроенные функции | 332 |
П3.11. Группировка записей. Сложные запросы | 333 |
Приложение 4. Программа phpMyAdmin | 337 |
П4.1. Действия над таблицами | 339 |
П4.2. Создание новой таблицы. Изменение структуры таблицы | 339 |
П4.3. Вставка записей | 342 |
П4.4. Обзор таблицы | 342 |
П4.5. Выполнение произвольного SQL-кода | 342 |
П4.6. Резервное копирование БД | 343 |
Приложение 5. Описание компакт-диска | 345 |
Предметный указатель | 348 |