Помогите реализовать: 1 контроллер, 1 модель, 1 вьювер, но много темплейтов

Тема в разделе "Создание расширений для Joomla", создана пользователем shinaz, 23.01.2010.

  1. Offline

    shinaz Недавно здесь

    Регистрация:
    23.01.2010
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    А теперь подробней о задаче..
    Пишу электронный журнал успеваемости и посещений с разделением по доступу в front-end на студента, преподавателя и админа. Начал писать компонент и с толкнулся с проблемой большого кол-ва view='значение', а следовательно и большого количества каталогов в каталоге views.

    Покажу на примере для админа что получается и к чему стремлюсь(ниже структура компонента):
    em.php
    controller.php
    controllers/adm.php
    models/adm.php

    views/adm/view.html.php
    views/adm/tmpl/default.php
    //эти две строки по умолчанию для админа

    Теперь допустим мне надо посмотреть список студентов делаем ссылку с параметром view=students, получается надо создать

    views/students/view.html.php
    views/students/tmpl/default.php

    И так далее...

    А вот что хочется

    em.php
    controller.php
    controllers/adm.php
    models/adm.php

    views/adm/view.html.php
    views/adm/tmpl/default.php
    views/adm/tmpl/default_student.php
    views/adm/tmpl/default_listcat.php
    views/adm/tmpl/default_.........php
    и.т.д

    Т.е. получать в файле views/adm/view.html.php какие-то данные из модели, а затем подгрузить нужный темплейт в зависимости от параметров task
     
  2.  
  3. omfgpanda
    Offline

    omfgpanda Недавно здесь => Cпециалист <=

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    так в чем проблема ? В файле, где Вы подключаете шаблон сделайте проверку на параметр, и в зависимости от значения подключайте нужный Вам шаблон.
     
  4. Offline

    shinaz Недавно здесь

    Регистрация:
    23.01.2010
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо за ответ, до этого варианта я додумался сам, но хотелось бы иметь возможность в контроллере вызвать вместо parent::display() допустим parent::ShowList('list'), где ShowList - это метод во вьювере. И вообще возможно ли такое реализовать???
     
  5. Offline

    botanist Активист => Cпециалист <=

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Код (PHP):
    1. $view = $this->getView('ViewName','html');/*вызываем обьект представления,
    2.       чтобы можно было пользоваться его функциями*/
    3. $view->ShowList('list'); //Вызов метода представелния
    4. $view->display('form');/*Говорим представлению (view), что показать все нужно в шаблоне default_form.php,
    5.       а не в обычном default.php. Если в методе display представления задан параметр, то представление вызывает шаблон
    6.       из файла default_параметр.php, если параметр не задан, то по умолчению подключается шаблон default.php*/
     
  6. Offline

    shinaz Недавно здесь

    Регистрация:
    23.01.2010
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Огромное спасибо за пост... Это именно то, что я хотел. Думаю тему можно закрывать
     

Поделиться этой страницей

Загрузка...