Разрботка расширений для 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; $i
Данный код в целом аналогичен коду метода QuestionViewAll::display(). Если выводится список вопросов сразу из всех категорий, то в name_cat будет храниться текст "Все вопросы", а к объекту-представителю каждого вопроса добавится ссылка на его категорию. Если же выводится содержимое одной категории, то в name_cat будет храниться ее название, а ссылок на категорию каждого вопроса выводиться не будет, т.к. все эти ссылки будут одинаковы и вести на страницу с текущим же списком.
Для создания шаблона по умолчанию создайте файл /components/com_myquestions/views/category/tmpl/default.php:
".JText::_('COM_MYQUESTIONS_ADD_QUESTION').""; ?>
=$this->name_cat?>
list as $l): ?>=$l->name?> | =$l->email?> | =JHTML::_('date', $l->date, JText::_('DATE_FORMAT_LC3'))?> | =$l->city?> |
=$l->name_cat?> | |||
=$l->question?> | |||
=$l->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').""; ?>
=$this->question->name?> | =$this->question->email?> | =JHTML::_('date', $this->question->date, JText::_('DATE_FORMAT_LC3'))?> | =$this->question->city?> |
=$this->question->name_cat?> | |||
=$this- >question->question?> | |||
=$this->question->answer?> |
Добавим другой шаблон, отображающий форму для написания вопроса. Создайте файл /components/com_myquestions/views/question/tmpl/default_form.php:
Листинг .