Разрботка расширений для CMS Joomla - Страница 27

Изменить размер шрифта:

Доступ к переменной list осуществляется через $this, т.к. это поле текущего класса QuestionViewAll.

Просмотр списка вопросов из какой-либо категории или из всех категорий

Создайте файл /com_myquestions/views/category/view.html.php:

getModel(); $list=$model->getList(); $name_cat=$model->getCatName(); $is_all_cat=$model->isAllCat(); for ($i=0; $ilink=JRoute::_('index.php?option='.$option.'&id='.$row->id.'&view=question&task=show'); if ($is_all_cat) $row->link_cat=JRoute::_('index.php?option='.$option.'&id='.$row->id_cat.'&view=category&task=show'); } $this->assignRef('list', $list); $this->assignRef('name_cat', $name_cat); $this->assignRef('is_all_cat', $is_all_cat); parent::display($tpl); } } ?>

Данный код в целом аналогичен коду метода QuestionViewAll::display(). Если выводится список вопросов сразу из всех категорий, то в name_cat будет храниться текст "Все вопросы", а к объекту-представителю каждого вопроса добавится ссылка на его категорию. Если же выводится содержимое одной категории, то в name_cat будет храниться ее название, а ссылок на категорию каждого вопроса выводиться не будет, т.к. все эти ссылки будут одинаковы и вести на страницу с текущим же списком.

Для создания шаблона по умолчанию создайте файл /components/com_myquestions/views/category/tmpl/default.php:

".JText::_('COM_MYQUESTIONS_ADD_QUESTION').""; ?>

name_cat?>

list as $l): ?> is_all_cat == true) { ?>
name?> email?> date, JText::_('DATE_FORMAT_LC3'))?> city?>
name_cat?>
question?>
answer?>
--->

Данный шаблон аналогичен шаблону по умолчанию для представления all.

Просмотр одного вопроса

Код для отображения одного вопроса аналогичен коду для отображения списка вопросов. Создайте файл /components/com_myquestions/views/question/view.html.php:

getModel(); $question=$model->getQuestion(); $question->date=JHTML::Date($question->date); $this->assignRef('question', $question); $this->assignRef('option', $option); $this->assignRef('link_cat',JRoute::_('index.php?option='.$option.'& id='.$question->id_cat.'&view=category&task=show')); } parent::display($tpl); } } ?>

Представление question будет соответствовать двум шаблонам - один для отображения вопроса, второй для вывода формы для отправки вопроса. Для первого шаблона необходимы данные о вопросе, которые мы получаем из модели. Для второго шаблона не требуется никаких данных кроме имени пользователя, которое мы определим в контроллере.

Напишем шаблон для отображения одного вопроса. Создайте файл /components/com_myquestions/views/question/tmpl/default.php:

" .JText::_('COM_MYQUESTIONS_ADD_QUESTION').""; ?>

question->name?> question->email?> question->date, JText::_('DATE_FORMAT_LC3'))?> question->city?>
question->name_cat?>
question->question?>
question->answer?>

Добавим другой шаблон, отображающий форму для написания вопроса. Создайте файл /components/com_myquestions/views/question/tmpl/default_form.php:

:
:
:
:
:
"/>
Листинг .

Оригинальный текст книги читать онлайн бесплатно в онлайн-библиотеке Knigger.com