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

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Поиск в шапке сайта отлично работает, но на странице выдачи результатов не дает ничего искать, а соответственно и фильтровать запросы. Если навести курсор на кнопку поиска, а затем убрать фокус с кнопки, то она пропадает со страницы. 
Версия 3.8.3, модуль поиска стандартный.
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
ссылку хоть дайте
индивидуальная помощь: @SetAlexx
*

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
ссылку хоть дайте

вот ссылка:
« Последнее редактирование: 01.09.2022, 03:54:05 от web_signal »
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Она не пропадает, а скрывается )
Уберите с кнопки класс hasTooltip - это может помочь
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Она не пропадает, а скрывается )
Уберите с кнопки класс hasTooltip - это может помочь

Большое спасибо, кнопка перестала скрываться! Но, к сожалению, поиск от этого не заработал  :(
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Большое спасибо, кнопка перестала скрываться! Но, к сожалению, поиск от этого не заработал  :(
Так это уже совсем по другой причине. Все из-за того, что у вас в форме в атрибуте action ссылка оканчивается слешем. Но ваш .htaccess считает, что это в корне неправильно и исправляет редиректом на страницу без слеша (и без переданных параметров поиска заодно).
Вы попробуйте или ссылку в экшне подправить, ли поменять method="post" на method="get" в форме. Можно даже и то, и другое сразу.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Так это уже совсем по другой причине. Все из-за того, что у вас в форме в атрибуте action ссылка оканчивается слешем. Но ваш .htaccess считает, что это в корне неправильно и исправляет редиректом на страницу без слеша (и без переданных параметров поиска заодно).
Вы попробуйте или ссылку в экшне подправить, ли поменять method="post" на method="get" в форме. Можно даже и то, и другое сразу.

Спасибо большое! Там еще значение записывалось в другую переменную, теперь иногда работает. В чем еще может быть проблема?
« Последнее редактирование: 30.08.2022, 17:51:56 от web_signal »
*

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
А нет, он проработал до обновления страницы и теперь снова сломан  *ОХ-Х-Х*
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Так писал же выше - в этом:
Код
action="/component/search/"
а должно быть так:
Код
action="/component/search"
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Так писал же выше - в этом:
Код
action="/component/search/"
а должно быть так:
Код
action="/component/search"

Сейчас там и нет слеша, вроде:
Код
action="<?php echo JRoute::_('index.php?option=com_search'); ?>"
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Сейчас там и нет слеша, вроде:
Он там есть - посмотрите в коде страницы или в отладчике.
Чтоб не было - напишите так:
Код
action="<?php echo rtrim(JRoute::_('index.php?option=com_search'), '/'); ?>"
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
-
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Он там есть - посмотрите в коде страницы или в отладчике.

Поменяла как вы написали, в коде страницы сейчас слеша нет, однако, это все еще не помогает. В чем еще может быть проблема?
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Поменяла как вы написали, в коде страницы сейчас слеша нет, однако, это все еще не помогает. В чем еще может быть проблема?
А вот теперь верните обратно method="post" )
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

web_signal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
А вот теперь верните обратно method="post" )
Все заработало! Огромное спасибо  ^-^
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
На здоровье
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает мобильная версия сайта

Автор jeans

Ответов: 4
Просмотров: 557
Последний ответ 21.05.2025, 12:44:06
от jeans
Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 1198
Последний ответ 06.04.2025, 09:27:20
от wishlight
Не работает капча

Автор Leo1986

Ответов: 4
Просмотров: 826
Последний ответ 16.09.2024, 09:15:28
от Leo1986
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 1430
Последний ответ 02.06.2024, 13:42:45
от tigra-uki
Не могу обновить контент на странице

Автор Aleksey G

Ответов: 10
Просмотров: 992
Последний ответ 02.01.2024, 22:11:43
от Aleksey G