Новости 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 Ответов
  • 14087 Просмотров
*

Backspace

  • Новичок
  • 5
  • 0 / 0
После обновления до 3.1.5 появился глюк со всплывающими подсказками в формах регистрации, обратной связи и т.д., например, вместо "Введите желаемый логин" всплывает "<strong>Логин</strong></br>Введите желаемый логин" и т.д., а после того, как курсор с названия поля убрать, то название поля вовсе исчезает. Если по названиям всех полей провести, то они все исчезнут, появляются опять только после обновления страницы.
Что делать?
*

Dimson1

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
А у меня при наведении курсора изображение начинало дёргаться, как бы освобождая место для этой подсказки, хотя сама подсказка выплывала в другом месте, в общем была полная ерунда. Когда произвёл те действия, что вы указали у меня стало так как у вас было изначально (то есть надпись с тегам) и всё же это лучше чем было. Спасибо. И если вообще убрать эту строку, то ничего не меняется, подсказка выскакивает с тэгами.
Подскажите, а как сделать что бы эта подсказка вообще не выскакивала.
*

Romans79

  • Новичок
  • 9
  • 0 / 0
Такая же херь Форма вся дергается как это решить?  Всплывающие подсказки отодвигают инпуты в право. Кто решил поскажите пожалуйста
*

Mizar066

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Короче, сам себе и отвечаю:
Мне помогло!
Короче, сам себе и отвечаю:
Мне помогло!

Помогает только частично, стиль всплывающих подсказок просто пропадает и все! Вместо hasTooltip можно хоть матерное слово написать, итог один, подсказки всплывают но без стилей.


Подскажите, где все же можно поправить стиль hasTooltip? Мне бы эффект "display: none;" убрать.

Собственно говоря моя проблема описана тут: http://joomlaforum.ru/index.php/topic,280118.0.html
*

Dimson1

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
После обновления до Joomla 3.2 опять появился пресловутый глюк со всплывающими подсказками который решается тем же способом, что и описал Backspace , только строки, где происходит замена находятся ниже, а именно, не строка 489, а строка 692 и не строка 497, а строка 701.

Всем удачи со стабильной версией.
*

Dimson1

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Глюк со всплывающими подсказками есть ещё в одном месте, при публикации материала с помощью блога категорий в низу страницы  там где происходит нумерация страниц . Нажимая на единичку, всплывающая подсказка всплывает на большом расстоянии от того места где она должна быть. Ждал обновления до  следующей версии, думал, что после обновления до Joomla 3.2 эта проблема сама рассосётся, но я ошибся.
Может кто что знает? А то подозрительно как то все молчат, ведь это скорей всего у всех. Или хотя бы, может кто знает как вообще убрать эти всплывающие подсказки?
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
В деф. шаблоне Protostar таких багов нет. Отсюда вывод - проблема в шаблонах. Например в шаблоне T3_blank версии 1.4.1 этот баг есть во всплывающих подсказках над кнопкой настроек модулей, а в форме регистрации все ок. Поэтому не стоить править ядро ради того, чтобы решить проблему шаблонов. Тем более, что после каждого обновления это будет слетать.

Лучше найти, в чем причина.
*

Dimson1

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Спасибо за ответ.
Действительно в дефолтном шаблоне таких багов нет.
*

vladimirwk

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Проблема в том, что в шаблонах отсутствуют CSS стили для всплывающих подсказок, а в protostar они есть. Поэтому открывает template.css в protostar и копируем строки с 3949 по 4024 и вставляем в template.css вашего шаблона и будет вам счастье.
*

Dimson1

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Спасибо vladimirwk. Я столько времени убил на решение этой проблемы и уже просто случайно зашёл на эту страницу, а тут решение!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Ошибка после установки Joomla 3 (sql)

Автор InWish

Ответов: 19
Просмотров: 12865
Последний ответ 19.03.2014, 00:01:42
от InWish
[Решено] После смены домена не пускает в административную панель / на сайт

Автор Kuzmitch

Ответов: 0
Просмотров: 10050
Последний ответ 25.11.2012, 16:42:17
от Kuzmitch