Форум русской поддержки Joomla!® CMS
09.12.2016, 04:03:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 949 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« : 28.07.2015, 13:51:47 »

Создать эту тему на форуме меня надоумил цикл статей разработки компонента (переведенная статья): 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
Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #1 : 28.07.2015, 15:28:01 »

Собственно вопрос как грамотно написать точку входа и систему контроллеров?
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #2 : 28.07.2015, 15:37:53 »

есть на английском вроде как документация для трешки

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

А что именно у вас не работает? Сильных отличий там нет от 2.x . В плане интерфейса и кнопок возможно да..
Да и кстатии, что мешает взять какой нибудь компонент от трешки (например com_content) и подсмотреть как сделано там если что то не получается?
« Последнее редактирование: 28.07.2015, 15:49:17 от zomby6888 » Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #3 : 28.07.2015, 16:16:04 »

есть на английском вроде как документация для трешки

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

А что именно у вас не работает? Сильных отличий там нет от 2.x . В плане интерфейса и кнопок возможно да..
Да и кстатии, что мешает взять какой нибудь компонент от трешки (например com_content) и подсмотреть как сделано там если что то не получается?
Смотрел, но у них там, на сколько я понял, старая MVC (от 2.5) осталась. Т.е. используют view.html.php вместо HTML.php, также есть общий контроллер в корневой папке, который наследуется от класса JControllerLegacy , а в примере, который я рассматривал, все эти моменты отсутствуют и функционируют немного иначе...
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #4 : 28.07.2015, 16:20:45 »

Класс 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, 16:43:29 от zomby6888 » Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #5 : 29.07.2015, 15:01:36 »

Кстати не читал Azn Тоже весьма полезная статья.
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #6 : 29.07.2015, 15:16:50 »

Создать эту тему на форуме меня надоумил цикл статей разработки компонента (переведенная статья): 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.
« Последнее редактирование: 29.07.2015, 15:21:33 от b2z » Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #7 : 29.07.2015, 17:00:02 »

http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5 - это хороший старт и база для понимания работы компонента.
А Вы не могли бы перезалить архив с финальной версией компонента? А то при его установке там всё как-то некорректно выглядит (поля друг на друга налазят и т.п.)... Создается ощущение, что он кривой...
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #8 : 29.07.2015, 17:47:47 »

А Вы не могли бы перезалить архив с финальной версией компонента? А то при его установке там всё как-то некорректно выглядит (поля друг на друга налазят и т.п.)... Создается ощущение, что он кривой...
Ну так на тройке так и будет. Макеты же писались под 2.5, а там уже Bootstrap. Вот это частично решает проблему. Архив этого этапа посмотрю дома, может и остался (он не будет содержать в себе части 14, 15 и 16).
« Последнее редактирование: 29.07.2015, 17:51:18 от b2z » Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #9 : 31.07.2015, 11:39:02 »

Хорошо, спасибо!
А можете подсказать как добавлять динамические выпадающие списки?
Например есть 2 выпадающих списка, первый активен, а второй становится активен только после того как в первом выбрано какое-нибудь значение. Причем данные во втором списке должны подтягиваться в соответствии с таблицей связей в с первым селектом.
И еще хотелось бы уточнить как сделать выпадающий список со встроенным поиском?
Вообще таким образом я хочу реализовать схему зависимостей марок и моделей машин.
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #10 : 31.07.2015, 11:54:03 »

Лучше эти вопросы задать в отдельной теме.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet