Урок 7. Отображение списка добавленных новостей

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



Переходим в исходник компонента новостей, в каталог views, нас интересует вид news. Открываем файл view.html.php в текстовом редакторе. В методе display() мы обращаемся к свойству items с объектом данного вида. Данное свойство мы здесь же и опишем protect $items. Соответственно, в данное свойство сохраним массив объектов с информацией по новостям, которые добавлены в базу данных. При этом данный массив сформирует метод модели get('Iterms'). Пэтому обращаемся к методу посреднику get, который позволяет нам получить доступ к методам модели и вызываем на исполнение метод get('Iterms'). То есть здесь мы обращаемся к методу модели getIterms. Непосредственно из вида мы обращаемся к модели.

Также здесь мы с вами обратимся к свойству pagination. В данное свойство мы сохраняем объект постраничной навигации. Потому что, если мы отображаем на экран некий список элементов, значит обязательно необходимо использовать постраничную навигацию для того, чтобы порционно отображать на экран определенное количество элементов. Соответственно метод, который вернет объект постраничной навигации это метод моделей get('Pagination'). То есть вы данной строке мы обращаемся к методу getPagination. Сохраняем изменения.

Сейчас нам необходимо перейти в модель, а значит переходим в исходники компонента com_news, далее models, далее создаем модель news.php. Напоминаю: имя модели совпадает с именем вида. Мы работаем с видом news, а значит и модель необходимо формировать в файле news.php.

Проверяем, определена ли системная константа, далее формируем класс будущей модели. То есть class: дальше имя компонента News, дальше ключевое слово Model, которое указывает, что данный класс принадлежит к моделям, и соответственно имя модели News. Данный класс наследует функционал от родительского класса JModelList. Это еще один родительский класс модели, который используется для работы со списком элементов. То есть нам необходимо отобразить несколько новостей, то есть те новости, которые добавлены в базу данных. Это список, а значит, для работы со списком мы используем родительский класс JModelList.

В данном классе уже описан метод getItems и уже описан метод getPagination. Метод getItems работает с неким SQL-запросом, который должен вернуть метод getListQuery. Соответственно изначально данный метод пуст, и мы должны переопределить данный метод, дабы сформировать sql-запрос, который будет выполнен для выборки необходимых элементов и необходимых таблиц. То есть по сути в родительской модели в методе в классе JModelList описана заготовка метода get('Iterms'). Его функционал полностью определен, но работает он с определенным запросом, который мы должны сформировать. Значит в модели мы формируем закрытый метод protected function getListQuery, который должен вернуть SQL-запрос, который впоследствии будет выполнен методом get('Iterms'). Таким образом будет осуществлена выборка данных из базы данных.

Как сформировать SQL-запрос? Во первых мы создаем временную переменную $db, и в данную переменную мы должны сохранить объект драйвера по работе с базой данных. Для получения объекта драйвера, мы обращаемся классу JFactory (конструктор объектов) и вызываем на исполнение метод getDbo()


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

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

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню