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

hiway

  • Осваиваюсь на форуме
  • 22
  • 8 / 1
  • Это просто путь длинною в жизнь...
Решил поставить 1.5.1 не на локалку а на сервер в итоге сразу при установке вот такое сообщение

Detecting error(s)

Fatal error: Call to undefined function xml_parse() in /home/somsite/domains/mysite.ru/public_html/libraries/joomla/utilities/simplexml.php on line 236


Кто знает, что это значит?
« Последнее редактирование: 11.02.2008, 09:28:19 от Greycat »
*

hiway

  • Осваиваюсь на форуме
  • 22
  • 8 / 1
  • Это просто путь длинною в жизнь...
Извиняюсь за офтоп. Все решилось. Вопрос не joomla! а хостинга. Если у кого такая же проблема, то попробуйте  пропишите
в файл .htaccess эти строки
AddHandler x-httpd-php5all .php .inc .php5
AddHandler x-httpd-php4 .php4

У меня заработало.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
хм...у хостера два пхп?
как интересно.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

hiway

  • Осваиваюсь на форуме
  • 22
  • 8 / 1
  • Это просто путь длинною в жизнь...
Да действительно, в тарифном плане указано наличие двух версий пхп.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
ну моё предварительное мнение такое - по-умолчанию используется обработчик пхп4 и там, видимо нету соотв. библиотеки xml_parser-а, а на пхп 5 есть.
потому идет указание обрабатывать .php через интерпретатор пхп5
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

hiway

  • Осваиваюсь на форуме
  • 22
  • 8 / 1
  • Это просто путь длинною в жизнь...
Да, все верно вы говорите. Скорее всего именно так. Потому как если ставить 1.0.x joomla! на этот же хост, то она ставится просто в инсталлире не пишется что есть поддержка xml.
*

voffka

  • Новичок
  • 9
  • 0 / 0
Извиняюсь за офтоп. Все решилось. Вопрос не joomla! а хостинга. Если у кого такая же проблема, то попробуйте  пропишите
в файл .htaccess эти строки
AddHandler x-httpd-php5all .php .inc .php5
AddHandler x-httpd-php4 .php4

У меня заработало.
*

voffka

  • Новичок
  • 9
  • 0 / 0
Не помогло. А куда именно надо вписать?
*

hiway

  • Осваиваюсь на форуме
  • 22
  • 8 / 1
  • Это просто путь длинною в жизнь...
Не помогло. А куда именно надо вписать?
В самом начале  .htaccess. Но это в случае, если у вас ситуация как у меня. То есть стоит два php и в четверке отсутствует библиотека обработки XML
*

voffka

  • Новичок
  • 9
  • 0 / 0
Спасибо за оперативный ответ! Всё-равно не помогло..  Я уже узнал у хостера. php 5.2.3 - так что должно работать. Где-то вычитал что надо откоючить safe mode. Попросил - отключили. Не помогло. Уже попробовал установить распакованную Joomla на хостинг и устанавливать там. - те же яйца. Та же ошибка. Сколько не искал в поисковиках - везде одни и те же ответы. Может ещё что-то посоветуете? С Joomla 1.0 - всё беспроблемно. А тут прямо тупик :)
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
а почему бы у хостера не спросить, установлена ли у них библиотека XML-парсера или нет?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

hiway

  • Осваиваюсь на форуме
  • 22
  • 8 / 1
  • Это просто путь длинною в жизнь...
а почему бы у хостера не спросить, установлена ли у них библиотека XML-парсера или нет?
+1
Надо было собственно с этого и начать.
*

voffka

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

Как заставить Joomla 1.5 работать на сервере с MySQL версии 5.7 и выше?

Автор Palomnik

Ответов: 14
Просмотров: 8303
Последний ответ 01.10.2024, 00:22:40
от jesus
Как перенести сайт с сервера на сервер? (с хостинга на локалку и наоборот)

Автор djed9

Ответов: 244
Просмотров: 118943
Последний ответ 06.07.2020, 23:28:32
от SeBun
Проблема с категорией id1 при миграции

Автор dron

Ответов: 6
Просмотров: 5651
Последний ответ 08.10.2019, 20:04:49
от dron
проблема с установкой 1.5\1.7\2.5

Автор izya_ppp

Ответов: 12
Просмотров: 2997
Последний ответ 17.08.2017, 15:13:51
от dmitry_stas
[Решено] Как обновить Joomla 1.5 (версии, способы обновления и т.д.)

Автор Danka

Ответов: 45
Просмотров: 196411
Последний ответ 06.04.2017, 12:14:12
от SeBun