Действия

Index.php Index2.php и Index3.php в Joomla 1.0.x

Материал из База знаний Joomla


Общая информация

Файлы index.php, index2.php и index3.php это входные точки исполнения любого запроса пользователя. Хотя никто и не мешает вам позволить пользователю запрашивать непосредственно отдельные файлы ваших приложений, если это необходимо. Но стандартным способом вызова компонентов является именно вызов через строку браузера посредством конструкции:

index.php?option=com_component

Переменная option появилась еще в Mambo и дошла без изменений до наших дней. Она являет собой имя компонента (а еще точнее имя директории с компонентом) установленного в Joomla.

Фронт часть

Мы знаем, что Joomla делится на две части: фронт и админ-часть. Так вот если мы взглянем на файловую структуру дистрибутива, то в корне Joomla найдем два файла index.php и index2.php. Поначалу может показаться странным наличие двух файлов с почти схожими именами. Но данные файлы выполняют почти схожие задачи, с одним лишь отличием. Основная цель любого из этих файлов – вызвать на исполнение компонент, заданный в качестве параметра. Но первый помимо этого Index.php еще и исполняет какой-либо шаблон, т.е. подгружает все модули, которые назначены для данной страницы и выводит страницу пользователю. Index2.php ничего не знает о модулях и совершает исключительно вызов компонента.

Зачем же нужен просто вызов компонента, спросите вы. На самом деле это очень распространенная задача. Например, вам нужно показать некую картинку (ту же защиту от ботов) пользователю, вводящему некие данные в форму.

И если саму форму можно и нужно выводить обычным способом через index.php, то вот указав в качестве исходного пути у картинки примерно такой путь:

http://сайт.ру/index2.php?option=com_component&task=generate_image&no_html=1

Вы попадете в ваш же компонент, но благодаря параметру no_html кроме непосредственно вывода картинки (а так же заголовков о типе данных) ничего не будет выведено - пользователь ее точно увидит, но если бы мы не использовали возможности файла index2.php, то вместе с бинарными данными изображения был бы выведен еще и шаблон, и человек ничего бы кроме абракадарбры не увидел. Так же данный способ общения со своим компонентом может быть удобен при создании AJAX приложений, когда требуется отправить запрос, ответ на который содержит только некие XML-данные и больше ничего (вообще ничего).

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


Админ-часть

В админ-части появляется третий файл index3.php а два первых немного меняют свои функции. Первый предназначен исключительно для входа пользователя и нас более не интересует. А вот функции index.php во фронте переходят в файл /administrator/index2.php, а файла index2.php в /administrator/index3.php. Все функции и варианты использования абсолютно те же самые.