Новости 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 Гость просматривают эту тему.
  • 42 Ответов
  • 5994 Просмотров
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на март
Действительны с 1 по 31 марта

Румыния Выделенный Сервер
Скидка 5%:RO21MAR при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5%MAR при аренде на год


VPS
Скидка 15% код:MAR21VPS при арене на каждый месяц
Скидка 20% код:MAR4VPS2021 при арене на каждый квартал
Скидка 25% код:MAR25VPS при аренде на полгода
Скидка 30% код:ANN2021MAR при арене на год

SSD Hosting
Скидка 15% код:MAR21 при арене на каждый месяц
Скидка 20% код:MAR2021 при арене на каждый квартал
Скидка 25% код:SEMI25MAR при аренде на полгода
Скидка 30% код:ANN30MAR при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на апрель
Действительны с 1 по 30 апреля

Румыния Выделенный Сервер
Скидка 5%:RO21APR при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5APR при аренде на год


VPS
Скидка 15% код:APR21VPS при арене на каждый месяц
Скидка 20% код:APR4VPS2021 при арене на каждый квартал
Скидка 25% код:APR25VPS при аренде на полгода
Скидка 30% код:ANN2021APR при арене на год

SSD Hosting
Скидка 15% код:APR21 при арене на каждый месяц
Скидка 20% код:APR2021 при арене на каждый квартал
Скидка 25% код:SEMI25APR при аренде на полгода
Скидка 30% код:ANN30APR при арене на год

*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на май
Действительны с 1 по 31 мая

Румыния Выделенный Сервер
Скидка 5%:RO21MAY при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5MAY при аренде на год


VPS
Скидка 15% код:MAY21VPS при арене на каждый месяц
Скидка 20% код:MAY4VPS2021 при арене на каждый квартал
Скидка 25% код:MAY25VPS при аренде на полгода
Скидка 30% код:ANN2021MAY при арене на год

SSD Hosting
Скидка 15% код:21MAY при арене на каждый месяц
Скидка 20% код:MAY2021 при арене на каждый квартал
Скидка 25% SEMI25MAY при аренде на полгода
Скидка 30% код:ANN30MAY при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на июнь
Действительны с 1 по 30 мая

Румыния Выделенный Сервер
Скидка 5%:RO21JUN при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5JUN при аренде на год


VPS
Скидка 15% код:JUN21VPS при арене на каждый месяц
Скидка 20% код:JUN4VPS2021 при арене на каждый квартал
Скидка 25% код:JUN25VPS при аренде на полгода
Скидка 30% код:ANN2021JUN при арене на год

SSD Hosting
Скидка 15% код:21JUNN при арене на каждый месяц
Скидка 20% код:JUN2021 при арене на каждый квартал
Скидка 25% SEMI25JUN при аренде на полгода
Скидка 30% код:ANN30JUN при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на июля
Действительны с 1 по 31 июля

Румыния Выделенный Сервер
Скидка 5%:RO21JUL при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5JUL при аренде на год


VPS
Скидка 15% код:JUL21VPS при арене на каждый месяц
Скидка 20% код:JUL4VPS2021 при арене на каждый квартал
Скидка 25% код:JUL25VPS при аренде на полгода
Скидка 30% код:ANN2021JUL при арене на год

SSD Hosting
Скидка 15% код:21JUL при арене на каждый месяц
Скидка 20% код:JUL2021 при арене на каждый квартал
Скидка 25% SEMI25JUL при аренде на полгода
Скидка 30% код:ANN30JUL при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на август
Действительны с 1 по 30 августа

Румыния Выделенный Сервер
Скидка 5%:RO21AUG при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5AUG при аренде на год


VPS
Скидка 15% код:AUG21VPS при арене на каждый месяц
Скидка 20% код:AUG4VPS2021 при арене на каждый квартал
Скидка 25% код:AUG25VPS при аренде на полгода
Скидка 30% код:ANN2021AUG при арене на год

SSD Hosting
Скидка 15% код:AUG21 при арене на каждый месяц
Скидка 20% код:AUG2021 при арене на каждый квартал
Скидка 25% SSEMI25AUG при аренде на полгода
Скидка 30% код:ANN30AUG при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на сентябрь
Действительны с 1 по 30 сентября

Румыния Выделенный Сервер
Скидка 5%:RO21SEPT при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5SEPT при аренде на год


VPS
Скидка 15% код:SEPT21VPS при арене на каждый месяц
Скидка 20% код:SEPT4VPS2021 при арене на каждый квартал
Скидка 25% код:SEPT5VPS при аренде на полгода
Скидка 30% код:ANN2021SEPT при арене на год

SSD Hosting
Скидка 15% код:21Sept при арене на каждый месяц
Скидка 20% код:SEPT2021 при арене на каждый квартал
Скидка 25% SEMI25SEPT при аренде на полгода
Скидка 30% код:ANN30SEPT при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на Октября
Действительны с 1 по 31 Октября

Румыния Выделенный Сервер
Скидка 5%:RO21OCT при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5OCT при аренде на год


VPS
Скидка 15% код:OCT21VPS при арене на каждый месяц
Скидка 20% код:OCT4VPS2021 при арене на каждый квартал
Скидка 25% код:OCT5VPS при аренде на полгода
Скидка 30% код:ANN2021OCT при арене на год

SSD Hosting
Скидка 15% код:OCT21 при арене на каждый месяц
Скидка 20% код:OCT2021 при арене на каждый квартал
Скидка 25% SEMI21OCT при аренде на полгода
Скидка 30% код:ANN21OCT при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на Ноябрь
Действительны с 1 по 30 ноября

Румыния Выделенный Сервер
Скидка 5%:RO21NOV при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5NOV при аренде на год


VPS
Скидка 15% код:NOV21VPS при арене на каждый месяц
Скидка 20% код:NOV4VPS2021 при арене на каждый квартал
Скидка 25% код:NOV5VPS при аренде на полгода
Скидка 30% код:ANN2021NOV при арене на год

SSD Hosting
Скидка 15% код:21NOV при арене на каждый месяц
Скидка 20% код:NOV2021 при арене на каждый квартал
Скидка 25% SEMI21NOV при аренде на полгода
Скидка 30% код:ANN21NOV при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на Декабрь
Действительны с 1 по 30 декабрь

Румыния Выделенный Сервер
Скидка 5%:RO21DEC при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ5DEC при аренде на год


VPS
Скидка 15% код:DEC21VPS при арене на каждый месяц
Скидка 20% код:DEC4VPS2021 при арене на каждый квартал
Скидка 25% код:DEC5VPS при аренде на полгода
Скидка 30% код:ANN2021DEC при арене на год

SSD Hosting
Скидка 15% 21DEC при арене на каждый месяц
Скидка 20% DEC2021 при арене на каждый квартал
Скидка 25% SEMI21DEC при аренде на полгода
Скидка 30% ANN21DEC при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на Март
Действительны с 1 по 31 марта

Румыния Выделенный Сервер
Скидка 5%:RO22MAR при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ22MAR при аренде на год


VPS
Скидка 15% код:MAR22VPS при арене на каждый месяц
Скидка 20% код:MAR4VPS2022 при арене на каждый квартал
Скидка 25% код:MAR25VPS22 при аренде на полгода
Скидка 30% код:ANN2022MAR при арене на год

SSD Hosting
Скидка 15% MAR22 при арене на каждый месяц
Скидка 20% MAR2022 при арене на каждый квартал
Скидка 25% SEMI22MAR при аренде на полгода
Скидка 30% ANN22MAR при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на Апрель
Действительны с 1 по 30 апреля

Румыния Выделенный Сервер
Скидка 5%:RO22APR при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ22APR при аренде на год


VPS
Скидка 15% код:APR22VPS при арене на каждый месяц
Скидка 20% код:APR4VPS2022 при арене на каждый квартал
Скидка 25% код:APR25VPS22 при аренде на полгода
Скидка 30% код:ANN2022APR при арене на год

SSD Hosting
Скидка 15% APR22 при арене на каждый месяц
Скидка 20% APR2022 при арене на каждый квартал
Скидка 25% SEMI22APR при аренде на полгода
Скидка 30% ANN22APR при арене на год
*

MaratD

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Новые промо коды на Май
Действительны с 1 по 31 мая

Румыния Выделенный Сервер
Скидка 5%:RO22MAY при аренде на год

Нидерланды Выделенный Сервер
Скидка 5%:FUJ22MAY при аренде на год


VPS
Скидка 15% код:MAY22VPS при аренде на каждый месяц
Скидка 20% код:MAY4VPS2022 при аренде на каждый квартал
Скидка 25% код:MAY25VPS22 при аренде на полгода
Скидка 30% код:ANN2022MAY при аренде на год

SSD Hosting
Скидка 15% MAY22 при аренде на каждый месяц
Скидка 20% MAY2022 при аренде на каждый квартал
Скидка 25% SEMI22MAY при аренде на полгода
Скидка 30% ANN22MAY при аренде на год
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дешевый SSD хостинг на DDR4 с DDOS защитой для 10 сайтов за 69 рублей!

Автор HostiMan

Ответов: 171
Просмотров: 17324
Последний ответ 13.01.2025, 09:30:03
от HostiMan
Надежный Хостинг от Hostsailor

Автор MaratD

Ответов: 1
Просмотров: 1766
Последний ответ 07.11.2023, 17:33:18
от MaratD
Скоростной хостинг в Москве на SSD с защитой от ddos

Автор argotel

Ответов: 11
Просмотров: 3526
Последний ответ 23.02.2020, 17:55:38
от argotel
SSD-хостинг и VDS с защитой от DDoS и администрированием! Выгодные цены! Заходи!

Автор wellweb

Ответов: 2
Просмотров: 1394
Последний ответ 14.03.2018, 03:59:40
от wellweb