 |
Joomla!: программирование
рекомендуем
Марк Декстер, Луис Лэндри
Год выпуска: 2013
Изд-во: Диалектика-Вильямс
ISBN: 978-5-8459-1798-0
Переплёт: твердый
592 страниц
Цена: 440.00 грн. Есть в наличии - дата отправки: 10 февраля На 1 книгу
|
Книга "Joomla!: программирование" удачно сочетает в себе справочное и учебное пособие для тех, кто собирается разрабатывать веб-приложения и строить динамические веб-сайты в специально созданной для этого программной среде Joomla. Рассмотрение вопросов программирования для Joomla начинается с состава и принципа действия Joomla, необходимых программных средств, знаний и навыков, а далее подробно разбираются конкретные примеры решаемых задач, иллюстрируемые исходным кодом и дополняемые уместной справочной информацией. В конечном итоге читатель имеет возможность освоить опробованные на практике приемы программирования, начиная с простого замещения шаблонов и компоновок и кончая разработкой компонентов по шаблону проектирования MVC и приложений на платформе Joomla.
Овладев искусством программирования для Joomla, вы сможете специально настраивать веб-сайты так, как того не позволяет сделать обычная настройка параметров, или устанавливать сторонние расширения. Это авторитетное и подробное руководство по программированию адресовано широкому кругу пользователей Joomla!: от начинающих, не имеющих никакого опыта работы с Joomla!, до опытных программистов, которым требуется быстро освоить последние версии Joomla: 1.6, 1.7 и 2.5.
В книге "Joomla!: программирование" представлены самые передовые приемы программирования, опробованные на практике ее авторами, Марком Декстером и Луисом Лэндри, написавшим немалую долю кода новой интегрированной среды Joomla!, подробно описаны многочисленные примеры исходного кода, а также приводится немало полезной справочной информации по всем затрагиваемым темам.
Это справочное и в то же время учебное пособие содержит подобные разъяснения всех вопросов написания программ для Joomla: от самых простых задач создания замещений шаблонов до самых сложных, связанных с разработкой компонентов по шаблону MVC и приложений на платформе Joomla.
Из этой книги читатель узнает, как:
- Подойти к Joomla! с точки зрения программирования. - Расширить Joomla! модулями, замещениями компоновок и подключаемыми модулями. - Выгодно использовать преимущества новой реализации шаблона проектирования MVC в Joomla! - Встраивать компоненты в пользовательскую и административную части веб-сайта. - Защищать веб-сайты с помощью новой, эффективной и удобной в работе системы списков контроля доступа. - Работать с базами данных и составлять сложные запросы к ним, в том числе и средствами нового класса JDatabaseQuery. - Расширять возможности веб-сайтов на Joomla средствами JavaScript и интегрированной среды MooTools. - Разрабатывать специальные структуры категорий для собственных веб-сайтов и расширений Joomla. - Организовать оперативное обновление своих специальных расширений одним щелчком кнопкой мыши. - Пользоваться платформой Joomla в качестве среды для разработки приложений.
Об авторах книги "Joomla!: программирование": Марк Декстер занимается программированием с 1970-х годов. Он основал коммерческую компанию по разработке программного обеспечения и руководил ею в течение 28 лет, прежде чем выйти в отставку и посвятить себя добровольной работе над открытым программным обеспечением. Он немало потрудился на самых разных участках проекта Joomla!, включая форумы пользователей и разработчиков, инициативную программу Google Summer of Code компании Google, составление документации и экранов оперативной справки. Марк принимал активное участие в процессе разработки Joomla, начиная с 2009 года, занимаясь исправлением программных ошибок, внедрением дополнительных средств и согласованием выпусков новых версий. Луис Лэндри написал большую часть интегрированной среды Joomla для версий 1.5 и 1.6 и в течение пяти лет был одним из главных разработчиков архитектуры Joomla. Свой первый опыт общения с компьютером он начал с программирования на языке Basic, пользуясь ПК на процессоре Intel 286 в офисе своего отца. С тех пор Луис приобрел опыт программирования на многих языках, включая низкоуровневые типа ассемблера x86, высокоуровневые вроде Java и интерпретируемые, подобные PHP. Он также основал робототехническую группу в своем университете и стал ее активным участником.
Содержание книги "Joomla!: программирование"
Благодарности 19 Об авторах 21 Предисловие 23 Опытные пользователи Joomla, только начинающие программировать 23 Опытные программисты, только начинающие осваивать Joomla 24 Разработчики, которым требуется быстро освоить версию 2.5 Joomla 24 Читатели, которым требуется узнать больше о Joomla и разработке расширений 24 Вопросы, не рассматриваемые в книге 24 Структура книги 25 Трудности веб-разработки - нужно слишком много знать! 25 Нововведения в версии Joomla 2.5 26 Система списков контроля доступа 27 Определяемые пользователем уровни категорий (и больше никаких разделов) 27 Класс JForm 27 Класс JTableNested 27 Класс JDatabaseQuery 27 Версия PHP 5.2 28 Версия MySQL 5.0.4 28 Формат файлов языковой поддержки 28 Упрощенная процедура обновления 28 Усовершенствования шаблона MVC 28 Поддержка других баз данных 29 Усовершенствованный поиск 29 Веб-сайт, сопровождающий книгу 29 Добро пожаловать в сообщество разработчиков Joomla 29 От издательства 30 Глава 1. Основы разработки в Joomla! 31 Разрабатывать в Joomla совсем не трудно! 31 Техническая среда Joomla 31 Требования к программированию для Joomla 33 Способы расширения Joomla 34 Открытость кода означает полный контроль над ним 34 Изменения на веб-странице с помощью файлов замещения 35 Расширения 36 Подключаемые модули 37 Модули 39 Компоненты 40 Языковые расширения 42 Шаблоны 44 Выбор типа расширения для конкретного проекта 46 Применение Joomla в качестве платформы или интегрированной среды 46 Резюме 47 Глава 2. Подготовка рабочей станции к разработке в Joomla! 49 Требования к запуску Joomla 49 Папка DocumentRoot в Apache 50 Получение своевременных инструкций 51 Платформа Windows 51 Платформа Mac OS X 52 Платформа Linux 52 Владелец файлов и папок по умолчанию 53 Рабочие инструменты 53 Интегрированная среда разработки в сравнении с текстовым редактором 53 Варианты IDE с открытым кодом 54 Коммерческие IDE 68 Текстовые редакторы 68 Другие инструментальные средства 69 Программное обеспечение контроля версий 69 Программное обеспечение автоматического построения проектов (Ant и Phing) 70 Программы автоматизации тестирования 70 Резюме 71 Глава 3. Принцип действия Joomla! 73 Краткий обзор папок Joomla 74 Пользовательская и административная части 74 Папка cache 75 Папка cli 75 Папка components 76 Папка images 77 Папка includes 78 Папка installation 79 Папка language 79 Папка libraries 80 Папка logs 80 Папка media 80 Папка modules 80 Папка plugins 82 Папка templates 83 Папка tmp 83 Папка administrator 83 Платформа Joomla 89 Веб-программирование в сравнении с обычным программированием 91 Сохранение состояния программы 92 Контроль и проверка команд 94 Внутреннее строение цикла выполнения команд в Joomla 96 Загрузка файла index.php 96 Проверка среды выполнения 97 Определение мест расположения файлов 98 Загрузка интегрированной среды Joomla 101 Начало или продолжение сеанса 102 Маршрутизация URL 103 Выполнение компонента 105 Воспроизведение страницы 111 Вывод страницы 116 Краткие итоги сеанса работы с веб-сайтом Joomla 117 Условные обозначения имен 119 Глобальные объекты 119 Краткий обзор таблиц базы данных 120 О префиксах имен таблиц 121 Резюме 124 Глава 4. Расширение Joomla замещениями компоновки 125 Основы применения шаблонов 125 Папки и файлы шаблонов 126 Файл шаблона index.php 127 Места расположения в шаблонах 130 Параметры настройки шаблонов 134 Стилевая рамка модуля 137 Копирование шаблона 139 Замещение компоновки модуля последних статей в шаблоне 142 Настройка модуля в выборочных данных 142 Создание файла замещения компоновки 144 Специальная настройка компоновки 145 Устранение ошибки с помощью функции strip_tags() 148 Применение метода truncate() из класса JHtmlString 150 Применения синтаксиса подчеркивания 154 Изменение внешнего вида компонента регистрации пользователя 155 Альтернативные компоновки 159 Добавление новой компоновки пункта меню 160 Переопределение параметров 161 О принципе действия замещений 163 Замещение других элементов оформления веб-сайта 164 Стилевая рамка модуля: добавление нового стиля оформления модуля 164 Языковые замещения: добавление перевода в замещение 169 Замещения таблиц и моделей 172 Резюме 172 Глава 5. Расширение Joomla подключаемыми модулями 173 Что такое подключаемый модуль 173 Принцип действия подключаемых модулей 174 Условные обозначения подключаемых модулей 174 Типы подключаемых модулей и место для их ввода 175 Аутентификация 175 Контрольное изображение 175 Содержимое 175 Редакторы 175 Editors-XTD 176 Расширение 176 Поиск 176 Интеллектуальный поиск 176 Система 176 Пользователь 176 Краткий обзор избранных базовых подключаемых модулей 177 Системный подключаемый модуль SEF 177 Подключаемый модуль аутентификации 180 Подключаемый модуль содержимого 189 Подключаемый модуль для обработки события onBeforeCompileHead 194 Подключаемый модуль для регистрации пользователей 200 Обновление файла замещения подтверждения 200 Ввод исходного XML-файла 201 Ввод исходного PHP-файла 202 Ввод файлов языковой поддержки 204 Проверка подключаемого модуля 206 Упаковка подключаемого модуля 207 Усовершенствованный подключаемый модуль для регистрации пользователей 209 Создание главного XML-файла для подключаемого модуля 210 Создание XML-файла для разметки формы 210 Создание исходного файла PHP для подключаемого модуля 212 Ввод файлов языковой поддержки 213 Проверка подключаемого модуля 214 Упаковка подключаемого модуля 215 Добавление параметров в подключаемый модуль 215 Применение подключаемых модулей для замещения основных классов 218 Каким образом импортируются подключаемые модули 218 Каким образом загружаются классы 219 Пример замещения класса JTableNested 220 Передовой опыт разработки и применения подключаемых модулей 222 Резюме 223 Глава 6. Расширение Joomla модулями 225 Что такое модуль 225 Модули в сравнении с компонентами 225 Краткий обзор базового модуля 226 XML-файл модуля 227 Главный файл модуля 227 Вспомогательный класс модуля 230 Файл исходной компоновки 234 Отображение статей текущего автора 236 Структура модуля 236 XML-файл модуля 237 Исходный файл PHP 241 Вспомогательный файл 243 Файл исходной компоновки 254 Файлы языковой поддержки 255 Проверка достоверности параметров средствами класса JForm 256 Справочный файл 264 Упаковка модуля 265 Краткий обзор созданного модуля 265 Передовой опыт разработки и применения модулей 266 Резюме 266 Глава 7. Компоненты, часть I. Контроллеры и модели 267 Что такое компонент 267 Основные функции компонентов 268 Своеобразие компонентов 268 Шаблон проектирования MVC 269 Административная часть компонента Weblinks 270 Установочные файлы 271 Меню компонентов 272 Параметры компонента 273 Вспомогательные классы и методы 273 Точка входа в компонент Weblinks 274 Функции контроллера в компоненте Weblinks 276 Модели компонента Weblinks 292 Табличный класс компонента Weblinks 300 Резюме 303 8. Компоненты, часть II. Представления, класс JForm и пользовательская часть 305 Представления и методы отображения 305 Представление списка веб-ссылок 306 Файл исходной компоновки 309 Представление одиночных веб-ссылок 317 Применение класса JForm в компоненте Weblinks 318 Сохранение объекта типа JForm в оперативной памяти 323 Видоизменение форм в динамическом режиме 324 Воспроизведение формы 325 Краткие итоги рассмотрения административной части компонента Weblinks 331 Пользовательская часть компонента Weblinks 331 Сходство структуры файлов и применения шаблона MVC 331 Типы пунктов меню 334 Маршрутизация в пользовательской части веб-сайта 337 Пользовательское представление ленты новостей 348 Резюме 349 Глава 9. Компоненты, часть III. Пример разработки административной части компонента 351 Краткий обзор назначения создаваемого примера компонента 351 Детальная разработка компонента 352 Файлы из административной части компонента 353 Экран Subscriptions Manager: Subscriptions 355 Исходный контроллер 356 Контроллер подчиненного диспетчера и задачи на панели инструментов 358 Представление диспетчера 360 Вспомогательный класс 364 Модель диспетчера 365 Таблицы базы данных 370 Компоновка экрана диспетчера 372 Экран Subscriptions Manager: Add and Edit 376 Задачи контроллера 377 Представление ввода и редактирования подписки 379 Модель ввода и редактирования подписок 381 Форма ввода и редактирования подписок 386 Табличный класс 391 Файлы языковой поддержки 394 Установка и настройка компонента 396 Резюме 398 Глава 10. Компоненты, часть IV. Пример разработки пользовательской части компонента 399 Краткий обзор используемых файлов 399 Установочный XML-файл 400 Точка входа в компонент 401 Исходный контроллер 401 Представление категории подписок 403 XML-файл для разметки пункта меню 403 Представление категории 405 Модель 410 Вспомогательный файл категорий 414 Файлы компоновки категорий 415 Представление подписки 419 Методы контроллера для редактирования подписки 420 Представление и форма редактирования 422 Компоновка формы редактирования 425 Задача подписки 426 Модель для формы 429 Компоновка экрана с благодарностями за подписку 433 Файл языковой поддержки 435 Упаковка компонента 437 Новая функция: отчет о подписчиках в административной части компонента 437 Новая кнопка панели инструментов 438 Метод контроллера для выполнения новой задачи 439 Класс новой модели 439 Метод контроллера для создания файла экспорта 443 Составление отчета 444 Практические соображения 445 Резюме 446 Глава 11. Работа с базой данных 447 Краткий обзор баз данных 448 Создание и видоизменение таблицы по командам DDL 449 Команда CREATE TABLE 450 Типы данных 453 Атрибуты столбцов 455 Команда ALTER TABLE 456 Команда DROP TABLE 457 Применение программы phpMyAdmin 457 Тестирование и отладка запросов SQL 457 Создание сценариев DDL 459 Резервное и обычное копирование базы данных 461 Формирование запросов SQL к базе данных с помощью команд DML 462 Запросы по команде SELECT 462 Запросы по команде UPDATE 470 Запросы по команде INSERT 471 Запросы по команде DELETE 471 Запросы по команде UNION 472 Выражения в запросах 472 Разработка структуры таблиц 472 Справочные таблицы 473 Поля ключей и внешние ключи 473 Таблицы соответствий 474 Таблицы предыстории 475 Работа с базой данных в среде Joomla 475 Применение класса JDatabaseQuery 476 Обработка данных по запросу 482 Обработка запросов по командам INSERT, UPDATE и DELETE 482 Обработка запросов по команде SELECT 482 Резюме 485 Глава 12. Применение JavaScript и MooTools в Joomla! 487 Общее представление о JavaScript 487 Принцип действия JavaScript 488 Общее представление о MooTools 489 Порядок применения JavaScript и MooTools в Joomla 490 Встроенные средства JavaScript 491 Поведение calendar 492 Поведение caption 493 Поведение colorpicker 493 Проверка достоверности формы 494 Поведение framework 498 Поведение highlighter 498 Поведение keepalive 498 Поведение modal 499 Виды поведения checkall и multiselect 504 Поведение noframes 505 Поведение switcher 506 Поведение tooltip 509 Поведение tree 510 Поведение uploader 512 Применение расширений MooTools 513 Применение AJAX в Joomla 514 Применение других интегрированных сред JavaScript 518 Резюме 520 13. Применение платформы Joomla! в качестве среды для разработки приложений 521 Общее представление о платформе Joomla 521 Причины выделения платформы Joomla в отдельный проект 522 Назначение платфомы Joomla 522 Примеры разработки программ на платформе Joomla 523 Подготовка проекта на платформе 523 Приложение командной строки Hello World 525 Веб-приложение Hello WWW 526 Пример текущего контроля подписок 528 Структура проекта 529 Конфигурационный файл 529 Контрольный файл 530 Файл текущего контроля подписок 532 Выполнение приложения для текущего контроля подписок 542 Выполнение программ командной строки в системе Joomla CMS 543 Резюме 544 Приложение А. Краткий курс PHP и ООП 545 Структура файлов PHP 545 Файлы, содержащие только исходный код PHP 545 Файлы, содержащие исходный код PHP и HTML 545 Основы синтаксиса языка PHP 546 Наиболее важные символы 546 Наиболее употребительные операторы 548 Арифметические и строковые операторы 548 Задание и приведение типов переменных 548 Логические операторы 549 Условные операторы 549 Оператор выбора switch 551 Операторы цикла 551 Циклы foreach 551 Циклы for 552 Циклы do/while 552 Оператор continue 553 Альтернативный синтаксис 553 Переменные 554 Объявление переменных 554 Область действия переменных 554 Массивы 555 Обращение с массивами 556 Символьные строки 556 Константы и текущий каталог 556 Функции и методы 557 Структура функции 557 Область действия переменной в функции 558 Передача значений по ссылке 558 Включение файлов и их типы 559 Файлы объявления классов 559 Файлы объявления функций 559 Простые сценарии 560 Смешанные файлы 560 Включение файлов 560 Основы ООП 561 Классы и объекты 561 Метод-конструктор 561 Создание объектов 561 Стандартный класс 562 Расширение классов и наследование 562 Переопределение методов 563 Модификаторы public, protected и private 563 Статические методы, поля и переменные 563 Переменная $this и ключевые слова self и parent 564 Простая отладка программ 565 Просмотр определенных переменных 565 Просмотр трассировки стека 565 Более совершенные приемы программирования 566 Применение логического оператора || вместо условного оператора if 566 Связывание методов в цепочку 566 Волшебные методы PHP 567 Переменные в качестве имен классов и методов 568 Регулярные выражения 568 Приложение Б. Типы фильтров в Joomla! 569 Фильтрация элементов разметки в коде HTML 570 Фильтрация данных в приложениях Joomla 570 Фильтрация в классе JForm 570 Фильтрация в классах JRequest и JInput 571 Непосредственное применение класса JFilterInput для фильтрации данных 572 Приложение В. Методы из класса JHtml 573 Вызов методов из класса JHtml 573 Специальные классы типа JHtml 574 Методы из класса JHtml 574 Метод link() 574 Метод image() 574 Метод stylesheet() 574 Метод script() 575 Метод calendar() 575 Метод date() 575 Классы из папки html 575 Класс JHtmlBatch 575 Класс JHtmlBehavior 576 Класс JHtmlCategory 576 Класс JHtmlContent 576 Класс JHtmlContentLanguage 576 Класс JHtmlEmail 576 Класс JHtmlForm 576 Класс JHtmlGrid 577 Класс JHtmlImage 577 Класс JHtmlJGrid 577 Класс JHtmlList 577 Класс JHtmSelect 577 Класс JHtmSliders 578 Класс JHtmString 578 Класс JHtmTabs 578 Приложение Г. Словарь специальных терминов 579 Предметный указатель 585
|