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

VadimA

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Прошу подсказать какой код нужно вставить в файл blog_children.php что бы показать после изображения имя автора подкатегории.
Код
<h3 class="page-header item-title"><a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($child->id)); ?>">
<?php echo $this->escape($child->title); ?>
<?php echo '<img class="img-polaroid img-thumbnail" src="'.json_decode($child->params)->image . '" />'; ?>
</a>
<?php if ( $this->params->get('show_cat_num_articles', 1)) : ?>
<span class="badge badge-info tip hasTooltip" title="<?php echo JHtml::_('tooltipText', 'COM_CONTENT_NUM_ITEMS_TIP'); ?>">
<?php echo JText::_('COM_CONTENT_NUM_ITEMS'); ?>
<?php echo $child->getNumItems(true); ?>
</span>
<?php endif; ?>
<?php if ($this->maxLevel > 1 && count($child->getChildren()) > 0) : ?>
<a href="#category-<?php echo $child->id; ?>" data-toggle="collapse" data-toggle="button" class="btn btn-mini pull-right" aria-label="<?php echo JText::_('JGLOBAL_EXPAND_CATEGORIES'); ?>"><span class="icon-plus" aria-hidden="true"></span></a>
<?php endif; ?>
</h3>
« Последнее редактирование: 24.08.2018, 10:48:58 от VadimA »
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Вывести имя автора подкатегории
« Ответ #1 : 24.08.2018, 08:16:52 »
Тут надо бд смотреть, я хз какие у вас там поля
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

VadimA

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Вывести имя автора подкатегории
« Ответ #2 : 24.08.2018, 10:51:38 »
Ссылка на таблицу categories из БД https://yadi.sk/d/yJUDu5Ps3aWzcZ
« Последнее редактирование: 24.08.2018, 11:02:00 от VadimA »
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Вывести имя автора подкатегории
« Ответ #3 : 24.08.2018, 11:42:21 »
ну тут надо через created_user_id
связывать с именем автора из таблицы юзеров
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

VadimA

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Вывести имя автора подкатегории
« Ответ #4 : 24.08.2018, 11:45:33 »
Что мне сделать? Приложить таблицу users?
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Вывести имя автора подкатегории
« Ответ #5 : 24.08.2018, 12:15:05 »
смотрите как у вас формируется вывод
смотрите по таблицам где есть имя] автора и через что оно связывается с id
делайте запрос и выводите в нужном месте
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

VadimA

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Вывести имя автора подкатегории
« Ответ #6 : 24.08.2018, 12:18:28 »
Страшно извиняюсь, но с php совсем не знаком.
Не могли бы вы помочь с этой головной болью.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Вывести имя автора подкатегории
« Ответ #7 : 24.08.2018, 12:28:16 »
тут надо видеть что и как выводится+ видеть весь код
+ саму базу
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

VadimA

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Вывести имя автора подкатегории
« Ответ #8 : 24.08.2018, 12:32:02 »
Дать Вам доступ к сайту?
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Вывести имя автора подкатегории
« Ответ #9 : 24.08.2018, 12:36:26 »
я сейчас не займусь
занят другими делами
там по сути делов на 15-30 минут

может кто и поможет или в коммерческий раздел обратитесь
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

VadimA

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Вывести имя автора подкатегории
« Ответ #10 : 24.08.2018, 12:44:05 »
Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести поля профиля Joomla

Автор romagromov

Ответов: 11
Просмотров: 1717
Последний ответ 28.04.2025, 10:25:44
от sivers
Вывести модуль в модуле

Автор jimka

Ответов: 2
Просмотров: 626
Последний ответ 18.04.2025, 15:39:36
от fbr
Блог | Тайтл, description подкатегории

Автор darkghost

Ответов: 0
Просмотров: 501
Последний ответ 02.02.2024, 22:25:53
от darkghost
Как вывести в категории VirtueMart кастомное поле с редактором?

Автор dc_web

Ответов: 4
Просмотров: 608
Последний ответ 05.10.2022, 11:07:00
от sivers
Как в конце модуля mod_articles_news вывести ссылку на страницу с блогом?

Автор androv77

Ответов: 4
Просмотров: 715
Последний ответ 20.09.2022, 11:20:29
от androv77