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

дрэю

  • Осваиваюсь на форуме
  • 40
  • 2 / 0
Описание проблемы:
Есть сайт J2.5.6. На днях получаю письмо от ХостингЦентра о превышении лимита ввода-вывода. Вроде бы нагромождения расширений у меня нет, но решил почистить по максимуму. Удаляю rtMissioncontrol и бац, сайт в ауте. Вместо фронта и админки получаю белый экран без объяснений. Теперь ломаю голову, как быть. В принципе есть бэкап от 28.06, но хотелось бы понимать почему такие слёты случаются, да и изменения кое-какие были, восстановить бы последние изменения. Итак вопросы сообществу:
1. Почему упал сайт и что с этим делать? (какая информация нужна не знаю, говорите, напишу)
2. И как бороться с превышением этого лимита? Читал я читал интернет, но там стандартные рекомендации типа удалите всё лишнее. Что делать в случае, если лишнего нет, не пишут. К тому же на хостинге у меня планируется 5 сайтов. Запустил один на пять страничек и посещением до 10 чел/день, и уже превышение. Что говорить про остальные?!
Итог моего общения с Joomla -постоянная головная боль. То одно, то другое. Понятно, что всё от недопонимания, но система вроде как для неподготовленных пользователей, хотя надо оговориться, что она мне нравится. Ну, это лирическое отступление.
Буду благодарен и рад любой помощи.
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Re: После удаления Missioncontrol упал сайт.
« Ответ #1 : 04.07.2012, 13:35:09 »
1. Почему упал - сия тайна велика есть, но для ее разгадки выполните несколько простых действий описаных вот здесь, для Joomla 2.5.x все это тоже актуально.

2. Бороться с превышением лимита можно, но описать это в двух словах нет, ибо это зависит от множества факторов среди которых не последний фактор - жадность хостера, который просто хочет перетащить вас на более дорогой тариф (как с этим бороться - я не знаю, кроме как перейти на адекватный хостинг с нормальными ценами, коих сейчас великое множество)
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

дрэю

  • Осваиваюсь на форуме
  • 40
  • 2 / 0
Re: После удаления Missioncontrol упал сайт.
« Ответ #2 : 04.07.2012, 14:31:07 »
Спасибо за ответ и совет. И раз уж заговорили, то может посоветуете "нормальных" хостеров?
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Re: После удаления Missioncontrol упал сайт.
« Ответ #3 : 04.07.2012, 14:37:38 »
Дабы не делать рекламу, напишу вам в личку по поводу хостера и еще почитайте тему Хостинг для Joomla
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: После удаления Missioncontrol упал сайт.
« Ответ #4 : 04.07.2012, 14:40:47 »
Этот шаблон вместе с собой ставит ещё парочку плагинов. Проверьте были ли удалены они
*

дрэю

  • Осваиваюсь на форуме
  • 40
  • 2 / 0
Re: После удаления Missioncontrol упал сайт.
« Ответ #5 : 04.07.2012, 15:50:11 »
Этот шаблон вместе с собой ставит ещё парочку плагинов. Проверьте были ли удалены они
А как это сделать? В админку нет входа.
*

дрэю

  • Осваиваюсь на форуме
  • 40
  • 2 / 0
Re: После удаления Missioncontrol упал сайт.
« Ответ #6 : 04.07.2012, 20:23:20 »
Решил вопрос следующим образом. Установил на тестовый локальный сайт шаблон админпанели rt_missioncontrol, перезалил на хостинг папку шаблона (на неё была ссылка в лог файле со статусом fatalError). Буду пробывать удалять снова.
« Последнее редактирование: 04.07.2012, 20:52:25 от дрэю »
*

дрэю

  • Осваиваюсь на форуме
  • 40
  • 2 / 0
Re: После удаления Missioncontrol упал сайт.
« Ответ #7 : 04.07.2012, 21:32:21 »
В общем та же картина. При удалении этого шаблона - белый экран. Друзья, подскажите, как безболезненно можно его удалить.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: После удаления Missioncontrol упал сайт.
« Ответ #8 : 04.07.2012, 21:38:01 »
Вам уже сказали - во-первых, удалите сначала плагины, которые с ним ставятся.
Во-вторых в J 1.6-2.5 мало удалить папку шаблона, его надо деинсталлировать так же как вы деинсталлируете любое расширение.
« Последнее редактирование: 04.07.2012, 23:14:13 от SDKiller »
*

SolopoV

  • Давно я тут
  • 576
  • 16 / 0
  • зеленею...
Re: После удаления Missioncontrol упал сайт
« Ответ #9 : 14.12.2013, 19:02:19 »
У кого нибудь работает этот шаблон в Chrome? У меня не сохраняет материалы в админке.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Автоматическое сжатие фото при загрузке на сайт

Автор Amerikana

Ответов: 13
Просмотров: 4539
Последний ответ 30.06.2022, 11:52:23
от Nikita2705
Мультиязычность. При включении плагина "система - фильтр языков" сайт падает

Автор yuraok

Ответов: 10
Просмотров: 6253
Последний ответ 25.06.2022, 14:23:49
от ecolora
После активации учётной записи в неё нельзя зайти так как она выключена

Автор Александр Кардаш

Ответов: 1
Просмотров: 1315
Последний ответ 01.06.2021, 20:16:17
от Александр Кардаш
Сайт на Joomla 2.5.28 долго грузится - 1-2 минуты

Автор DanPel

Ответов: 5
Просмотров: 2152
Последний ответ 22.01.2020, 11:15:34
от SeBun
Неправильно открывается сайт

Автор totalcolor

Ответов: 4
Просмотров: 1472
Последний ответ 20.04.2019, 12:54:20
от draff