Главная » 2014»Август»19 » CMS Drupal 7. Руководство по разработке системы управления веб-сайтом
21:11
CMS Drupal 7. Руководство по разработке системы управления веб-сайтом
CMS Drupal 7. Руководство по разработке системы управления веб-сайтом - Многие из большинства хорошо узнаваемых веб-сайтов на планете используют в качестве платформы для доставки контента и функциональности своим посетителям систему Drupal. С выходом версии Drupal 7 началась новая эра управления контентом, при которой предлагаемые функциональные средства подняли планку того, что может быть достигнуто на веб-сайтах, на новую высоту. Эта книга предоставляет исчерпывающую информацию о внутреннем устройстве Drupal, что позволит строить более развитые решения быстро и эффективно. Книга ориентирована на разработчиков, которые отвечают за создание и расширение возможностей веб-сайтов, построенных на Drupal. Здесь рассматривается весь спектр вопросов, в том числе основы платформы Drupal, использование API-интерфейсов Drupal, разработка собственных модулей с целью расширения функциональности Drupal, написание защищенного кода, построение высокопроизводительных веб-сайтов на Drupal, а также другие темы, которые помогут на пути вашего становления как эксперта по Drupal.
Название: CMS Drupal 7. Руководство по разработке системы управления веб-сайтом Автор: Тодд Томлинсон Издательство: Вильямс Год: 2011 Страниц: 560 Формат: PDF Размер: 13,5 МБ ISBN: 978-5-8459-1743-0 Качество: Отличное Серия или Выпуск: Expert's Voice Язык: Русский
Содержание:
Предисловие Об авторе О технических рецензентах Благодарности Введение От издательства Глава 1. Как работает Drupal Что собой представляет Drupal Стек технологий Ядро Интерфейс администрирования Модули Хуки Темы Ноды Поля Блоки Расположение файлов Обслуживание запросов Роль веб-сервера Процесс начальной загрузки Обработка запроса Оформление данных Резюме Глава 2. Создание модулей Создание файлов Реализация хука Добавление параметров для конкретного модуля Определение собственного раздела администрирования Вывод формы параметров пользователю Проверка параметров, введенных пользователем Хранение параметров Использование таблицы variables Извлечение сохраненных значений с помощью функции variable_get() Дальнейшие шаги Резюме Глава 3. Хуки, действия и триггеры События и триггеры Действия Пользовательский интерфейс триггера Первое действие Назначение действия Изменение триггеров, поддерживаемых действием Использование контекста в действиях Подготовка контекста модулем триггера Изменение существующих действий с помощью drupal_alter() Формирование контекста Хранение действий Таблица actions Идентификаторы действий Непосредственный вызов действия с помощью actions_do() Определение собственных триггеров с помощью hook_trigger_info() Добавление триггеров в существующие хуки Резюме Глава 4. Система меню Отображение обратных вызовов Отображение URL-адресов на функции Создание элемента меню Аргументы обратного вызова страницы Обратные вызовы страниц в других файлах Добавление ссылки в блок навигации Вложенные меню Управление доступом Локализация и настройка заголовка Определение обратного вызова заголовка Обобщенные символы в элементах меню Основные обобщенные символы Обобщенные символы и параметры обратного вызова страницы Использование значения обобщенного символа Обобщенные символы и замена параметров Передача дополнительных аргументов функции загрузки Специальные предопределенные аргументы загрузки %map и %index Сборка путей из обобщенных символов с помощью функций to_arg() Специальные варианты обобщенных символов и функции to_arg() Изменение элементов меню из других модулей Изменение ссылок меню из других модулей Виды элементов меню Часто встречающиеся задачи Назначение обратных вызовов без добавления ссылки в меню Вывод элементов меню в виде вкладок Сокрытие существующих элементов меню Использование menu. module Распространенные ошибки Резюме Глава 5. Работа с базами данных Определение параметров базы данных Уровень абстракции баз данных Подключение к базе данных Выполнение простых запросов Выборка результатов запроса Получение одного значения Получение нескольких строк Использование конструктора запросов и объектов запросов Получение ограниченного диапазона результатов Получение результатов для страничного вывода Другие распространенные запросы Вставки и обновления данных с помощью drupal_write_record() API-интерфейс схемы Использование файлов .install Создание таблиц Использование модуля схемы Отображение типов полей из схемы в базу данных Объявление конкретного типа столбца с помощью mysql_type Обслуживание таблиц Удаление таблиц при деинсталляции Изменения существующих схем с помощью hook_schema_alter() Изменение запросов других модулей с помощью hook_query_alter() Подключение к нескольким базам данных в Drupal Использование временной таблицы Написание собственного драйвера СУБД Резюме Глава 6. Работа с пользователями Объект $user Проверка, выполнил ли пользователь вход Хуки пользователя Функция hook_user_view ($account, $view_mode) Процесс регистрации пользователя Сбор информации о пользователях с помощью profile. module Процесс входной регистрации Добавление данных в объект $user во время загрузки Предоставление категорий пользовательской информации Внешний вход Резюме Глава 7. Работа с нодами Так что же собой представляет нода? Не все является нодами Создание модуля ноды Хранение нод Создание типа ноды с помощью собственных типов контента Ограничение доступа к нодам Что такое область Что такое идентификатор разрешения Резюме Глава 8. Работа с полями Создание типов контента Добавление полей в тип контента Создание произвольного поля Программное добавление полей Резюме Глава 9. Система тем Темы Установка готовой темы Создание темы Файл .info Добавление областей в тему Добавление CSS-файлов в тему Добавление файлов JavaScript Добавление параметров в тему Шаблонные файлы Крупный план Файл html.tpl.php Файл page.tpl.php Файл region.tpl.php Файл node.tpl.php Файл field.tpl.php Файл block.tpl.php Переопределение шаблонных файлов Другие шаблонные файлы Знакомство с функцией theme() Принцип действия функции theme() Переопределение элементов, допускающих темизацию Переопределение с помощью шаблонных файлов Добавление и манипулирование шаблонными переменными Использование модуля разработчика тем Резюме Глава 10. Работа с блоками Что такое блок? Параметры настройки блоков Размещение блока Определение блока Использование блочных хуков Создание блоков Активация блока при инсталляции модуля Примеры видимости блоков Отображение блока только для вошедших пользователей Вывод блока только для анонимных пользователей Резюме Глава 11. Интерфейс Form API Обработка формы Инициализация процесса Установка маркера Установка идентификатора Сбор всех возможных определений элемента формы Поиск функции проверки достоверности Поиск функции отправки Разрешение модулям изменять форму перед ее построением Построение формы Разрешение функциям изменять форму после ее построения Проверка факта отправки формы Обнаружение функции темы для формы Разрешение модулям изменять форму перед ее визуализацией Визуализация формы Проверка достоверности формы Отправка формы Перенаправление пользователя Создание базовых форм Свойства формы Идентификаторы формы Наборы полей Темизация форм Спецификация функций проверки достоверности и отправки формы с помощью hook_forms() Порядок вызова функций тем, проверки достоверности и отправки Реализация функции проверки достоверности Перестройка формы Реализация функции отправки Изменение форм с помощью hook_form_alter() Программная отправка формы с помощью drupal_form_submit() Динамические формы Свойства Form API Свойства для корневого элемента формы Свойства, добавляемые ко всем элементам Свойства, доступные во всех элементах Элементы формы Свойство #ahah Резюме Глава 12. Манипулирование данными, вводимыми пользователем: система фильтров Фильтры Фильтры и текстовые форматы Инсталляция фильтра Когда нужно использовать фильтры Создание специального фильтра Реализация hook_filter_info() Функция обработки Вспомогательная функция Резюме Глава 13. Поиск и индексация контента Создание специальной страницы поиска Форма поиска по умолчанию Расширенная форма поиска Дополнение к форме поиска Использование HTML-индексатора поиска Когда используется индексатор Как работает индексатор Резюме Глава 14. Работа с файлами Как Drupal обслуживает файлы Управляемый и неуправляемый API-интерфейс Drupal Общедоступные файлы Приватные файлы Параметры настройки PHP Обработка медиа-данных Поле выгрузки Видео и аудио API-интерфейс для работы с файлами Схема базы данных Общие задачи и функции Выяснение заданного по умолчанию URI файлов Копирование и перемещение файлов Проверка каталогов Выгрузка файлов Получение URL для файла Поиск файлов в каталоге Поиск временного каталога Нейтрализация опасных файлов Проверка дискового пространства Хуки аутентификации для загрузки Резюме Глава 15. Работа с таксономией Структура таксономии Создание словаря Создание терминов Назначение словаря типу контента Виды таксономии Одноуровневый словарь Иерархический словарь Множественная иерархия Просмотр контента по термину Использование операций AND и OR в URL Определение глубины для иерархических словарей Автоматические RSS-каналы Хранение таксономий Словари на основе модулей Создание словаря на основе модуля Уведомление об изменениях в словаре с помощью хуков таксономии Общие задачи Отображение терминов таксономии, связанных с нодой Построение собственных запросов таксономии Использование функции taxonomy_select_nodes() Функции таксономии Извлечение информации о словарях Добавление, изменение и удаление словарей Извлечение информации о терминах Добавление, изменение и удаление терминов Извлечение информации об иерархии терминов Поиск нод с определенными терминами Дополнительные ресурсы Резюме Глава 16. Кэширование Когда необходимо кэширование Как работает кэширование Как кэширование используется в ядре Drupal Система меню Кэширование фильтрованного текста Переменные администрирования и настройки модуля Отключение кэширования Кэширование страниц Кэширование статической страницы Кэширование данных с помощью cache_set() Извлечение кэшируемых данных с помощью cache_get() и cache_get_multiple() Использование функции cache_is_empty для проверки, пуст ли кэш Очистка кэша с помощью cach_clear_all Резюме Глава 17. Сеансы Что собой представляют сеансы Использование сеансов Настройки, связанные с сеансом Файл .htaccess Файл settings.php Файл bootstrap.inc Требование поддержки cookie-наборов Хранилище Жизненный цикл сеанса Сеансовые диалоги Первое посещение Второе посещение Пользователь с учетной записью Общие задачи Изменение времени истечения срока действия cookie-набора Изменение имени сеанса Хранение данных в сеансе Резюме Глава 18. Использование jQuery Что собой представляет jQuery Устаревший метод Как работает jQuery Использование селектора идентификации CSS Использование селектора класса CSS jQuery в Drupal Ваш первый код jQuery Выбор элемента по идентификатору Объединение методов в цепочку Добавление или удаление класса Помещение существующих элементов в оболочку Изменение значений элементов CSS Куда помещать код JavaScript Переопределяемый код JavaScript Создание виджета для голосования с помощью jQuery Построение модуля Использование Drupal. behaviors Способы расширения модуля Совместимость Дальнейшие шаги Резюме Глава 19. Локализация и перевод Активация модуля locale Перевод пользовательского интерфейса Строки Переопределения строк в settings. php Замена строк с помощью модуля локализации Экспорт перевода Начало нового перевода Использование командной строки Использование модуля извлечения с веб-интерфейсом Установка перевода на определенный язык Поддержка языков с письмом справа налево Согласование языков Опция Default (По умолчанию) Опция User (Пользовательский) Глобальный объект $language Опция Path prefix only (Только префикс пути) Опция Path prefix with language fallback (Префикс пути с обходом языка) Опция URL Only (Только URL) Перевод контента Начальное знакомство с модулем перевода контента Многоязыковая поддержка Многоязыковая поддержка с переводом Файлы, относящиеся к локализации и переводу Дополнительные ресурсы Резюме Глава 20. Протокол XML-RPC Что собой представляет XML-RPC Предварительные требования для протокола XML-RPC Клиенты XML-RPC Пример клиента XML-RPC: получение текущего времени Пример клиента XML-RPC: получение названия штата Обработка ошибок клиента XML-RPC Простой сервер XML-RPC Отображение метода с помощью hook_xmlproc() Автоматическая проверка типа параметра с помощью hook_xmlprc() Встроенные методы XML-RPC system.listMethods system.methodSignature system.methodHelp system.getCapabilities system.multiCall Резюме Глава 21. Написание защищенного кода Обработка вводимой пользователем информации Соображения по поводу типов данных Использование функций check_plain() и t() для очистки вывода Использование функции filter_xss() для предотвращения межсайтовых атак с помощью сценариев Использование функции filter_xss_admin() Безопасная обработка URL Обеспечение безопасности запросов с помощью функции db_query() Сохранение конфиденциальности личных данных с помощью функции hook_alter_query() Динамические запросы Разрешения и обратные вызовы страницы Подделки межсайтовых запросов (CSRF) Безопасность файлов Права доступа к файлу Защищенные файлы Загрузка файлов на сервер Имена файлов и пути Кодирование заголовков почты Файлы для рабочей среды Поддержка SSL Автономный PHP Безопасность AJAX и атаки повторением запроса Безопасность API-интерфейса форм Защита учетной записи суперпользователя Резюме Глава 22. Передовые приемы разработки Стандарты кодирования Выравнивание строк и пробелы Операции Приведение типов Управляющие структуры Вызовы функций Объявления функций Имена функций Вызовы конструктора класса Массивы Кавычки Конкатенация строк Комментарии Примеры документирования Документирование констант Документирование функций Документирование реализаций хуков Включение кода Дескрипторы PHP-кода Символы точки с запятой URL-адреса примеров Соглашения по именованию Программная проверка стиля кодирования Использование сценария code-style. pl Использование модуля кодировщика Поиск в коде с помощью grep Резюме Глава 23. Оптимизация Drupal Кэширование - ключ к высокой производительности Drupal Оптимизация PHP Установка файла кэша кодов операций PHP в /dev/zero Настройки пула процессов PHP Настройка Apache Модуль mod_expires Перенос директив из .htaccess в httpd. conf Сравнение предварительного ветвления MPM с рабочей конфигурацией Apache MPM Балансировка размера пула Apache Снижение длительности тайм-аута Apache Отключение неиспользуемых модулей Apache Использование Nginx вместо Apache Использование Pressflow Использование Varnish Нормализация входящих запросов для увеличения коэффициента попаданий в кэш Varnish Varnish: обнаружение внешних cookie-наборов Модуль Boost Сравнение Boost и Varnish Настройка системы Linux для серверов с высоким уровнем трафика Использование быстрых файловых систем Сравнение выделенных и виртуальных серверов Предотвращение обращения к внешним веб-службам Уменьшение интервалов ожидания сервера Оптимизация базы данных Включение кэша запросов в MySQL Производительность InnoDB MySQL в среде Windows Производительность Drupal Предотвращение ошибок 404 Отключение неиспользуемых модулей Специфичные для Drupal методы оптимизации Кэширование страниц Оптимизация полосы пропускания Усечение таблицы сеансов Управление трафиком аутентифицированных пользователей Протоколирование в базе данных Протоколирование в журнале операционной системы Запуск cron Архитектуры Единственный сервер Отдельный сервер базы данных Отдельный сервер базы данных и кластер веб-серверов Балансировка загрузки Загрузки файлов на сервер и синхронизация Использование разделяемой, монтируемой файловой системы За рамками единственной файловой системы Множество серверов базы данных Репликация баз данных Секционирование баз данных Обнаружение узкого места Перегрузка центрального процессора веб-сервера Нехватка оперативной памяти на веб-сервере Идентификация ресурсоемких запросов базы данных Идентификация ресурсоемких страниц Идентификация ресурсоемкого кода Оптимизация таблиц Кэширование запросов вручную Изменение типа таблицы с MyISAM на InnoDB Резюме Глава 24. Инсталляционные профили Создание нового инсталляционного профиля Файл enhanced.info Файл enhanced.profile Файл enhanced.install Использование хуков hook_install_tasks и hook_install_tasks_alter Резюме Глава 25. Тестирование Настройка тестовой среды Способ определения тестов Тестовые функции Тестовые утверждения Резюме Приложение А. Справочник по таблицам базы данных Приложение Б. Ресурсы Предметный указатель