Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 40 Ответов
  • 10865 Просмотров
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Получение модели в виде
« Ответ #30 : 13.01.2011, 16:52:13 »
StarCat да дело то не в вызове контроллера, а в том, что метод display() в 1.5 был единственным нативным способом, как передать дополнительную Модель в Вид. Мы все равно остались на том же месте - в 1.6 нет возможности передать дополнительную Модель в Вид через Контроллер-наследник, когда создаешь/редактируешь запись.
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: Получение модели в виде
« Ответ #31 : 14.01.2011, 10:02:08 »
На самом деле конструкторы класса JController и соответственно что в 1.5 что в 1.6 практически не отличаются. И там и там по дефолту выполняется display. Для создания редактирования записи в 1.6 добавили класс наследник JControllerForm с описаными методами add edit cancel которые в принципе и надо использовать, а никак не display. Так что все возможности 1.5 остались. Наследники классов для того и есть чтобы не урезать а расширять функционал :) Методы базовых классов остались те же. Просто надо решить от каких классов наследоватся и какие методы использовать. Посмотрите код этих классов и все станет ясно :)

ЗЫ И честно говоря непонятно зачем баловаться различными видами и моделями для одного контроллера. Неужели нельзя обойтись одним видом и одной моделью? :) Непонятненько совсем...
« Последнее редактирование: 14.01.2011, 10:34:53 от StarCat »
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Получение модели в виде
« Ответ #32 : 14.01.2011, 10:41:24 »
bzzik, ты реально проверь у тебя контроллер-потомок реально выполняется или же до него не доходит код. Если он выполняется, то будем плыть дальше, а пока что топтание на месте.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Получение модели в виде
« Ответ #33 : 14.01.2011, 10:50:06 »
Вот поставил 1.6. Сделал малюсенький компонент админки. Две модели в виде можно подключить независимо от контроллера.
В виде
Код: php
$newmodel = & JModel::getInstance('NewModel','PrefixModel', array());
$this->setModel($newmodel);
$this->test = $this->get('test','NewModel');
в шаблоне
Код: php
echo $this->test;
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: Получение модели в виде
« Ответ #34 : 14.01.2011, 11:07:51 »
Lex тут дело в том что bzzik борется с классами наследниками
bzzik, ты реально проверь у тебя контроллер-потомок реально выполняется или же до него не доходит код. Если он выполняется, то будем плыть дальше, а пока что топтание на месте.

+1
100% до контроллеров наследников дело не доходит
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Получение модели в виде
« Ответ #35 : 14.01.2011, 11:12:50 »
Я пока заметил только одну модель, вновь определяемую NewModel, а если их несколько требуется подключить?

Относительно контроллеров-потомков, так ли тебе это нужно?
у тебя есть view, layout, task, если компонент не забубенный, то можно сделать и в контроллере-родителе обработку. Тогда тебе не потребуются контроллеры-потомки. Их можно будет оставить на что-то специфическое.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Получение модели в виде
« Ответ #36 : 14.01.2011, 11:20:15 »
Такс, ок. StarCat + 1 за наводку. Получается, что нужно переопределять метод add() или edit(). Но все равно криво работает. Вот так я пытаюсь передать Модель в Вид (как бы стандартный способ):

Код: php
function add()
{
$model = $this->getModel('Newmodel');
$view = $this->getView('Viewname','html');
$view->setModel($model,false);
$view->display();
}

Но блин, открывается почему-то "пустой" View. Он как будто не инициализируется как надо.


Относительно контроллеров-потомков, так ли тебе это нужно?
у тебя есть view, layout, task, если компонент не забубенный, то можно сделать и в контроллере-родителе обработку. Тогда тебе не потребуются контроллеры-потомки. Их можно будет оставить на что-то специфическое.
Аха, я уже так сделал. Но мне этот способ кажется "кривым" :)

Вот поставил 1.6. Сделал малюсенький компонент админки. Две модели в виде можно подключить независимо от контроллера.
В виде
Код: php
$newmodel = & JModel::getInstance('NewModel','PrefixModel', array());
$this->setModel($newmodel);
$this->test = $this->get('test','NewModel');
в шаблоне
Код: php
echo $this->test;

Опа, а вот это уже интересно! Ща у себя попробую.
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: Получение модели в виде
« Ответ #37 : 14.01.2011, 11:30:54 »
Аха, я уже так сделал. Но мне этот способ кажется "кривым" :)
Напрасно! В основном методы классов "по умолчанию" привязаны к этим параметрам изначально. Так что это самый "прямой" способ получения нужного результата :)
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Получение модели в виде
« Ответ #38 : 14.01.2011, 11:33:53 »
нет кривых способов, зависит от того, насколько полно вы хотите открыть структуру передаваемых параметров юзеру.
Просто у юзеров ручки кривые обычно и что он сделает с адресом с туевой хучей передаваемых параметров...
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Получение модели в виде
« Ответ #39 : 14.01.2011, 11:42:00 »
Вообщем немного подправил способ, которые указал Lex. Вот так получилось в Виде:

Код: php
$model = &JModel::getInstance('Teams','EsportsModel', array());
$this->setModel($model);
$teamsModel = &$this->getModel('Teams');
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Получение модели в виде
« Ответ #40 : 14.01.2011, 12:20:36 »
мутация блин, это вот кто будет под себя менять 'PrefixModel'?
оставляй пустым '' или ставь свое значение.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться