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

ABCroNews

  • Захожу иногда
  • 268
  • 6 / 0
  • Строим новый дом из старых кубиков)
То есть я знаю как добавить новый тип файла, например .rar которого изначально нет а самом компоненте., но почему то после установки нового шаблона у меня так и не получилось это сделать., я все сделал как и раньше но теперь при попытки добавить файл с расширением .rar просто зависает белый экран в редакторе:

А вот уже моя тема которую я создавал с подробной настройкой компонента Attachments

P.S Еще раз повторяю., что такая проблема началась после установки нового шаблона., а конкретнее я перешел с пиратского Yootheme Level со старой версией и ошибками на легальный с самой новой версией., и вот те на, то что работало на пиратском не работает на легальном :'(
*

ABCroNews

  • Захожу иногда
  • 268
  • 6 / 0
  • Строим новый дом из старых кубиков)
Ну что ни кто не чего не знает, о столь странном явлении? Может быть у кого тоже самое было, то хотя бы мне будет понятно что это не из за шаблона?
*

lotosdima

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
*

ABCroNews

  • Захожу иногда
  • 268
  • 6 / 0
  • Строим новый дом из старых кубиков)
http://joomlaforum.ru/index.php/topic,46253.msg686531.html#msg686531
Не совсем понятно что вы точно имели в виду с этой ссылкой., вы хотели сказать что там есть что то по этой теме или просто хотели обратить на мое внимание на что там большая тема по поводу этого компонента? Не могли бы вы объяснить! ^-^

 
*

MAXWELL90

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Я решил этот вопрос так. Настройки системы- раздел мультимедия, графа разрешённые расширения, там вписывайте нужные вам расширения и опаля, всё работает)
*

nightwolf

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Joomla 1.7 и attachments 3.0.2 у меня способом добавления расширений в медиа настройки(разрешенные типы файлов) далеко не все файлы загружаются. Например, mpeg-4, Flv и др. появляется это же ошибка "Invalid Token". Что делать?как быть? !
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
nightwolf - в общих настройках движка добавить нужные расширения файлов для загрузки
Если не ошибаюсь, то аттачментс работает именно от этих настроек
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

nightwolf

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
beliyadm, блин, ну, я же написал, что добавил типы файлов и это не помогает для этих форматов и некоторых других. Т.е. Для некоторых работает такой способ, а для других нет.
*

vitaska

  • Осваиваюсь на форуме
  • 36
  • 1 / 0
Подскажите пожалуйста. А как можно сделать, что бы для тех, кто не авторизовался, выдавало просто надпись типа "Для просмотра вложения авторизируйтесь"?
Может кто сталкивался.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Яндекс карты. Добавить &amp;quot;чтобы переместить карту проведите по ней двумя пальцами&amp;quot;

Автор safronoff343

Ответов: 1
Просмотров: 6013
Последний ответ 14.05.2025, 07:18:54
от Lemonez
addScript (в админке) к пути файла js добавляет /administrator/. Зачем?

Автор kkmspb

Ответов: 0
Просмотров: 911
Последний ответ 02.09.2024, 14:42:25
от kkmspb
Как добавить аддоны shortcode ultimate в sp page builder?

Автор chen

Ответов: 0
Просмотров: 2349
Последний ответ 23.07.2022, 10:16:40
от chen
SP Page Builder Возможно ли добавить кнопку в текстовое поле?

Автор AlexP750

Ответов: 7
Просмотров: 6618
Последний ответ 15.08.2021, 14:19:53
от AlexP750
Как добавить изображение ссылкой VirtueMart 3?

Автор VBedya

Ответов: 0
Просмотров: 1530
Последний ответ 27.04.2021, 13:02:05
от VBedya