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

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
https://webors.in.ua/forma-obratnoy-svyazi-ajax-webfactor-form/
Сайт что то не работает.
А можно прямую ссылку на файл. Может на облако?
Спасибо за модуль. Пользуюсь с удовольствием)
*

ELiz

  • Новичок
  • 1
  • 0 / 0
Как сделать так, чтобы сообщения приходили на почту?
*

stalkerdp500

  • Новичок
  • 2
  • 0 / 0
Всем, привет! Отличный модуль, давно пользуюсь. Недавно заметил в консоле ошибку на страницах где включена форма
Uncaught TypeError: $(...).inputmask is not a function
    at HTMLDocument.<anonymous> (100-otdelochnik-gipsokartona:186)
    at c (jquery.min.js:3)
    at Object.fireWith [as resolveWith] (jquery.min.js:3)
    at Function.ready (jquery.min.js:3)
    at HTMLDocument.H (jquery.min.js:3)


jquery.min.js:3 подгружает библиотеку яндекса https://yandex.st/jquery/1.9.1/jquery.min.js она используется в форме, и можно ли ее както поменять?

Заранее извиняюсь, если вопрос глупый, в программировании не силен
*

tigra-uki

  • Давно я тут
  • 565
  • 11 / 0
  • Joom'лiстка
Здравствуйте, спасибо за отличный модуль!
Подскажите, пожалуйста, какие условия необходимы для того, чтобы на странице работало несколько модулей?
(если все кнопки модулей (PopUp) загружены в loadposition внутри других модулей)
В данный момент отображается только одна кнопка.

p.s.: извините, разобралась - было не включено "Обрабатывать плагинами" :(
« Последнее редактирование: 16.02.2018, 03:42:58 от tigra-uki »
Слишком сконцентрированное внимание необходимо разбавлять действием.
*

yugoru

  • Новичок
  • 1
  • 0 / 0
Скажите пожалуйста, а как можно сделать, чтобы все поля были обязательными для заполнения? В частности - очень нужно сделать чекбокс с согласием на обработку личных данных, и чтоб без него человек не мог отправить вопрос, и не могу найти как.
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Ребята, простите если не отвечал долго. Видимо у меня слетела подписка на обновление данной темы. Сорри если кому-то не смог помочь вовремя.

Сейчас заканчивают новую версию модуля. Название тоже поменяется, теперь будет AWF Form, так вроде круче звучит )

Из новинок:
- переработана вкладка управления полями формы
- добавлено поле "Календарь"

В данный момент создаю инструкцию, которая будет постоянно висеть во вкладке с полями и в которой будет вся информация о том как обращаться с полями в колонке "Параметры поля"

Короче, держу к курсе )
*

Pizzadox

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
orsy, а как можно прикрепить файл к сообщению? В форме таких настроек нет.
*

Eholov

  • Захожу иногда
  • 170
  • 14 / 0
orsy, спасибо за модуль. Очень понравился. Хорошо, что можно и PopUP окном и форму в станицу встроить. На этом сайте https://mwlogistics.ru/ Все формы контактов сделаны на этом модуле. Донат скидывал. Вот бы еще к нему капчу прикрутить.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
спасибо за форму.
все работает, только вот горизонтальное центрирование модального окошка лучше делать через
Код
transform: translate(-50%, -50%);
тогда не придется ставить ему фиксированную ширину и подгонять потом фиксированный же отступ  ;)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
здра.
почему-то модуль не работает на главной странице сайта - данные отсылаются, но при этом форма зависает в статусе отправления, а консоли видно 500 ошибку.
проверено на протостаре - те же грабли. на внутренних страница все ок.

UPD
сорян, нашел конфликтующий плагин, буду разбираться, что не нравится ему
*

yurykom

  • Захожу иногда
  • 73
  • 1 / 0
Доброго дня!
Подскажите, кто сталкивался. Как правильно настроить цель для Яндекс. До Google еще не дошел, но тоже нужно будет. Вставлял и в поле "JS код перед отправкой" и в "JS код после отправки". Может код какой-то неправильный, но разные варианты пробовал. Или перестает работать форма или работает, но не проходит в метрику. Есть рабочий вариант может у кого?
*

yurykom

  • Захожу иногда
  • 73
  • 1 / 0
Похоже, ошибка была в имени цели (имя использовалось в  url некоторых страниц сайта)
« Последнее редактирование: 04.02.2020, 12:15:05 от yurykom »
*

yurykom

  • Захожу иногда
  • 73
  • 1 / 0
Теперь вопрос, как одновременно передавать цели Яндекс метрики и Google аналитике. Пробовал писать через ;
не выходит
*

sergkh

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
Загрузил модуль по ссылке https://webors.in.ua/ext_update/full_version/mod_ajax_webfactor_form_v2.0.8.zip
Установил. Вопрос: где календарь?
Цитировать
Из новинок:
- переработана вкладка управления полями формы
- добавлено поле "Календарь"
или я не то загрузил?
« Последнее редактирование: 06.03.2020, 21:25:19 от sergkh »
*

wayn

  • Захожу иногда
  • 72
  • 0 / 0
Почему лезут ошибки. Модуль переустанавливал, бестолку(((

Код
Warning: count(): Parameter must be an array or an object that implements Countable in
public_html/modules/mod_ajax_webfactor_form/includes/buildfield.php on line 8

Warning: array_multisort(): Argument #1 is expected to be an array or a sort flag in
public_html/modules/mod_ajax_webfactor_form/includes/buildfield.php on line 189

Warning: count(): Parameter must be an array or an object that implements Countable in
public_html/modules/mod_ajax_webfactor_form/includes/buildfield.php on line 196

Warning: count(): Parameter must be an array or an object that implements Countable in
public_html/modules/mod_ajax_webfactor_form/includes/buildfield.php on line 254
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Это предупреждения. Скорее всего из за версии php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Radical Form - бесплатная ajax форма обратной связи, которая не ломает дизайн

Автор Progreccor

Ответов: 304
Просмотров: 46603
Последний ответ 30.03.2025, 19:07:40
от folkemon
QuickForm - форма с функциями калькулятора и зависимыми полями

Автор varX

Ответов: 1332
Просмотров: 204711
Последний ответ 29.09.2021, 16:40:57
от varX
Форма обратной связи для Joomla 2.5

Автор ForQue

Ответов: 0
Просмотров: 3132
Последний ответ 10.01.2021, 10:57:08
от ForQue
Модуль конструктор формы обратной связи simpleForm2 для Joomla 1.0 / joostina 1.2

Автор vs12345

Ответов: 21
Просмотров: 23024
Последний ответ 25.09.2020, 16:21:22
от svarg
Perfect ajax Popup Contact Form не отправляет вложения

Автор fireman

Ответов: 0
Просмотров: 3030
Последний ответ 11.04.2019, 18:50:20
от fireman