CMS Drupal 7. Руководство по разработке системы управления веб-сайтом

Тодд Томлинсон

Многие из большинства хорошо узнаваемых веб-сайтов на планете используют в качестве платформы для доставки контента и функциональности своим посетителям систему Drupal. С выходом версии Drupal 7 началась новая эра управления контентом, при которой предлагаемые функциональные средства подняли планку того, что может быть достигнуто на веб-сайтах, на новую высоту. Эта книга предоставляет исчерпывающую информацию о внутреннем устройстве Drupal, что позволит строить более развитые решения быстро и эффективно.

Книга ориентирована на разработчиков, которые отвечают за создание и расширение возможностей веб-сайтов, построенных на Drupal. Здесь рассматривается весь спектр вопросов, в том числе основы платформы Drupal, использование API-интерфейсов Drupal, разработка собственных модулей с целью расширения функциональности Drupal, написание защищенного кода, построение высокопроизводительных веб-сайтов на Drupal, а также другие темы, которые помогут на пути вашего становления как эксперта по Drupal.

Издательство: Вильямс, 3-е издание, 2011 г.

ISBN 978-5-8459-1743-0, 978-1-43-022838-7

Количество страниц: 560.

Содержание книги «CMS Drupal 7. Руководство по разработке системы управления веб-сайтом»:

  • 17 Предисловие
    • 18 Об авторе
    • 19 О технических рецензентах
    • 20 Благодарности
  • 21 Введение
    • 22 От издательства
  • 23 Глава 1. Как работает Drupal
    • 23 Что собой представляет Drupal
    • 23 Стек технологий
    • 24 Ядро
    • 25 Интерфейс администрирования
    • 25 Модули
    • 25 Хуки
    • 27 Темы
    • 27 Ноды
    • 27 Поля
    • 28 Блоки
    • 28 Расположение файлов
    • 30 Обслуживание запросов
      • 30 Роль веб-сервера
      • 30 Процесс начальной загрузки
      • 30 Обработка запроса
      • 31 Оформление данных
    • 31 Резюме
  • 32 Глава 2. Создание модулей
    • 32 Создание файлов
    • 34 Реализация хука
    • 35 Добавление параметров для конкретного модуля
    • 42 Определение собственного раздела администрирования
    • 44 Вывод формы параметров пользователю
    • 45 Проверка параметров, введенных пользователем
    • 46 Хранение параметров
      • 46 Использование таблицы variables
      • 47 Извлечение сохраненных значений с помощью функции variable_get()
    • 47 Дальнейшие шаги
    • 47 Резюме
  • 48 Глава 3. Хуки, действия и триггеры
    • 48 События и триггеры
    • 50 Действия
      • 50 Пользовательский интерфейс триггера
      • 52 Первое действие
      • 53 Назначение действия
      • 54 Изменение триггеров, поддерживаемых действием
    • 58 Использование контекста в действиях
      • 59 Подготовка контекста модулем триггера
      • 59 Изменение существующих действий с помощью drupal_alter()
      • 60 Формирование контекста
    • 62 Хранение действий
      • 62 Таблица actions
      • 62 Идентификаторы действий
    • 62 Непосредственный вызов действия с помощью actions_do()
    • 63 Определение собственных триггеров с помощью hook_trigger_info()
    • 66 Добавление триггеров в существующие хуки
    • 67 Резюме
  • 68 Глава 4. Система меню
    • 68 Отображение обратных вызовов
    • 68 Отображение URL-адресов на функции
    • 69 Создание элемента меню
    • 73 Аргументы обратного вызова страницы
    • 75 Обратные вызовы страниц в других файлах
    • 76 Добавление ссылки в блок навигации
    • 77 Вложенные меню
    • 78 Управление доступом
    • 79 Локализация и настройка заголовка
    • 80 Определение обратного вызова заголовка
    • 81 Обобщенные символы в элементах меню
      • 81 Основные обобщенные символы
      • 82 Обобщенные символы и параметры обратного вызова страницы
      • 82 Использование значения обобщенного символа
      • 83 Обобщенные символы и замена параметров
      • 84 Передача дополнительных аргументов функции загрузки
      • 85 Специальные предопределенные аргументы загрузки %map и %index
      • 85 Сборка путей из обобщенных символов с помощью функций to_arg()
      • 85 Специальные варианты обобщенных символов и функции to_arg()
    • 86 Изменение элементов меню из других модулей
    • 87 Изменение ссылок меню из других модулей
    • 88 Виды элементов меню
    • 90 Часто встречающиеся задачи
      • 90 Назначение обратных вызовов без добавления ссылки в меню
      • 90 Вывод элементов меню в виде вкладок
      • 92 Сокрытие существующих элементов меню
      • 92 Использование menu.module
      • 93 Распространенные ошибки
    • 93 Резюме
  • 94 Глава 5. Работа с базами данных
    • 94 Определение параметров базы данных
    • 95 Уровень абстракции баз данных
    • 95 Подключение к базе данных
    • 97 Выполнение простых запросов
    • 98 Выборка результатов запроса
      • 98 Получение одного значения
      • 98 Получение нескольких строк
      • 99 Использование конструктора запросов и объектов запросов
      • 100 Получение ограниченного диапазона результатов
      • 100 Получение результатов для страничного вывода
      • 101 Другие распространенные запросы
    • 102 Вставки и обновления данных с помощью drupal_write_record()
    • 103 API-интерфейс схемы
      • 103 Использование файлов .install
      • 103 Создание таблиц
      • 106 Использование модуля схемы
      • 106 Отображение типов полей из схемы в базу данных
      • 109 Объявление конкретного типа столбца с помощью mysql_type
      • 110 Обслуживание таблиц
      • 111 Удаление таблиц при деинсталляции
      • 111 Изменения существующих схем с помощью hook_schema_alter()
    • 112 Изменение запросов других модулей с помощью hook_query_alter()
    • 113 Подключение к нескольким базам данных в Drupal
    • 114 Использование временной таблицы
    • 115 Написание собственного драйвера СУБД
    • 115 Резюме
  • 116 Глава 6. Работа с пользователями
    • 116 Объект $user
    • 118 Проверка, выполнил ли пользователь вход
    • 119 Хуки пользователя
      • 120 Функция hook_user_view($account, $view_mode)
    • 122 Процесс регистрации пользователя
    • 124 Сбор информации о пользователях с помощью profile.module
    • 125 Процесс входной регистрации
      • 125 Добавление данных в объект $user во время загрузки
      • 128 Предоставление категорий пользовательской информации
    • 129 Внешний вход
    • 133 Резюме
  • 134 Глава 7. Работа с нодами
    • 134 Так что же собой представляет нода?
    • 136 Не все является нодами
    • 137 Создание модуля ноды
    • 149 Хранение нод
    • 150 Создание типа ноды с помощью собственных типов контента
    • 150 Ограничение доступа к нодам
    • 152 Что такое область
    • 152 Что такое идентификатор разрешения
    • 154 Резюме
  • 155 Глава 8. Работа с полями
    • 155 Создание типов контента
    • 157 Добавление полей в тип контента
    • 160 Создание произвольного поля
    • 170 Программное добавление полей
    • 172 Резюме
  • 173 Глава 9. Система тем
    • 173 Темы
      • 173 Установка готовой темы
      • 174 Создание темы
    • 180 Файл .info
      • 180 Добавление областей в тему
      • 181 Добавление CSS-файлов в тему
      • 181 Добавление файлов JavaScript
      • 181 Добавление параметров в тему
    • 184 Шаблонные файлы
      • 184 Крупный план
      • 186 Файл html.tpl.php
      • 187 Файл page.tpl.php
      • 191 Файл region.tpl.php
      • 191 Файл node.tpl.php
      • 194 Файл field.tpl.php
      • 195 Файл block.tpl.php
      • 197 Переопределение шаблонных файлов
      • 197 Другие шаблонные файлы
    • 198 Знакомство с функцией theme()
    • 198 Принцип действия функции theme()
      • 199 Переопределение элементов, допускающих темизацию
      • 201 Переопределение с помощью шаблонных файлов
      • 202 Добавление и манипулирование шаблонными переменными
      • 203 Использование модуля разработчика тем
    • 203 Резюме
  • 204 Глава 10. Работа с блоками
    • 204 Что такое блок?
    • 206 Параметры настройки блоков
      • 207 Размещение блока
      • 207 Определение блока
      • 209 Использование блочных хуков
    • 209 Создание блоков
    • 215 Активация блока при инсталляции модуля
    • 216 Примеры видимости блоков
      • 216 Отображение блока только для вошедших пользователей
      • 216 Вывод блока только для анонимных пользователей
    • 216 Резюме
  • 217 Глава 11. Интерфейс Form API
    • 217 Обработка формы
      • 219 Инициализация процесса
      • 219 Установка маркера
      • 219 Установка идентификатора
      • 219 Сбор всех возможных определений элемента формы
      • 220 Поиск функции проверки достоверности
      • 220 Поиск функции отправки
      • 221 Разрешение модулям изменять форму перед ее построением
      • 221 Построение формы
      • 221 Разрешение функциям изменять форму после ее построения
      • 221 Проверка факта отправки формы
      • 222 Обнаружение функции темы для формы
      • 222 Разрешение модулям изменять форму перед ее визуализацией
      • 222 Визуализация формы
      • 223 Проверка достоверности формы
      • 224 Отправка формы
      • 224 Перенаправление пользователя
    • 224 Создание базовых форм
      • 226 Свойства формы
      • 227 Идентификаторы формы
      • 227 Наборы полей
      • 230 Темизация форм
      • 233 Спецификация функций проверки достоверности и отправки формы с помощью hook_forms()
      • 234 Порядок вызова функций тем, проверки достоверности и отправки
      • 234 Реализация функции проверки достоверности
      • 237 Перестройка формы
      • 238 Реализация функции отправки
      • 239 Изменение форм с помощью hook_form_alter()
      • 240 Программная отправка формы с помощью drupal_form_submit()
      • 240 Динамические формы
    • 247 Свойства Form API
      • 247 Свойства для корневого элемента формы
      • 248 Свойства, добавляемые ко всем элементам
      • 248 Свойства, доступные во всех элементах
      • 251 Элементы формы
      • 259 Свойство #ahah
    • 264 Резюме
  • 265 Глава 12. Манипулирование данными, вводимыми пользователем: система фильтров
    • 265 Фильтры
    • 266 Фильтры и текстовые форматы
      • 268 Инсталляция фильтра
      • 268 Когда нужно использовать фильтры
    • 270 Создание специального фильтра
      • 271 Реализация hook_filter_info()
      • 271 Функция обработки
      • 272 Вспомогательная функция
    • 274 Резюме
  • 275 Глава 13. Поиск и индексация контента
    • 275 Создание специальной страницы поиска
      • 276 Форма поиска по умолчанию
      • 276 Расширенная форма поиска
      • 277 Дополнение к форме поиска
    • 280 Использование HTML-индексатора поиска
      • 280 Когда используется индексатор
      • 280 Как работает индексатор
    • 288 Резюме
  • 289 Глава 14. Работа с файлами
    • 289 Как Drupal обслуживает файлы
    • 289 Управляемый и неуправляемый API-интерфейс Drupal
      • 290 Общедоступные файлы
      • 291 Приватные файлы
    • 291 Параметры настройки PHP
    • 292 Обработка медиа-данных
      • 292 Поле выгрузки
      • 293 Видео и аудио
      • 293 API-интерфейс для работы с файлами
      • 294 Схема базы данных
      • 295 Общие задачи и функции
      • 295 Выяснение заданного по умолчанию URI файлов
      • 296 Копирование и перемещение файлов
      • 296 Проверка каталогов
      • 296 Выгрузка файлов
      • 300 Получение URL для файла
      • 301 Поиск файлов в каталоге
      • 301 Поиск временного каталога
      • 302 Нейтрализация опасных файлов
      • 304 Проверка дискового пространства
      • 304 Хуки аутентификации для загрузки
    • 305 Резюме
  • 306 Глава 15. Работа с таксономией
    • 306 Структура таксономии
    • 307 Создание словаря
    • 307 Создание терминов
    • 307 Назначение словаря типу контента
    • 308 Виды таксономии
      • 308 Одноуровневый словарь
      • 308 Иерархический словарь
      • 309 Множественная иерархия
    • 310 Просмотр контента по термину
      • 311 Использование операций AND и OR в URL
      • 311 Определение глубины для иерархических словарей
      • 312 Автоматические RSS-каналы
    • 312 Хранение таксономий
    • 314 Словари на основе модулей
      • 314 Создание словаря на основе модуля
      • 314 Уведомление об изменениях в словаре с помощью хуков таксономии
    • 316 Общие задачи
      • 316 Отображение терминов таксономии, связанных с нодой
      • 316 Построение собственных запросов таксономии
      • 317 Использование функции taxonomy_select_nodes()
    • 317 Функции таксономии
      • 317 Извлечение информации о словарях
      • 317 Добавление, изменение и удаление словарей
      • 318 Извлечение информации о терминах
      • 319 Добавление, изменение и удаление терминов
      • 320 Извлечение информации об иерархии терминов
      • 322 Поиск нод с определенными терминами
    • 322 Дополнительные ресурсы
    • 322 Резюме
  • 323 Глава 16. Кэширование
    • 323 Когда необходимо кэширование
    • 324 Как работает кэширование
    • 325 Как кэширование используется в ядре Drupal
      • 326 Система меню
      • 326 Кэширование фильтрованного текста
      • 326 Переменные администрирования и настройки модуля
      • 327 Отключение кэширования
      • 328 Кэширование страниц
      • 328 Кэширование статической страницы
      • 331 Кэширование данных с помощью cache_set()
      • 332 Извлечение кэшируемых данных с помощью cache_get() и cache_get_multiple()
      • 332 Использование функции cache_is_empty для проверки, пуст ли кэш
      • 332 Очистка кэша с помощью cach_clear_all
    • 334 Резюме
  • 335 Глава 17. Сеансы
    • 335 Что собой представляют сеансы
    • 335 Использование сеансов
    • 337 Настройки, связанные с сеансом
      • 337 Файл .htaccess
      • 337 Файл settings.php
      • 338 Файл bootstrap.inc
      • 338 Требование поддержки cookie-наборов
    • 339 Хранилище
    • 340 Жизненный цикл сеанса
    • 341 Сеансовые диалоги
      • 341 Первое посещение
      • 341 Второе посещение
      • 341 Пользователь с учетной записью
    • 342 Общие задачи
      • 342 Изменение времени истечения срока действия cookie-набора
      • 342 Изменение имени сеанса
      • 342 Хранение данных в сеансе
    • 343 Резюме
  • 344 Глава 18. Использование jQuery
    • 344 Что собой представляет jQuery
    • 345 Устаревший метод
    • 346 Как работает jQuery
      • 346 Использование селектора идентификации CSS
      • 346 Использование селектора класса CSS
    • 347 jQuery в Drupal
      • 347 Ваш первый код jQuery
      • 349 Выбор элемента по идентификатору
      • 350 Объединение методов в цепочку
      • 350 Добавление или удаление класса
      • 350 Помещение существующих элементов в оболочку
      • 351 Изменение значений элементов CSS
      • 351 Куда помещать код JavaScript
      • 354 Переопределяемый код JavaScript
    • 357 Создание виджета для голосования с помощью jQuery
      • 359 Построение модуля
      • 364 Использование Drupal.behaviors
      • 365 Способы расширения модуля
      • 365 Совместимость
    • 366 Дальнейшие шаги
    • 366 Резюме
  • 367 Глава 19. Локализация и перевод
    • 367 Активация модуля locale
    • 367 Перевод пользовательского интерфейса
      • 367 Строки
      • 369 Переопределения строк в settings.php
      • 371 Замена строк с помощью модуля локализации
      • 376 Экспорт перевода
    • 377 Начало нового перевода
      • 378 Использование командной строки
      • 378 Использование модуля извлечения с веб-интерфейсом
    • 379 Установка перевода на определенный язык
    • 381 Поддержка языков с письмом справа налево
    • 382 Согласование языков
      • 383 Опция Default (По умолчанию)
      • 383 Опция User (Пользовательский)
      • 384 Глобальный объект $language
      • 384 Опция Path prefix only (Только префикс пути)
      • 386 Опция Path prefix with language fallback (Префикс пути с обходом языка)
      • 386 Опция URL Only (Только URL)
    • 387 Перевод контента
      • 387 Начальное знакомство с модулем перевода контента
      • 387 Многоязыковая поддержка
      • 388 Многоязыковая поддержка с переводом
    • 391 Файлы, относящиеся к локализации и переводу
    • 392 Дополнительные ресурсы
    • 392 Резюме
  • 393 Глава 20. Протокол XML-RPC
    • 393 Что собой представляет XML-RPC
    • 393 Предварительные требования для протокола XML-RPC
    • 394 Клиенты XML-RPC
      • 394 Пример клиента XML-RPC: получение текущего времени
      • 395 Пример клиента XML-RPC: получение названия штата
      • 396 Обработка ошибок клиента XML-RPC
    • 398 Простой сервер XML-RPC
      • 399 Отображение метода с помощью hook_xmlproc()
      • 400 Автоматическая проверка типа параметра с помощью hook_xmlprc()
    • 400 Встроенные методы XML-RPC
      • 400 system.listMethods
      • 402 system.methodSignature
      • 403 system.methodHelp
      • 403 system.getCapabilities
      • 403 system.multiCall
    • 403 Резюме
  • 404 Глава 21. Написание защищенного кода
    • 404 Обработка вводимой пользователем информации
      • 405 Соображения по поводу типов данных
      • 407 Использование функций check_plain() и t() для очистки вывода
      • 409 Использование функции filter_xss() для предотвращения межсайтовых атак с помощью сценариев
      • 411 Использование функции filter_xss_admin()
    • 411 Безопасная обработка URL
      • 412 Обеспечение безопасности запросов с помощью функции db_query()
    • 414 Сохранение конфиденциальности личных данных с помощью функции hook_alter_query()
    • 415 Динамические запросы
    • 415 Разрешения и обратные вызовы страницы
    • 416 Подделки межсайтовых запросов (CSRF)
    • 416 Безопасность файлов
      • 416 Права доступа к файлу
      • 417 Защищенные файлы
      • 418 Загрузка файлов на сервер
      • 418 Имена файлов и пути
    • 418 Кодирование заголовков почты
    • 419 Файлы для рабочей среды
    • 420 Поддержка SSL
    • 420 Автономный PHP
    • 421 Безопасность AJAX и атаки повторением запроса
    • 422 Безопасность API-интерфейса форм
    • 422 Защита учетной записи суперпользователя
    • 423 Резюме
  • 424 Глава 22. Передовые приемы разработки
    • 424 Стандарты кодирования
      • 424 Выравнивание строк и пробелы
      • 424 Операции
    • 425 Приведение типов
    • 425 Управляющие структуры
      • 425 Вызовы функций
      • 426 Объявления функций
      • 426 Имена функций
      • 427 Вызовы конструктора класса
      • 427 Массивы
      • 427 Кавычки
      • 428 Конкатенация строк
    • 428 Комментарии
      • 429 Примеры документирования
      • 429 Документирование констант
      • 429 Документирование функций
      • 431 Документирование реализаций хуков
      • 431 Включение кода
      • 431 Дескрипторы PHP-кода
      • 432 Символы точки с запятой
      • 432 URL-адреса примеров
    • 432 Соглашения по именованию
    • 432 Программная проверка стиля кодирования
      • 432 Использование сценария code-style.pl
      • 433 Использование модуля кодировщика
    • 434 Поиск в коде с помощью grep
    • 435 Резюме
  • 436 Глава 23. Оптимизация Drupal
    • 436 Кэширование — ключ к высокой производительности Drupal
    • 438 Оптимизация PHP
      • 439 Установка файла кэша кодов операций PHP в /dev/zero
      • 439 Настройки пула процессов PHP
    • 441 Настройка Apache
      • 441 Модуль mod_expires
      • 441 Перенос директив из .htaccess в httpd.conf
      • 442 Сравнение предварительного ветвления MPM с рабочей конфигурацией Apache MPM
      • 443 Балансировка размера пула Apache
      • 443 Снижение длительности тайм-аута Apache
      • 443 Отключение неиспользуемых модулей Apache
    • 443 Использование Nginx вместо Apache
    • 444 Использование Pressflow
    • 444 Использование Varnish
      • 445 Нормализация входящих запросов для увеличения коэффициента попаданий в кэш Varnish
      • 446 Varnish: обнаружение внешних cookie-наборов
    • 446 Модуль Boost
    • 447 Сравнение Boost и Varnish
    • 447 Настройка системы Linux для серверов с высоким уровнем трафика
    • 448 Использование быстрых файловых систем
    • 449 Сравнение выделенных и виртуальных серверов
    • 449 Предотвращение обращения к внешним веб-службам
    • 450 Уменьшение интервалов ожидания сервера
    • 450 Оптимизация базы данных
      • 450 Включение кэша запросов в MySQL
      • 451 Производительность InnoDB MySQL в среде Windows
    • 451 Производительность Drupal
      • 451 Предотвращение ошибок 404
      • 452 Отключение неиспользуемых модулей
    • 452 Специфичные для Drupal методы оптимизации
      • 452 Кэширование страниц
      • 452 Оптимизация полосы пропускания
      • 452 Усечение таблицы сеансов
      • 453 Управление трафиком аутентифицированных пользователей
      • 453 Протоколирование в базе данных
      • 453 Протоколирование в журнале операционной системы
      • 453 Запуск cron
    • 454 Архитектуры
      • 454 Единственный сервер
      • 454 Отдельный сервер базы данных
      • 454 Отдельный сервер базы данных и кластер веб-серверов
      • 455 Балансировка загрузки
      • 455 Загрузки файлов на сервер и синхронизация
      • 455 Использование разделяемой, монтируемой файловой системы
      • 456 За рамками единственной файловой системы
      • 456 Множество серверов базы данных
      • 456 Репликация баз данных
      • 456 Секционирование баз данных
    • 456 Обнаружение узкого места
      • 457 Перегрузка центрального процессора веб-сервера
      • 458 Нехватка оперативной памяти на веб-сервере
      • 459 Идентификация ресурсоемких запросов базы данных
      • 459 Идентификация ресурсоемких страниц
      • 459 Идентификация ресурсоемкого кода
      • 460 Оптимизация таблиц
      • 460 Кэширование запросов вручную
      • 460 Изменение типа таблицы с MyISAM на InnoDB
    • 461 Резюме
  • 462 Глава 24. Инсталляционные профили
    • 462 Создание нового инсталляционного профиля
      • 463 Файл enhanced.info
      • 464 Файл enhanced.profile
      • 464 Файл enhanced.install
    • 478 Использование хуков hook_install_tasks и hook_install_tasks_alter
    • 479 Резюме
  • 480 Глава 25. Тестирование
    • 480 Настройка тестовой среды
      • 484 Способ определения тестов
    • 490 Тестовые функции
    • 493 Тестовые утверждения
    • 496 Резюме
  • 497 Приложение А. Справочник по таблицам базы данных
  • 540 Приложение Б. Ресурсы
  • 547 Предметный указатель

Инструкция как скачать книгу Тодд Томлинсон: CMS Drupal 7. Руководство по разработке системы управления веб-сайтом в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
CMS Drupal 7. Руководство по разработке системы управления веб-сайтом
Рейтинг книги:
5 голосов
1577

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: