Пишем компонент под современную MVC структуру для Joomla 3

  • 10 Ответов
  • 1595 Просмотров

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

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Создать эту тему на форуме меня надоумил цикл статей разработки компонента (переведенная статья): http://joomlablog.ru/razrabotka/406-razrabotka-rasshireniya-dlya-joomla-3-0-interfejs-administratora-i-dorabotka-koda
Суть в том, что по окончанию представленных 5 статей мы получаем современный компонент с использованием самых новых подходов разработки. Проблема в том, что этот компонент очень примитивен в плане функционала, и этот мануал не совсем подходит как пример создания многофункционального компонента.
Поэтому часть информации пришлось брать из цикла статей http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5 которые любезно предоставил нам Дмитрий Рекун, за что ему большое спасибо.

Лично у меня сложности возникли при попытке создать кнопки управления компонентами. Они должны были вызываться controller.model или controller.task, но создав свой контроллер в компоненте с современной MVC я обнаружил, что кнопоньки-то не работают... Вот я и решил создать тему тут, чтобы с вашей помощью собрать всю информацию до кучи о том как же все таки написать полнофункциональный компонент для Joomla 3
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Собственно вопрос как грамотно написать точку входа и систему контроллеров?
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
есть на английском вроде как документация для трешки

https://docs.joomla.org/J3.x:Developing_a_MVC_Component

А что именно у вас не работает? Сильных отличий там нет от 2.x . В плане интерфейса и кнопок возможно да..
Да и кстатии, что мешает взять какой нибудь компонент от трешки (например com_content) и подсмотреть как сделано там если что то не получается?
« Последнее редактирование: 28.07.2015, 16:49:17 от zomby6888 »
интернет-блог: http://websiteprog.ru

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
есть на английском вроде как документация для трешки

https://docs.joomla.org/J3.x:Developing_a_MVC_Component

А что именно у вас не работает? Сильных отличий там нет от 2.x . В плане интерфейса и кнопок возможно да..
Да и кстатии, что мешает взять какой нибудь компонент от трешки (например com_content) и подсмотреть как сделано там если что то не получается?
Смотрел, но у них там, на сколько я понял, старая MVC (от 2.5) осталась. Т.е. используют view.html.php вместо HTML.php, также есть общий контроллер в корневой папке, который наследуется от класса JControllerLegacy , а в примере, который я рассматривал, все эти моменты отсутствуют и функционируют немного иначе...
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
Класс JControllerLegacy пришел на замену JController( также как JModelLegacy и JViewLegacy ) в трешке. view.html.php - это прослойка вида. Она так и осталась в трешке. Но возможно там и устаревшая инфа я особо не читал, так как у меня уже есть каркас на котором я пишу расширения.

Да и кстатии там же, на joomlablog, дмитрий писал статью по поводу адаптации интерфейса компонента для трешки:
http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5/345-adaptatsiya-vykhodnykh-dannykh-pod-joomla-3

Вы ее читали?
« Последнее редактирование: 28.07.2015, 17:43:29 от zomby6888 »
интернет-блог: http://websiteprog.ru

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Кстати не читал :) Тоже весьма полезная статья.
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

b2z

  • Support Team
  • *****
  • 7451
  • 741
  • Разраблю понемногу
Создать эту тему на форуме меня надоумил цикл статей разработки компонента (переведенная статья): http://joomlablog.ru/razrabotka/406-razrabotka-rasshireniya-dlya-joomla-3-0-interfejs-administratora-i-dorabotka-koda
Я уже отвечал в комментариях на joomlablog, отвечу еще раз тут. Описанный в этом цикле статей компонент является вариантом алтернативной реализации MVC. По сути там базовые контроллер, представление и модель. То есть Вы сами должны под себя построить MVC.

Я все же советую использовать то, что сейчас есть в CMS. Это проще, так как MVC самой CMS уже включает в себя реализацию стандартных задач, таких как: save, delete, add, edit, publish и т.п.
http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5 - это хороший старт и база для понимания работы компонента. По сути на данный момент MVC 2.5 и 3.x практически не отличается. Да, есть некоторые нюансы и улучшения, но все это можно посмотреть в стандартных компонентах типа com_content или com_users.

Вот в 3.6 обещают новый MVC (не знаю, насколько все будет радикально изменено). Жду этого момента и планирую начать новую серию документации по разработке компонента именно под этот новый MVC.

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5 - это хороший старт и база для понимания работы компонента.
А Вы не могли бы перезалить архив с финальной версией компонента? А то при его установке там всё как-то некорректно выглядит (поля друг на друга налазят и т.п.)... Создается ощущение, что он кривой...
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

b2z

  • Support Team
  • *****
  • 7451
  • 741
  • Разраблю понемногу
А Вы не могли бы перезалить архив с финальной версией компонента? А то при его установке там всё как-то некорректно выглядит (поля друг на друга налазят и т.п.)... Создается ощущение, что он кривой...
Ну так на тройке так и будет. Макеты же писались под 2.5, а там уже Bootstrap. Вот это частично решает проблему. Архив этого этапа посмотрю дома, может и остался (он не будет содержать в себе части 14, 15 и 16).

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Хорошо, спасибо!
А можете подсказать как добавлять динамические выпадающие списки?
Например есть 2 выпадающих списка, первый активен, а второй становится активен только после того как в первом выбрано какое-нибудь значение. Причем данные во втором списке должны подтягиваться в соответствии с таблицей связей в с первым селектом.
И еще хотелось бы уточнить как сделать выпадающий список со встроенным поиском?
Вообще таким образом я хочу реализовать схему зависимостей марок и моделей машин.
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть