Креатив
Верный ход
Качество
Надёжность

В этом разделе подробно рассмотрены основные классы ядра. Дополнительную документацию можно найти на официальном сайте http://api.joomla.org.

Эта ссылка использует стандартные обозначения UML:

methodOrFunctionName(paramsList) : returnType

Следующий пример описывает метод, называемый someMethod с двумя параметрами anArray и XYZ, который возвращает строку. Параметры имеют типы массива и Boolean соответственно. Тип массива включает ассоциативные массивы; более подробная информация о массиве параметров и возвращаемых типов приведены в описании каждого метода. Амперсанд обозначает, что anArray будет передаваться по ссылке:

someMethod( &anArray : array, xyz : boolean ) : string

Следующий пример возвращает ссылку (амперсанд обозначается перед именем метода) к экземпляру класса JObject. Методы и функции, которые возвращают ссылки должны использовать = & оператор присваивания, чтобы предотвратить копирование возвращаемого значения.

Возвращаемый объект может быть подклассом JObject. Строка сообщения является необязательным параметром, и если он не указан, то будет содержать значение foobar по умолчанию:

&anotherMethod( message : string='foobar' ) : JObject

И этот последний пример не возвращает значение, это возвращает пустой тип. Параметр SomeParameter имеет смешанный тип. Смешанный тип означает, что значение может быть любого типа:

andAnotherMethod( someParameter : mixed ) : void

Важно помнить, что все методы и свойства, имена которых начинаются с подчеркивания, следует рассматривать как частный/защищенный. Но существует одно исключение. Методы, которые названы исключительно подчеркиванием _ (), не должны считаться частными. Это название метода используется, когда у класса есть метод, который мы часто используем. Например:

JText::_('translate some text').

Вернуться к оглавлению

Приложение состоит из трех основных разделов:

  • Классы
  • Параметры
  • Конфигурация

Существуют также некоторые официальные документы по Joomla!:

Вернуться к оглавлению

Внешние и внутренние запросы размещены в файлах index.php корневой директории и administrator/index.php соответственно. Когда мы создаём расширения для Joomla!, мы ни когда не должны создавать новых точек входа. При использовании нормальной точки входа, мы гарантируем что не нарушаем безопасность и другие важные процедуры.

Вернуться к оглавлению

Чтобы описать то, как процессы внешнего интерфейса обрабатывают запросы, мы используем ряд схем. Процессы внутреннего интерфейса очень похожи.

Прим. перев.: далее приводятся схемы весьма плохого качества. К сожалению, лучшего качества у меня нет.

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

Получение запроса внешнего интерфейса Загрузка ядра Сборка приложений

Общий процесс,

обработка index.php

Загрузка необходимого фрэймворка

и применение классов

Построение объекта

приложения JSite

 

Инициализация приложений Маршрут приложений
Подготовка приложения Определение маршрута приложения

 

Отправка приложения Визуализация приложения

Выполнение определённого

маршрута через компонент

Визуализация приложений

(точный тип рендеринга зависит от типа документа)

Вернуться к оглавлению

Приложение - это глобальный объект, используемый для обработки запроса. Есть два приложения, которые нам интересны - это JSite и JAdministrator. Joomla! использует JSite и JAdministrator для обработки внешних и внутренних запросов соответственно. Классы приложений расширяют абстрактный базовый класс JApplication; большая часть функциональности JSite и JAdministrator - то же самое.

Документ представляет собой глобальный объект, используемый для буферизации ответа. Есть целый ряд различных документов: HTML, PDF, RAW, ошибки. Документ HTML использует шаблоны сайтов и отдаёт XHTML-страницу. Документ в формате PDF отдаёт содержание в формате PDF. RAW-документ позволяет вывести исходные данные без дополнительного форматирования. Документы подписки используются для отображения лент новостей. Документы-ошибки отображают ошибки в шаблонах.

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

Объект приложения всегда хранится в переменной $mainframe. Объект приложения является глобальной переменной, которая может быть доступна внутри функций и методов, объявив $mainframe глобальной:

/**
* Pass-through method to check for admin application.
*
* @access public
* @return boolean True if application is JAdministrator
*/
function isAdmin()
{
global $mainframe;
return $mainframe->isAdmin();
}

В отличие от приложения, для доступа к глобальным объектам мы используем метод JFactory::getInstance()

$document =& JFactory::getDocument();

Обратите внимание, что мы используем оператор =& для получения документа. Это гарантирует, что мы получаем ссылку на глобальный объект документа и что мы не создаём копию документа.

Вернуться к оглавлению

Войти на сайт

Запомнить меня

Новости

  • Перевод Mastering Joomla! 1.5

    14.03.2013

    Продолжается перевод книги "Mastering Joomla! 1.5". На данный момент полностью переведено 2 главы. Полностью перевод книги...

    Подробнее...

  • Модернизация сайта

    28.05.2012

    Уважаемые посетители! Мы полностью модернизировали наш сайт и надеемся что сейчас им станет...

    Подробнее...