Русская Joomla - форум поддержки
Регистрация Правила форума Справка Поиск Сообщения за день Все разделы прочитаны

Создание расширений для Joomla

 (Создание собственных компонентов, модулей и мамботов (плагинов) для CMS Joomla. Знание PHP - обязательно)

 
Ответ
 
Опции темы
Старый 08.02.2010, 21:01 #1
Новичок
 
Регистрация: 29.10.2009
Адрес: Глазов
Сообщений: 28
Репутация: 1
Kravcneger вне форума
Сообщение Помогите пожалуйста разобраться с реализации MVC в joomla.

Здравствуйте , уважаемые специалисты . Ввиду того что современные web приложения всё чаще проектируются по потерну MVC , решил ознакомиться на практике . Впервые я попробовал это на фрэймворке codeigniter . Теперь перейдя на joomla , я нахожусь В ПОЛНОМ НЕДОУМЕНИИ как это всё делать .Точнее я нашёл инф. даже с примерами http://blog.contra.lv/2010/01/25/pis...ktika-chast-4/ Сообщить о нерабочей ссылке http://webflasher.net/ru/webmasteru/joomla-1-5.html Сообщить о нерабочей ссылке . Дорогие господа , но я не могу понять одной единственной вещи ! Почему во всех этих примерах если мы хотим получить какие ли бо данные из метода принадлежащего модели , то мы вызываем его во view части .Что противоречит потерну .
Пример тому

"Поэтому, мы можем легко объявить функцию класса модели, используя метод JView:: в строке JView:: getModel ().
В код файла view.html.php вносим изменения
заменяем строку:
$greeting = "Hello World!";
На этот код:
$model = $this->getModel();
$greeting = $model->getGreeting();
"
Это встречается в одном из 2 ух источников .
Покопался в компонентах и там такая же ситуация .

раньше я думал MVC это модель вид(шаблон) контроллер
Но тут на деле получается что есть ВИД и есть ШАБЛОН в который вид передаёт то что нужно .
Вообщем для меня всё жутко и напутанно .
Раньше я думал что контроллер сразу должен передавать данные в шаблон а тот их и выводить .Ведь шаблон по сути видом то и является .
А как передавать данные из контроллера в вид Я ВООБЩЕ не понял .
Разъясните пожалуйста мне ...
1)Нафига вообще нужен это view когда данные должны передавать из контроллера в шаблон
2)Как передаются данные из контроллера в вид (в codeigniter так $this->view("view1",$data) всё просто , а сколько я не копался в компонентах везде где надо что то получить из метода модели , этот метод вызывается из вида)
3)И противоречит ли это MVC потерну когда метод модели вызывают из вида .

СПАСИБО ЗА ВНИМАНИЕ !

Последний раз редактировалось Kravcneger; 08.02.2010 в 21:13..
 
Ответить с цитированием Вверх
Старый 08.02.2010, 21:26 #2
Местный
 
Регистрация: 15.02.2009
Сообщений: 314
Репутация: 42
botanist вне форума
По умолчанию Re: Помогите пожалуйста разобраться с реализации MVC в joomla.

1 и 3 вопросы чисто риторические. Практического значения не имеют. Можно долго обсуждать, но сделать ничего нельзя. Как сделано так сделано.
2.
PHP код:
//В контроллере
 
$view $this->getView('viewName','html');/*вызываем обьект представления*/
 
$model $this->getModel();/*вызываем обьект модели по умолчанию*/
 
$data $model->getData();/*в переменную $data получаем данные с помощью
 функции  getData() модели.*/
 /*.... Здесь с данными можно чего-нибудь сделать .....*/     
 
$view->assignRef('templatedata',  $data);/*передаем данные в шаблон tmpl/default.php
 перый параметр ('templatedata') - имя переменной из которой можно получить данные в шаблоне,
 второй параметр собственно данные определенные строкой выше*/
//В шаблоне
$data $this->templatedata/*получаем данные в шаблоне*/ 
 
Ответить с цитированием Вверх
Старый 08.02.2010, 21:48 #3
Новичок
 
Регистрация: 29.10.2009
Адрес: Глазов
Сообщений: 28
Репутация: 1
Kravcneger вне форума
По умолчанию Re: Помогите пожалуйста разобраться с реализации MVC в joomla.

botanist , спасибо большее за помощь .Но вот у меня проблема всё такая .Контроллер не может вид найти $view = $this->getView('hello');
Однако в менеджере меню , вид компонента распознаётся и ссылку на него создать можно .В чём дело не пойму .
 
Ответить с цитированием Вверх
Старый 08.02.2010, 21:58 #4
Местный
 
Регистрация: 15.02.2009
Сообщений: 314
Репутация: 42
botanist вне форума
По умолчанию Re: Помогите пожалуйста разобраться с реализации MVC в joomla.

PHP код:
$this->getView('hello''html'); 
Но возможно не верно пространство имен
Вид должен находится по пути (от корня компонента)
views/имя_контроллера/view.html.php
 
Ответить с цитированием Вверх
Старый 18.02.2010, 06:34 #5
Новичок
 
Аватар для Greck
 
Регистрация: 08.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 17
Репутация: 1
Greck вне форума
По умолчанию Re: Помогите пожалуйста разобраться с реализации MVC в joomla.

Опечатка:
views/имя_вьювера/view.html.php
 
Ответить с цитированием Вверх
Старый 18.02.2010, 06:42 #6
Новичок
 
Аватар для Greck
 
Регистрация: 08.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 17
Репутация: 1
Greck вне форума
По умолчанию Re: Помогите пожалуйста разобраться с реализации MVC в joomla.

По теме:
В Joomla немного другая философия. Контроллер выполняет конкретные действия: сохранение, изменение и по результату, при необходимости перенаправляет на нужный вьювер. Не нужно делать проверки, получение данных в контролере, это все должен делать вьювер с моделью. Конечно у всех правил есть исключения, но для 99% задач такой подход правильный и логичный. Не знаю смог ли объяснить, сам поначалу все пихал в контроллер.
 
Ответить с цитированием Вверх
Старый 18.02.2010, 07:38 #7
Местный
 
Регистрация: 15.02.2009
Сообщений: 314
Репутация: 42
botanist вне форума
Сообщение Re: Помогите пожалуйста разобраться с реализации MVC в joomla.

Цитата: Сообщение от Greck Посмотреть сообщение
Опечатка:
views/имя_вьювера/view.html.php
Нет не опечатка, контроллер определяет свое представление по умолчанию по собственному имени
 
Ответить с цитированием Вверх
Старый 20.02.2010, 17:48 #8
Новичок
 
Регистрация: 29.10.2009
Адрес: Глазов
Сообщений: 28
Репутация: 1
Kravcneger вне форума
Сообщение Re: Помогите пожалуйста разобраться с реализации MVC в joomla.

Greck , спасибо большое , я уже тоже разобрался с этой философией . И могу сказать что она очень удобная и интересная . Но не совсем удобна для написания небольших приложений .
Кстати посмотрел стандартные расширения , разработчиков joomla , примерно только в трети всё сделано с соблюдением данного потерна . А в компонентах templates и modules дак вообще большую часть с основной логикой , берёт на себя контроллер . Там же запросы и с базами данных там же проверка данных и Т.Д .(что сделало контроллеры по 25 кб) складывается впечатление что расширения писали совершенно другие люди , которые плевали на mvc .
 
Ответить с цитированием Вверх
Ответ


joomla cms - лучшая система управления контентом с открытым исходным кодом

Добавить в закладки
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Joomla 1.5] Помогите пожалуйста разобраться с mod_janews 1.31 paaar Установка расширений 2 13.12.2009 00:32
Помогите разобраться с положением материала на странице joomla 1.0X Angel_k750 Структура данных сайта 1 20.10.2009 09:44
Помогите разобраться с Joomla Framework API israel_rider Программирование 6 20.10.2009 09:32
Подскажите пожалуйста в реализации меню. 1lol4eg1 Навигационная структура сайта 3 13.06.2008 09:18
Помогите разобраться пожалуйста SergioSV Joostina - свежий взгляд на Joomla! 10 11.04.2008 03:12