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

artiqul

  • Новичок
  • 8
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #30 : 13.10.2008, 10:49:21 »
Привет! Есть довольно срочный вопросик..... Как к этому модулю писать свои типы отображения меню???

Прочитал по поводу шаблонов, даже прикрутил...

Увидел, что эти шаблоны работают по принципу menu_list - menu_item

Теперь возник вопрос - как сделать, чтобы для первого уровня иерархии, скажем, было одна пара menu_list - menu_item, а для вложенных другая menu_list1 - menu_item1

?

удалось найти такую конструкцию:
<patTemplate:tmpl name="<имя переменной>" type="condition" conditionvar="LEVEL" varscope="menu_item<или menulist>" whitespace="trim">
   <patTemplate:sub condition="1">бла бла бла</patTemplate:sub>
   <patTemplate:sub condition="0">бла бла бла</patTemplate:sub>
</patTemplate:tmpl>
« Последнее редактирование: 13.10.2008, 16:36:04 от artiqul »
*

supernoob

  • Захожу иногда
  • 81
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #31 : 18.11.2008, 18:43:31 »
я тоже хочу сделать так чтобы меню выпадало при наведении но почему то не получается-требуется ведь только установить модуль через панель администратора и все??те настройки модуля менять не надо??

Re: модуль Extended Menu 1.0.3
« Ответ #32 : 25.11.2008, 13:52:47 »
Объясните пожалуйста Extended Menu в список выпадающего меню сам добавляет элементы ссылок или их надо в Joomle добавлять как подменю к каждому меню?
Еще такой вопрос существуют щаблоны с выпадающем меню?
*

fialka

  • Захожу иногда
  • 58
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #33 : 11.02.2009, 23:09:12 »
Оччень нужно подсветить активный пункт меню в этом модуле. Как это сделать? С помощью CSS не получается  - замучилать уже :(
*

rsa

  • Новичок
  • 3
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #34 : 31.03.2009, 22:01:00 »
Помогите пожалуйста, уже сил нет )) Задача вроде бы элементарная. Но никак не могу реализовать.

1. Нужно один пункт меню например Контакты выделить Красным
Единственный выход вижу делать для этого пункта отдельное меню ((
но по-моему это как-то глуповато

Вычитал что в Expended Menu можно задать свой стиль для каждого пункта НО КАК ЭТО сделать не могу найти.
« Последнее редактирование: 01.04.2009, 04:20:09 от rsa »
*

APTYP

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #35 : 01.04.2009, 20:29:13 »
Присоединяюсь к вопросу.
Помогите пожалуйста, уже сил нет )) Задача вроде бы элементарная. Но никак не могу реализовать.

1. Нужно один пункт меню например Контакты выделить Красным
Единственный выход вижу делать для этого пункта отдельное меню ((
но по-моему это как-то глуповато

Вычитал что в Expended Menu можно задать свой стиль для каждого пункта НО КАК ЭТО сделать не могу найти.
*

supernoob

  • Захожу иногда
  • 81
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #36 : 01.04.2009, 23:42:36 »
согласен интерестно тема)
скажите кто-ниб как последнее реализовать?
*

sergey_nev

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #37 : 29.04.2009, 19:21:07 »
Дайте кто нормальную ссылку на настройку extendedmenu под joomla 1.5. Очень нужно горизонтальное всплывающее меню.

Re: модуль Extended Menu 1.0.3
« Ответ #38 : 07.06.2010, 17:01:53 »
Поясните пожалуйста как в настройках данного модуля сделать задержку между открытием-закрытием выпадающего меню? А то я не успеваю перейти на подпункт меню, как оно уже закрывается.. :( Заранее благодарен
*

Andrew O

  • Новичок
  • 1
  • 0 / 0
  • It's me :)
Re: модуль Extended Menu 1.0.3
« Ответ #39 : 28.06.2011, 13:46:18 »
русификатор от 1.0.3 неплохо подходит для 1.0.6
*

total

  • Новичок
  • 1
  • 0 / 0
Re: модуль Extended Menu 1.0.3
« Ответ #40 : 02.02.2012, 18:12:46 »
привет всем у меня тоже пе получается сделать меню при наведении выподающим только при клике
помогите пожалуйста . Может каких  расширений нехватает?
« Последнее редактирование: 02.02.2012, 19:06:00 от total »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройка Maxi Menu CK

Автор Agentos

Ответов: 39
Просмотров: 40764
Последний ответ 06.07.2016, 11:31:08
от serjik
[Решено] Установка Extended Menu

Автор arton57

Ответов: 10
Просмотров: 6043
Последний ответ 30.05.2013, 21:53:56
от arton57
Extended menu 1.1.0 - мультиязычность

Автор gpush

Ответов: 1
Просмотров: 5331
Последний ответ 29.08.2012, 17:21:52
от gpush
Extended Menu Tree java меню ошибка

Автор avduevsky

Ответов: 0
Просмотров: 5361
Последний ответ 01.06.2012, 17:06:47
от avduevsky
После установки модуля Extended Menu 1.0.6 его нет в списке при клике на кнопку "Создать"

Автор orsy

Ответов: 2
Просмотров: 6632
Последний ответ 07.05.2012, 22:44:20
от jeka73