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

krovidey

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Да и как видите странный вид имеет инстал. Проверял разные рабочие Joomla, но эффект тот же.
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
перезаливайте файлы на хостинг. И проверяйте, что ВСЕ файлы перенеслись корректно.
*

krovidey

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Трижды сделал. Толку ноль. А как проверить? если нажал распаковать и все. Не ругается, но выдает такую отвратную дрянь. Стопорит работу.
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Трижды сделал. Толку ноль. А как проверить? если нажал распаковать и все. Не ругается, но выдает такую отвратную дрянь. Стопорит работу.
Ну если архив распаковываете на хостинге, то от куда тогда брали этот архив?
Потому что есть очень большое подозрение что просто не хватает файлов.
Берите архив с оф. сайта Joomla.org.
*

krovidey

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Все что было в public_html удалено. Поставил заново с сайт Joomla.org. Та же ситуация повторилась.
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
значит проблема может быть в хостинге, других вариантов думаю нет. Так как у вас даже CSS не подгружаются.
*

василь

  • Новичок
  • 8
  • 0 / 0
Такая же проблема. Не работает кнопка далее. На локальном хостинге все работает отлично, а на хостинге нет.
Ошибки FireBug :
ReferenceError: Tips is not defined
   var JTooltips = new Tips($$('.hasTip'), { maxTitleChars: 50, fixed: false});
index.php# (строка 25, столбец 7)

ReferenceError: Install is not defined
   
...C "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm...
index.php# (строка 1)
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
значит не все скрипты подключились
может чего-то не докачалось
на хостинг архивом заливалось или как вообще устанавливалось?
*

василь

  • Новичок
  • 8
  • 0 / 0
значит не все скрипты подключились
может чего-то не докачалось
на хостинг архивом заливалось или как вообще устанавливалось?
На хостинг закачал распакованный с официального сайта быстрый старт.
Да, Вы правы. Не закачался всего один файл сценария mootools-more-uncompressed.js Все заработало.
« Последнее редактирование: 04.12.2014, 20:17:42 от василь »
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
На хостинг закачал распакованный с официального сайта быстрый старт.
а запакованный архив залить на хост и распаковать его там не судьба?
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
На хостинг закачал распакованный с официального сайта быстрый старт.
Да, Вы правы. Не закачался всего один файл сценария mootools-more-uncompressed.js Все заработало.
Как можно так ответить?
1) официального быстрого старта нет, есть просто утановщик
2) 1 файл не может недокачаться, если залито архивом - либо все ок, либо архив поврежден и распаковка не пройдет.
*

василь

  • Новичок
  • 8
  • 0 / 0
Как можно так ответить?
1) официального быстрого старта нет, есть просто утановщик
2) 1 файл не может недокачаться, если залито архивом - либо все ок, либо архив поврежден и распаковка не пройдет.
С официального сайта, не с вареза, скачал быстрый старт шаблона jsn .......
На хостинге установил приложение Joomla 3, за считанные секунды появились все файлы, я удалил configuration.php, заменил файлы отличающиеся размером, докачал недостающие файлы от быстрого старта + папку installation.
Установка шаблона пошла хорошо.
« Последнее редактирование: 04.12.2014, 21:12:38 от василь »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор Palomnik

Ответов: 14
Просмотров: 8302
Последний ответ 01.10.2024, 00:22:40
от jesus
При переносе на новый хостинг Ошибка 500

Автор Ecspert

Ответов: 11
Просмотров: 4036
Последний ответ 14.08.2022, 14:04:28
от Ecspert
Как установить Joomla 1.5 на php 7?

Автор Marius

Ответов: 8
Просмотров: 3948
Последний ответ 30.05.2021, 21:11:21
от Marius
При попытке войти в админку 404 ошибка компонента - Joomla 1.5: Общие вопросы

Автор omezik

Ответов: 1
Просмотров: 3560
Последний ответ 30.08.2019, 16:10:56
от voland
Нужно починить модуль импорта на сайте Joomla

Автор matus-8

Ответов: 0
Просмотров: 3349
Последний ответ 22.08.2019, 15:09:17
от matus-8