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

jess

  • Захожу иногда
  • 271
  • 1 / 1
Push-уведомления на сайте
« : 25.10.2016, 11:08:57 »
Здравствуйте!

Нужен плагин для настройки push-уведомлений. Кто знает, есть ли такой на Joomla?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Push-уведомления на сайте
« Ответ #1 : 25.10.2016, 11:15:40 »
что именно вы хотите пушить?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Push-уведомления на сайте
« Ответ #2 : 25.10.2016, 11:19:55 »
солидарен с вопросом dmitry_stas
А так же вот вам ссылка
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

jess

  • Захожу иногда
  • 271
  • 1 / 1
Re: Push-уведомления на сайте
« Ответ #3 : 25.10.2016, 11:29:08 »
что именно вы хотите пушить?

Push-уведомления для сайта — небольшие всплывающие сообщения, которые появляются на экране любого гаджета или монитора компьютера. Главной целью таких сообщений является информирование пользователей о каких-то событиях, касаемых сайта.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Push-уведомления на сайте
« Ответ #4 : 25.10.2016, 11:57:49 »
Push-уведомления для сайта — небольшие всплывающие сообщения, которые появляются на экране любого гаджета или монитора компьютера. Главной целью таких сообщений является информирование пользователей о каких-то событиях, касаемых сайта.
Так пушить то что
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Push-уведомления на сайте
« Ответ #5 : 25.10.2016, 12:04:22 »
Push-уведомления для сайта — небольшие всплывающие сообщения, которые появляются на экране любого гаджета или монитора компьютера. Главной целью таких сообщений является информирование пользователей о каких-то событиях, касаемых сайта.
Неверно!
Главная цель - заставить пользователя сделать лишний клик, обматерить владельца сайта и навечно уйти с него!
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Push-уведомления на сайте
« Ответ #6 : 02.11.2016, 22:03:27 »
Уже есть плагин (у меня).
Но тут верно вопрос выше прозвучал, что пушить то?
*

SaggyA

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Push-уведомления на сайте
« Ответ #7 : 21.11.2016, 11:03:21 »
А вообще, ведь более эффективно пользоваться расширениями к самой Joomla (типа https://extensions.joomla.org/extensions/extension/extension-specific/virtuemart-extensions/web-push-notification), чем сервисами, предоставляющими такую услугу? Так ведь?
Ведь используя сервис, становишься привязанным к нему - перенести подписавшихся пользователей в другой сервис нельзя. А так все пользователи навсегда с тобой плюс когда-нибудь появится возможность прикрутить пуши к CRM.
Или все же следует пользоваться внешними сервисами?
*

puzan

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
Re: Push-уведомления на сайте
« Ответ #8 : 21.11.2016, 15:59:27 »
Неверно!
Главная цель - заставить пользователя сделать лишний клик, обматерить владельца сайта и навечно уйти с него!
ЖИза ахах !
*

Gerostrat

  • Захожу иногда
  • 374
  • 2 / 0
  • Свидетель чайной ложки
Re: Push-уведомления на сайте
« Ответ #9 : 05.10.2018, 09:59:41 »
Подниму тему :-)

Кто может посоветовать компонент для сбора push-подписчиков с последующей отправкой Push-уведомлений со всеми нынешними возможностями (добавление кнопок в Push, добавление большого изображения, установление длительности отображения сообщения и т.д.)

Что ещё важно – чтобы можно было настроить плагин собирать подписчиков и на AMP и Turbo версиях сайта. Это основная причина поиска плагина/компонента, т.к. сейчас пользуюсь сторонним сервисом, который довольно удобен, но он в ближайшее время не собирается реализовывать возможность сбора подписчиков на AMP страницах, а на эти страницы приходится 25% трафика, следовательно – идёт недобор новых подписчиков и постепенное уменьшение общего их количества.

Заранее благодарен за рекомендации.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перешел с PHP 7.4 на PHP 8.1 и получаю на сайте ошибку

Автор cher68

Ответов: 3
Просмотров: 1298
Последний ответ 03.02.2023, 20:18:30
от beliyadm
Как сделать кликабельный телефон на сайте

Автор kit_andrei

Ответов: 6
Просмотров: 5794
Последний ответ 02.07.2022, 10:13:46
от marksetter
Выключить уведомления о новых пользователях на сайте

Автор romagromov

Ответов: 0
Просмотров: 721
Последний ответ 18.06.2022, 22:01:32
от romagromov
Не подгружаются картинки на сайте - хостер развел руки

Автор Zegeberg

Ответов: 5
Просмотров: 1066
Последний ответ 14.11.2021, 10:47:59
от ProtectYourSite
Включение второго языка на большом сайте

Автор Igor5

Ответов: 4
Просмотров: 1066
Последний ответ 10.06.2021, 09:55:34
от draff