Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

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

kovardaks

  • Новичок
  • 4
  • 0 / 0
Всем доброго дня!
Столкнулась со следующей задачей: необходимо разработать сайт дистанционного обучения на Joomla. Предполагается наличие SCORM-совместимых курсов. Для их функционирования необходимо на сайте установить LMS. По сабжу в сети нашлось решение Joomdle (moodle+joomla).

Вопросы:
1. Доводилось ли кому-нибудь работать с модулем Joomdle (результаты, впечатления, рекомендации)
2. Совет по использованию каких-либо LMS (отдельных пакетов или модулей под joomla)
3. Возможно ли в качестве альтернативы использовать связку Joomla+Virtuemart (доступ к платному контенту) и где здесь могут быть подводные камни (помимо возможности передачи данных SCORM)

Да и просто огромная просьба: если кто-либо пробовал организовывать нечто подобное - поделитесь, пожалуйста, советами, куда копать? :)

Заранее благодарю!
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Есть еще такой компонент GURU http://guru.ijoomla.com/
Но он платный..297 USD на год...кусается.С мудлем пробовал работать с чистым.После Joomla не впечатлил.А сегодня сам накопал Joomdle.И вот теперь в процессе изучения и установки. Пока ничего не могу сказать..не могу накатить мудль-директорию...))) Давай тогда держаться в теме.Может быть еще кто подтянется?
Теперь по сабжу. Я думал для чего-то подобного использовать связку Joomla с К2 и каким-нибудь конструктором форм.НО..в мудле все это заложено уже, кстати, как и в ГУРУ тоже, плюс всевозможные викторины и прочая.Поэтому стоит присмотреться к компоненту.И самое главное.Я все это тестирую на живом учителе, который работает с мудлем.Для преподавателей он привычнее.А вот как себя поведет мудль функционал в джумловской оболочке, и насколько они (учителя) смогут быстро к нему адаптироваться..вот это уже второй вопрос.
И Joomdle имеет интеграцию с
VirtueMart2 (1.6+ only) Tienda JomSocial CommunityBuilder Xmap AEC Ambra Acymailing Hikashop Payplans Kunena
Что является очень серьезным доводом в его пользу.И плюс бесплатность.
http://extensions.joomla.org/search?q=lms
« Последнее редактирование: 02.04.2013, 20:40:30 от paternoster »
*

kovardaks

  • Новичок
  • 4
  • 0 / 0
Спасибо! А я сейчас пробую efront+Jfusion прикрутить, посмотрим, что получиться... Давайте, да, будем держать друг друга в курсе событий :)
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Поставил, опробовал.написал заодно мануал по установке.Все работает.Что не очень было хорошо в связке Moodle,Joomla,Joomdle так это то, что мудль-контент выводится..внимание..как мудль-контент, так, как он и выглядит в самом мудле.Со всей стремностью оформления и его CSS-файлов.В моем случае проблема не страшна, потому как есть лицензионный Artisteer, который замечательно рисует и Joomla шаблоны, и мудль темы.
Сайт подтормаживает.Но может потому, что тесновато на тарифном палне.перенесу на другой и там уже продолжу работу.
В принципе, очень многие красивости Joomla там вполне возможны и реализуемы.
*

Yozhichek

  • Новичок
  • 1
  • 0 / 0
paternoster, мануалом не поделитесь?
Что-то не идет у меня с установкой. Есть Joomla 2.5, есть мудл 1.9 и 2.2. А вот связать пока не получается.
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Пишите в личку.Поделюсь.Хотя его уже придется править.31 мая выпустили новую версию и повносили изменения в порядок установки.
*

VADR

  • Новичок
  • 8
  • 0 / 0
Ау! В этой теме кто-нибудь бывает?
Вопрос по joomdle. Поставил Joomla 2.5.11, CommunityBuilder 1.9, moodle 2.4.1, joomdle 0.92. Устанавливал и настраивал по мануалу http://www.joomdle.com/wiki/Installation, интегрировал с CB по мануалу http://www.joomdle.com/wiki/Community_Builder. Итог: "сквозной" логин работает только в браузере Google Chrome, в остальных приходится логиниться отдельно на сайт и отдельно в moodle. Кто-нибудь сталкивался с таким загадочным поведением?
*

vovchikku

  • Захожу иногда
  • 407
  • 1 / 0
а есть у кого-нибудь русификатор для LMS Version: 3.0?
*

Arturr

  • Новичок
  • 1
  • 0 / 0
  • Салют
Спасибо огромное!Очень полезная информация.  !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

В Joomla 2.5 VirtueMart 2.0.26d не работает добавление в корзину под мобилку

Автор kvintovskiy

Ответов: 8
Просмотров: 1889
Последний ответ 15.04.2024, 17:29:25
от Vastriet
Оптимизация сайта

Автор joni

Ответов: 0
Просмотров: 2075
Последний ответ 22.07.2023, 17:10:11
от joni
Скрипт при закрытии сайта

Автор Mick_20

Ответов: 8
Просмотров: 2533
Последний ответ 14.06.2023, 18:40:20
от effrit
Модуль устанавливается, но Joomla его не видит

Автор ruppert

Ответов: 20
Просмотров: 18245
Последний ответ 01.08.2022, 05:30:50
от rezon777
Кнопка “Добавить в корзину” VirtueMart не работает на главной странице сайта

Автор max_max

Ответов: 0
Просмотров: 7255
Последний ответ 20.04.2021, 12:40:37
от max_max