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

efimov777

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
У меня есть модуль Microblog который выводит контент в виде блога . Как в меню указать ссылку не на страницу контента а на этот модуль чтобы сразу открывалась страница с этим блогом в котором уже будут содержаться страницы маетериала. Т.е как сделать ссылку в меню не на материл а на модуль.? спс.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод модуля в пункте меню...
« Ответ #1 : 23.04.2010, 10:11:41 »
ну создай в меню пункт-ссылку на нужную страницу. или у тебя блог ещё не опубликован?
что значит "у меня есть микроблог" ?
*

efimov777

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Вывод модуля в пункте меню...
« Ответ #2 : 23.04.2010, 11:31:52 »
 {loadposition name} - точно ! можно так .  Спс.

Joomla сама может представлять материалы категории в виде блога - да может но мне нужен именно этот  модуль "Microblog" , там всяке красивости ...

Спасибо!
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #3 : 16.07.2010, 20:14:20 »
{loadposition name}
А что это такое, если не секрет?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод модуля в пункте меню...
« Ответ #4 : 16.07.2010, 20:37:39 »
это-волшебная абра-швабра-кадабра.
вызывает снутри материала модуль, опубликованный в данной (name) позиции
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #5 : 16.07.2010, 20:57:39 »
это-волшебная абра-швабра-кадабра.
вызывает снутри материала модуль, опубликованный в данной (name) позиции
Типа, недокументированный плагин? ;)

А много еще таких швабр и где про них почитать мона?

ЗЫ И как же все-таки опубликовать ссылку на модуль — у меня похожая задача, тока модуль другой, попроще, но из этого топика я чет так и не вкурил.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод модуля в пункте меню...
« Ответ #6 : 16.07.2010, 21:05:56 »
ну почему же-никто его особо не прятал.
залезь в плагины, там  найди Content - Load Module
это оно и есть. если он включён, то
а) создаёшь материал, пишешь там текстовку, если надо, а ниже вставляешь текстом {loadposition mypos}
б) лезешь в Модули, нужному модулю вбиваешь в поле "позиция" mypos.
Т.е. просто жмёшь на верхнее поле выпадающего списка и туда ручками пишешь "mypos" без кавычек.
всё
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #7 : 16.07.2010, 21:07:35 »
Ога, понятно. Плюсанул.
А как насчет моего ЗЫ-вопроса?
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #8 : 16.07.2010, 21:13:36 »
Ссылку дать на материал в который вставлен модуль.
Да это понятно. Но у меня кроме этого модуля и меню ничего больше не выводится на странице, т.е. материала по идее как такового не надо. Я думал, может, можно как-то сделать, что указываешь ссылу на модуль и выводится страница с ним.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод модуля в пункте меню...
« Ответ #9 : 16.07.2010, 21:17:43 »
угу. если создашь пункт меню, который никуда не будет вести но при этом будет работать, то можешь просто в шаблоне прописать нужную позицию по центру и всё заработает
как создашь, позови-я хочу на это посмотреть ))))
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод модуля в пункте меню...
« Ответ #10 : 16.07.2010, 21:36:00 »
NightGuard, ты-кайфоломщик и убийца прогресса.
вдруг бы у человека получилось создать рабочий пункт "в никуда"?
а теперь мы этого никогда не узнаем...
ну а вообще-статья мне в данном случае беольше нравится, наверно. потому как второй пример надо объяснять, как устроен, а это -лень :)
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #11 : 16.07.2010, 21:49:25 »
effrit, зачем же так? ))  Можно сделать пункт "Блог материалов на главной", и дописав в шаблон проверку по ItemID выводить просто один модуль, без вывода блока контента) Сам ведь знаешь это))
Как раз этим щас и пытаюсь заниматься :)

Просто делаю челу небольшой сайт-портфолио. И основной контент — страница, на которой висит модуль слайдшоу (их будет несколько). И всего пара страниц с текстом - типа, об авторе, контакты.
 Т.е. получается какбэ двойная работа - при появлении нового раздела фоток (физически - папка на диске), просто копируем модуль слайдшоу и скармливаем ему эту папку. А так — надо еще помнить, что нужно еще и скопировать/создать статью, причем, пустую по сути.
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #12 : 16.07.2010, 21:53:03 »
удалено
« Последнее редактирование: 17.07.2010, 01:07:12 от drobinkin »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод модуля в пункте меню...
« Ответ #13 : 16.07.2010, 22:02:15 »
drobinkin, обычно для таких целей всё же используют плагины - это более естественно решение, чем плодить стопицотмильёнов модулей.
ну, или модуль допилить так, чтобы он сам получал папку по id меню, чтобы можно было 1 модуль юзать, без клонов. но по сути это всё изврат, т.к. именно для таких задач и созданы плагины
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #14 : 16.07.2010, 22:07:49 »
drobinkin, обычно для таких целей всё же используют плагины - это более естественно решение, чем плодить стопицотмильёнов модулей.
Можно в двух словах описть хотя бы технологию, а тоя после дня извратов уже совсем че-то плохо соображаю.
« Последнее редактирование: 17.07.2010, 01:05:38 от drobinkin »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод модуля в пункте меню...
« Ответ #15 : 16.07.2010, 22:35:11 »
так же создаются статьи, только вместо прикручивания модулей ставится ОДИН плагин, который потом в тексте вызывается, к примеру, с параметром "путь до папки" и формирует в статье галерею.
плагинов галерей-выше крыши. есть и карусели. при этом не недо извращаться с модулями и условиями в шаблоне
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Вывод модуля в пункте меню...
« Ответ #16 : 16.07.2010, 23:05:13 »
так же создаются статьи, только вместо прикручивания модулей ставится ОДИН плагин, который потом в тексте вызывается, к примеру, с параметром "путь до папки" и формирует в статье галерею.
плагинов галерей-выше крыши. есть и карусели. при этом не недо извращаться с модулями и условиями в шаблоне
точно. чуяла моя ж... сердце :) спасибо за наводку.
Правда, плагинов с нужным мне функционалом пока чет не встречал — в основном, модули :)
« Последнее редактирование: 17.07.2010, 01:05:21 от drobinkin »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

убрать из меню заголовки h3

Автор nexter

Ответов: 19
Просмотров: 7889
Последний ответ 03.02.2020, 18:49:47
от durte
При добавлении нового пункта меню не отображается содержимое

Автор Denko

Ответов: 2
Просмотров: 3296
Последний ответ 16.01.2020, 18:40:55
от Denko
Не нажимается пункт меню на мобильной версии

Автор Sensession

Ответов: 7
Просмотров: 4797
Последний ответ 04.01.2020, 16:45:27
от xpank
Не отображаются пункты в меню

Автор physic

Ответов: 20
Просмотров: 23005
Последний ответ 20.09.2019, 16:54:01
от beliyadm
Как в ARI Ext Menu добиться работы параметра "Показать в меню"?

Автор vasmed

Ответов: 1
Просмотров: 3543
Последний ответ 01.03.2019, 11:12:18
от vasmed