Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Создание и настройка базового Модуля





Помощь в ✍️ написании работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Модули являются одновременно простыми и гибкими. Вы можете создать Модуль, который просто выводит статический текст или который запросит удаленную БД о такой вещи, как погода.

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

Чтобы создать Модуль для наших Обзоров, мы должны создать каталог mod_reviews в /modules. Мы также должны создать файл mod_reviews.phpвнутри mod_reviews.

Для начала создадим основной Модуль, который отображает ссылки на самые последние Обзоры. Вфайлеmod_reviews.php, добавьтеследующийкод:

 

 

<?php

defined('_JEXEC') or die('Restricted access');

$items = $params->get('items', 1);

$db =& JFactory::getDBO();

$query = "SELECT id, name FROM #__reviews WHERE

published = '1' ORDER BY review_date DESC";

$db->setQuery( $query, 0, $items );

$rows = $db->loadObjectList();

foreach($rows as $row)

{

echo '<a href="' . JRoute::_('index.php?option=com_reviews&id='

. $row->id . '&task=view') . '">' . $row->name .

'</a><br />';

}

?>

 

 

После сохранения и обновления страницы, ваш Модуль должен выглядеть так:

 

 

Когда Модуль загружен, подгружается объект $params. Его можно использовать для получения и установки параметров. Когда мы добавили строку в jos_modules, столбец params содержит три значения: одно для items(значение 3), еще одно для style(установлено в simple), и одно для random(значение 1). Загрузим в $items параметр items с помощью функцииget(), по умолчанию 1 (если значение не существует)

 

При желании, вы можете использовать функцию set($name, $value), чтобы отменить или добавить параметр для Модуля.

 

 

После получения ссылки на объект БД, мы пишем запрос, чтобы выбрать idи name из jos_reviews и обратном хронологическому порядке от даты опубликования. Мы используем второй и третий параметры setQuery() для генерацииLIMIT, который автоматически добавляется в запрос. Это гарантирует правильноеиспользование синтаксиса для каждоготипа БД. После того как запрос будет создан, мы получаем все соответствующие строки из БД, и проходя через них обеспечиваем каждыйОбзор соответствующей ссылкой

Воспользуемся некоторыми помощниками (classHelper)

Мы хотели бы, чтобы наш Модуль делал больше, чем просто показывал ссылки на Обзоры. Было бы полезно включить резюме Обзора вместе с каждой ссылкой или возможность отображения Обзора в случайном порядке. Однако, в данный момент создано недостаточно для построения кодаэффективно обрабатывающего различные сценарии. Чтобы это исправить, мы централизуемнеобходимые функции во вспомогательный классhelper. Создайтефайл helper.php в /modules/mod_reviewsи добавьте следующий код:

 

<?php

defined('_JEXEC') or die('Restricted access');

class modReviewsHelper

{

function getReviews(&$params)

{

$items = $params->get('items', 1);

$db =& JFactory::getDBO();

$query = "SELECT id, name, quicktake FROM #__reviews

WHERE published = '1' ORDER BY review_date DESC";

$db->setQuery( $query, 0, $items );

$rows = $db->loadObjectList();

return $rows;

}

function renderReview(&$review, &$params)

{

$link = JRoute::_

("index.php?option=com_reviews&task=view&id=" .

$review->id);

require(JModuleHelper::getLayoutPath('mod_reviews', '_review'));

}

}

?>

 

 

Функция getReviews() выполняет те же действия с БД, что и оригинальный Модуль, но она возвращает строки вместо того, чтобы проходить через них. Таким образом, мы отделяем функциональные возможности БД от логики отображения. Столбец quicktake был добавлен в запрос, чтобы собрать необходимое для отображения расширенного форматаОбзора

Мы собираемся использовать renderReview() для вывода одного Обзора. Чтобы создать ссылку на Обзор, вставим

index.php?option=com_reviews&task=view&id= и idОбзора в JRoute::_() для создания SEF URL. Наконец, мы используем require()и JModuleHelper функцию getLayoutPath()чтобы включить шаблон _reviewкоторый мы сейчас и собираемся создать

Доверь свою работу ✍️ кандидату наук!
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой



Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.