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

DmWagner

  • Захожу иногда
  • 53
  • 1 / 0
Всем привет!
Ребята, подскажите, никак не могу понять, как вывести изображение с тела новости в категории.
То есть, добавляем в новость изображение, вставляем его по ссылке с другого ресурса, как это изображение вывести с кратким описанием в списке категорий?
Что бы в списке категорий краткое описание выводилось с этим изображением?

Ищу ответ и никак найти не могу, уже все перелазил, ткните носом пожалуйста!
*

DmWagner

  • Захожу иногда
  • 53
  • 1 / 0
Ребята, это вообще реально или нет?
Просто модуль raxo allmode k2 делает такое, выводит первое сообщение с статьи вставленное по ссылке...
Вот код отвечающий за это с этого модуля:
Код
if ($img['src']) {
                    // Image Parameters
                    $img_src1 = $img_src2 = $img_prm = '';
                    if ($image_width || $image_height) {
                        $img_src1    = JURI::base(true).'/modules/mod_raxo_allmode_k2/tools/tb.php?src=';
                        $img_src2    .= ($image_width)? '&amp;w='. $image_width : '';
                        $img_src2    .= ($image_height)? '&amp;h='. $image_height : '';
                    }
                    if ($image_crop && $image_width && $image_height) {
                        $img_src2    .= '&amp;zc=1';
                        $img_prm    = ' width="'. $image_width .'" height="'. $image_height .'"';
                    }
                    $img_src1        = ($img_src1 && strncasecmp($img['src'], "http", 4)!== 0)? $img_src1.JURI::base(true).'/' : $img_src1;
                    $img['ttl']        = ($image_title)? trim(htmlspecialchars($item->title)) : @$img['ttl'];
                    $img_prm        .= ($img['ttl'])? ' title="'. $img['ttl'] .'"' : '';

                    // Create Thumbnail
                    $lists[$i]->image    = '<img src="'. @$img_src1 . $img['src'] . @$img_src2 .'"'. @$img_prm .' alt="'. @$img['alt'] .'" />';
                    $lists[$i]->image    = ($image_link)? '<a href="'. $lists[$i]->link .'">'.$lists[$i]->image.'</a>' : $lists[$i]->image;
                    $lists[$i]->image_src    = @$img['src'];
                    $lists[$i]->image_alt    = @$img['alt'];
                    $lists[$i]->image_title    = @$img['ttl'];
                }
*

DmWagner

  • Захожу иногда
  • 53
  • 1 / 0
И разработчики молчат, такое ощущение что решить этот вопрос никому не в силах)))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как назначить категории отдельный K2.css?

Автор a_newbie

Ответов: 128
Просмотров: 43715
Последний ответ 26.10.2017, 15:53:21
от Dusk09
Как поменять размер картинки по высоте в категории?

Автор surgeonleks

Ответов: 0
Просмотров: 3247
Последний ответ 23.03.2015, 13:50:27
от surgeonleks
Выравнивание изображений в списке категории

Автор adcroco

Ответов: 4
Просмотров: 1828
Последний ответ 27.02.2014, 20:35:50
от adcroco
Как изменить фон категории К2?

Автор GrafSygamak

Ответов: 12
Просмотров: 1878
Последний ответ 18.02.2014, 11:31:41
от GrafSygamak
Организация категории в виде каталога

Автор Paquito

Ответов: 0
Просмотров: 1475
Последний ответ 26.03.2013, 08:50:00
от Paquito