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

ED_

  • Захожу иногда
  • 56
  • 2 / 0
http://www.bel-avto.biz/ на главной стоит модуль последних объявлений. в css прописал отдельный суффикс выравнивания  по центру. но само тело ячейки все равно слева выравнивается...
вот для этого суффикса код.

table.moduletable_b {
        margin: 0px 0px 0px 0px;
        width: 100%;
        border-left: solid 0px #000000;
        border-right: solid 0px #000000;
        border-top: solid 3px #04327f;
        border-bottom: solid 0px #000000;
        }

table.moduletable_b th {
  font-weight      : bold;
  color            : #04327f;
   
  padding         : 3px;
  font-size         : 10px;
  text-align       : left;
  width            : 100%;
}

table.moduletable_b td {
  font-size: 10px;
  font-weight: normal;
  text-align       : right;
 
я хочу чтобы фото выравнивались по центру. как сделать???
*

Alex Revo

  • Moderator
  • 1995
  • 109 / 0
Re: Модуль последних объявлений
« Ответ #1 : 11.09.2008, 17:30:33 »
Пропишите выранивание для .autobb_latests
*

ED_

  • Захожу иногда
  • 56
  • 2 / 0
Re: Модуль последних объявлений
« Ответ #2 : 12.09.2008, 10:06:01 »
в css файле шаблона сайта я дописал код

.autobb_latests { text-align:center; }
.autobb_latests td { text-align:center; }

а  в css файле компонента  код

/*свежие объявления и случайное объявление*/
.autobb_random { text-align:center; font-weight:bold; }
.autobb_random a:link, .autobb_random a:visited, .autobb_latests a:link, .autobb_latests a:visited { text-decoration:none; font-size:12px; }
.autobb_random .autobb_vendor { text-align:center; margin-top:10px; }
.autobb_latests img { margin:5px 0px 5px 0px; }
.autobb_latests { width:100%; }
.autobb_latests td { padding:10px; text-align:center; }
.autobb_latests .autobb_vendor { text-align:center; }
.autobb_latests .autobb_price, .autobb_random .autobb_price { color:#C50000; }


Но все равно не помогло. :(
*

Alex Revo

  • Moderator
  • 1995
  • 109 / 0
Re: Модуль последних объявлений
« Ответ #3 : 12.09.2008, 10:19:17 »
firebug вам будет в помощь.
*

ED_

  • Захожу иногда
  • 56
  • 2 / 0
Re: Модуль последних объявлений
« Ответ #4 : 12.09.2008, 10:40:26 »
сорри за глупый вопрос. а  что это такое???
*

Alex Revo

  • Moderator
  • 1995
  • 109 / 0
Re: Модуль последних объявлений
« Ответ #5 : 12.09.2008, 10:45:59 »
По гугли на эту тему.
Firebug - это плагин для Firefox, он наглядно показывает исходный код страницы и стили которые отвечают за тот или иной элемент.
Соотв. легко сделать вывод, что и где нужно исправить.
*

ED_

  • Захожу иногда
  • 56
  • 2 / 0
Re: Модуль последних объявлений
« Ответ #6 : 12.09.2008, 11:02:26 »
оки понял..спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Граббинг объявлений

Автор z0m8ie

Ответов: 34
Просмотров: 21683
Последний ответ 17.04.2015, 14:06:21
от delchev
Модуль поиска

Автор zed111

Ответов: 0
Просмотров: 4496
Последний ответ 23.09.2013, 15:05:04
от zed111
Модуль AutoBB ломает шаблон. как исправить?

Автор exanson

Ответов: 2
Просмотров: 5338
Последний ответ 20.06.2013, 19:39:12
от exanson
Модуль быстрого поиска для Joomla 1.5

Автор Dolphin

Ответов: 25
Просмотров: 10469
Последний ответ 03.05.2013, 00:10:16
от htmlcss
Заказной размер, модуль последние объявлкния

Автор Vasy112

Ответов: 2
Просмотров: 1950
Последний ответ 13.01.2013, 19:38:03
от htmlcss