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

skylink67

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Как создать footer?
« : 23.06.2015, 20:38:01 »
У меня шаблон beez3 и у него отсутствует footer, как его добавить?
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Re: Как создать footer?
« Ответ #1 : 23.06.2015, 20:59:54 »
Что такое footer?
*

skylink67

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Как создать footer?
« Ответ #2 : 23.06.2015, 21:21:09 »
конец сайта
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Re: Как создать footer?
« Ответ #3 : 23.06.2015, 21:49:43 »
Улыбнули)) Что за конец сайта?
*

skylink67

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Как создать footer?
« Ответ #4 : 23.06.2015, 21:52:29 »
Вы что издеваетесь надо мной?
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
Re: Как создать footer?
« Ответ #5 : 23.06.2015, 21:58:54 »
Вадминке добавьте модуль Footer и опубликуйте его в позиции footer и будет вам футер.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Как создать footer?
« Ответ #6 : 23.06.2015, 22:00:10 »
skylink67, есть же footer у beez3. Или вы хотите чего-то другого?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AnnSwamp

  • Захожу иногда
  • 151
  • 1 / 0
Re: Как создать footer?
« Ответ #7 : 23.06.2015, 22:03:02 »
Вы что издеваетесь надо мной?
какой вопрос такой и ответ
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Как создать footer?
« Ответ #8 : 23.06.2015, 22:11:10 »
По-моему, ТС вполне ясно выразился: неужели никогда не использовали слово footer?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AnnSwamp

  • Захожу иногда
  • 151
  • 1 / 0
Re: Как создать footer?
« Ответ #9 : 23.06.2015, 22:21:41 »
По-моему, ТС вполне ясно выразился: неужели никогда не использовали слово footer?
ну не понятно же, что имеется виду.... шаблон дефолтный, следовательно в темплейте блок футера есть, позиция тоже должна быть. Вопрос в том, что конкретно нужно - вывести позицию в футере, добавить эту позицию в футер или (чем черт не шутит) блок футера в верстку.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Как создать footer?
« Ответ #10 : 23.06.2015, 22:28:38 »
[offtop]
ТС написал, что отсутствует footer, но вместо выяснения причины придирались именно к этому слову.
[/offtop]
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

skylink67

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Как создать footer?
« Ответ #12 : 23.06.2015, 22:49:57 »
.
*

skylink67

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Как создать footer?
« Ответ #13 : 23.06.2015, 22:51:33 »
skylink67, есть же footer у beez3. Или вы хотите чего-то другого?
Нет нету футера в beez3, его надо туда добавить, но я не знаю как это сделать
*

AnnSwamp

  • Захожу иногда
  • 151
  • 1 / 0
Re: Как создать footer?
« Ответ #14 : 23.06.2015, 23:07:18 »
Нет нету футера в beez3, его надо туда добавить, но я не знаю как это сделать
открываем index.php вашего шаблона и в нужное место добавляем блок футера
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Как создать footer?
« Ответ #15 : 24.06.2015, 00:54:37 »
Нужно проверить, чтобы в шаблоне была позиция footer, если нет, то добавить её по аналогии с другими позициями.
Как правило позиции добавляются в index.php шаблона.
Если необходимо оформление, то понадобится изучить основы CSS.
*

skylink67

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Как создать footer?
« Ответ #16 : 24.06.2015, 01:18:25 »
я понял
*

skylink67

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Как создать footer?
« Ответ #17 : 24.06.2015, 01:18:48 »
У меня такой вопрос ещё мне кто нибудь ответит в другой теме?
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Как создать footer?
« Ответ #18 : 24.06.2015, 01:31:51 »
Сейчас, соберем брифинг и назначим ответственного.
Кофе с молоком подать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться