Шрифт:
модулииспользуются для отображения небольших фрагментов контента, обычно в левой или правой колонке или верхней или нижней областях страницы;
плагиныпозволяют зарегистрировать функции и классы для обработки каких-либо событий, вызванных Joomla, например, поиск по сайту;
языковые файлыпозволяют представить контент Joomla на нескольких языках;
шаблоныотвечают за внешний вид сайта.
Фронтенд и бэкенд
Joomla делится на фронтенд– часть сайта, доступная пользователю, и бэкенд– систему администрирования сайта. Соответственно, в Joomla всего две точки входа - index.php для фронтенда и /administrator/index.php для бэкенда. Чтобы вызвать какой-либо установленный на сайте компонент, необходимо передать его имя (с префиксом "com_") скрипту index.php или /administrator/index.php в переменной option в строке URL. Например, переход по ссылке ссылка: http://localhost/joomla/index.php?option=com_bannersприведет к вызову компонента banners.
Большинство компонентов для Joomla делятся на фронтенд и бэкенд, и их код распределяется по двум папкам, каждая из которых называется по схеме com_<имя компонента>. В каждой из этих папок должен находиться файл, являющийся точкой входа, и называющийся так же, как компонент, т.е. <имя компонента>.php. Схематически это можно изобразить так:
administrator |- components ..|- com_mycomponent ....|- mycomponent.php components ..|- com_mycomponent ....|- mycomponent.php
Предопределенные константы
В Joomla определен ряд констант, хранящих значения путей: JPATH_BASE - путь к корневой директории текущего приложения; JPATH_ROOT - путь к корневой директории сайта, JPATH_COMPONENT - путь к директории компонента, JPATH_COMPONENT_SITE - путь к фронтенду компонента, JPATH_COMPONENT_ADMINISTRATOR - путь к бэкенду компонента и т.д. Полный их список можно найти в документации. Все эти константы возвращают значения абсолютных путей в файловой системе. Если вам необходимо получить путь для использования в URL, следует воспользоваться методом JURI::base.
В файле index.php, расположенном в корневой директории Joomla, определена константа _JEXEC. Большинство PHP-файлов, написанных под Joomla, начинаются с выражения
defined('_JEXEC') or die('Restricted access');
Данное выражение осуществляет проверку, был ли файл, в котором оно записано, вызван из Joomla. Таким путем запрещается доступ к файлу извне, чтобы предотвратить взлом сайта.
Еще одна популярная константа Joomla - DS, разделитель директорий, принятый в конкретной операционной системе (например, прямой или обратный слеш).
Языковые файлы
Joomla позволяет создать мультиязыковый сайт, задавая для каждого пользователя язык сайта и панели управления. Данная возможность реализована следующим образом: в кодах расширений при необходимости вывести на экран какой-либо заранее известный текст (например, сообщение об успешном выполнении запроса пользователя) вместо этого текста записывается его эквивалент ( ключ). Для каждого языка, поддерживающегося данным расширением, создаются языковые файлы, которые хранят переводыдля всех ключей, встретившихся в кодах расширения. Например, для ключа "COM_MYCOMPONENT_HELLO_WORLD" перевод на английский язык может задаваться как "Hello, world!", на русский - "Здравствуй, мир!", на французский - "Bonjour le monde!" и т.д.
Языковые файлы фронтенда хранятся в папке /language/<ln-LN>, где <ln-LN> - код языка по стандарту RFC3066. Файл должен называться по схеме <ln-LN>.<префикс><имя расширения>.ini, где префикс зависит от вида расширения: "com_" (компонент), "mod_" (модуль), "tpl_" (шаблон) и т.д. Например, путь к языковому файлу компонента contact для русского языка следующий: /language/ru-RU/ru-RU.com_contact.ini
Языковые файлы бэкенда хранятся в папке /administrator/language/<ln-LN>.
Кроме файлов .ini, для расширения должен также быть создан файл *.sys.ini, в котором могут храниться переводы сообщений, выводящихся после установки расширения, переводы пунктов меню, создающихся для компонента в панели управления, переводы параметров компонента и переводы надписей, выводящихся в менеджере расширений. Например, путь к файлу .sys.ini компонента contact для русского языка выглядит так: /administrator/language/ru-RU/ru-RU.com_contact.sys.ini
Содержимое языкового файла состоит из пар "ключ-значение" и, при необходимости, комментариев. Пустые строки игнорируются. Комментарии начинаются с символа ";". Например: