Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Урок 8. Список новостей пользовательской части

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



То есть в любом случае пользовательская часть работает по такой же логической схеме, которую мы с вами уже реализовали в панели администратора. Соответственно сейчас переходим в исходники CMS Joomla, далее components, то есть компоненты, которые установлены для пользовательской части cms, далее каталог com_news. И начинаем, как обычно, с главной точки входа index.php и контроллера controller.php.

Поэтому данные файлы я открываю в текстовом редакторе. Их код аналогичен коду панели администратора. Поэтому открываем точку входа в панель администратора компонента новостей, копируем и добавляем в код глобальной точки входа в пользовательскую часть. Здесь мы проверяем, определена ли системная константа, далее получаем объект главного контроллера компонента $controller, то есть используя родительский контроллер JControllerLegasy мы вызываем на исполнение метод getInstance, который реализует синглтон и возвращает объект класса, часть имени которого передается в качестве параметра News. То есть здесь мы возвращаем объект класса NewsController.

Далее мы сканируем адресную строку, то есть мы получаем объект класса JFactory, который используется для работы с различными входными параметрами. И у объекта $controller вызываем на исполнение метод execute(), который выполняет поставленную задачу, при этом пытаемся получить значение данной задачи из входных параметров. То есть пытаемся получить содержимое параметра task у объекта JFactory. Далее выполняем перенаправление, если таковы были установлены в контроллере. То есть метод redirect() осуществляет перенаправление, которое установлено зарегистрированым методом SetRedirect. Сохраняем изменения.

Далее аналогично создаем контроллер, то есть класс NewsController. Код данного контроллера мы позаимствуем непосредственно у контроллера панели администратора. Единственная, что нам сейчас не нужно свойство $default_view. Соответственно удаляем данное свойство, сохраняем изменения. Вот и точка входа и главный контроллер у нас уже реализованы. Теперь необходимо создать вид.

Начнем с того, что возвращаемся в исходнике компонента в каталоге views создаем вид news. Вид, который будет использоваться для отображения списка новостей, добавленных в базу данных. Далее переходим в данный каталог и создаем логический файл вида. То есть view.html.php. Далее создаем каталог tmpl, в котором мы будем хранить макет вида. И в данном каталоге создаем макет default.php.

Возвращаемся в файл view.html.php. Здесь мы должны описать класс будущего вида, то есть класс имя компонента NewsViewNews. Данный класс наследует функционал родительского класса JViewLegacy. Внутри данного класса мы переопределяем метод display(), который отобразит данные на экране. При этом мы должны вызвать на исполнение родительский метод display(), который и погрузит нужный макет и отобразит данные на экране. При этом данные мы должны сформировать, а значит, мы обращаемся к свойству items (данное свойство мы здесь же и объявляем: protected $items), и данные вида сформируют модель. То есть из вида мы должны осуществить запрос данных у модели, а значит, мы вызываем на исполнение метод-посредник get, который обратится к модели и вызовет на исполнение метод get('Items').

Модель мы будем создавать как наследник глобального класса модели JModelsList а значит данный метод уже описан у модели. То есть метод getItems уже описан, единственно необходимо создать…


Для того, чтобы полностью разобраться, как отобразить в пользовательской части сайта список ранее добавленных новостей. При этом Вы узнаете, как формируется пользовательская часть компонента, как реализовать ссылку в главном меню сайта на интересующий вид компонента, а также как выбрать из базы данных записи по определенным условиям. Для этого смотрите видео-урок канала WebForMySelf на YouTube:

Продолжение → «Урок 9. Страница детального просмотра новости»
Ссылка на оглавление со списком всех уроков мини-курса WebForMySelf «Создание компонента для Joomla 3 за два вечера»

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Войдите чтобы комментировать

Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'