Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#joomla #разработка

Свои типы полей в 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 для атрибута addfieldprefixnamespace 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 #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 2742 Просмотров
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
Здравствуйте!
Хотел бы использовать значение дополнительного поля в теге meta. Как сформировать тег, я уже понял. А как получить значение поля не могу найти информации. Может у кого есть образец/пример получения значения этого поля для J4? Был бы очень благодарен.
Спасибо!
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Вот пример получения доп.полей материала:
Код
use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
...
$fields = FieldsHelper::getFields('com_content.article', $article, true);

Подробнее можно посмотреть реализацию метода вот здесь:
Код
/administrator/components/com_fields/src/Helper/FieldsHelper.php
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
Спасибо! Буду разбираться.
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
Пока удалось получить данные поля: ID, title, name и т.д. Но не могу понять, как получить значение поля именно для текущей статьи. Не подскажете?
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Пока удалось получить данные поля: ID, title, name и т.д. Но не могу понять, как получить значение поля именно для текущей статьи. Не подскажете?
Значение получите, если вторым параметром передадите ваш объект (статью), для которого поля запрашиваете.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
Получилось вот так:
Спойлер
[свернуть]
$fields3 и есть искомое значение.
sivers, спасибо!
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
на здоровье
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
После небольшого периода использования этого способа получения значения поля оказалось, что он не очень удобный. Дело в том, что при изменении порядка полей, например при добавлении нового поля, нужно менять цифру, которая стоит в скобках []. В данном случае это '0' - т.е поле стоит первым в списке полей:
Код
$fields2=$fields[0];
Если поле окажется третьим, то нужно будет поменять ноль на двойку.
Более удобно, когда можно использовать id поля. Вот этот способ:
Код
$this->item->jcfields[6]->value;
или
Код
$this->item->jcfields[6]->rawvalue;
Где '6' это id поля. Использование value или rawvalue зависит от типа поля, насколько я понял.
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Дело в том, что при изменении порядка полей, например при добавлении нового поля, нужно менять цифру, которая стоит в скобках [].
А никто так и не делает, если честно :)
Обычно полученный массив полей прогоняют в цикле и строят ассоциативный массив с ключами из name или id доп.полей, которые не меняются при изменении массива. И потом уже по ним обращаются к конкретному полю.
Можно попробовать еще такой способ:
Код
$jcfields = array_combine(array_column($this->item->jcfields, 'name'), $this->item->jcfields);
print_r($jcfields);
Если не ругнется, то построит ассоциативный массив без цикла.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
Только через два месяца дошел смысл сказанного ^-^ Так и поступил. Только массив создаю через foreach. Спасибо!
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Только через два месяца дошел смысл сказанного ^-^ Так и поступил. Только массив создаю через foreach. Спасибо!
На здоровье. Цикл foreach бывает довольно долгим, если надо обходить более 1к элементов. Но с доп.полями у вас вряд ли такое возникнет.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
$jcfields = array_combine(array_column($this->item->jcfields, 'name'), $this->item->jcfields);
print_r($jcfields);

В дополнение. Если требуется массив вида ['имяполя' => 'значение', ...] то можно так:
Код
$jcfieldsvals = array_column($this->item->jcfields, 'value', 'name');
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
Значение получите, если вторым параметром передадите ваш объект (статью), для которого поля запрашиваете.
Подскажите пожалуйста, как в модуле mod_articles_category получить объект родительской категории? По Id категории получаю только поля, но не значения.
Код
Fields = FieldsHelper::getFields('com_content.categories', $item->catid, true);
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Код
use Joomla\CMS\Categories\Categories;
...
$category = Categories::getInstance('Content')->get(18);

Вместо 18 - ИД вашей категории.
Content - расширение, чьи категории хотите получить.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
Код
use Joomla\CMS\Categories\Categories;
...
$category = Categories::getInstance('Content')->get(18);

Вместо 18 - ИД вашей категории.
Content - расширение, чьи категории хотите получить.
Спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 5 - как получить h1-заголовок для материала блога категорий?

Автор Lann

Ответов: 4
Просмотров: 953
Последний ответ 28.08.2024, 08:57:49
от Lann
Создание пользовательского поля посредством API

Автор kysin

Ответов: 0
Просмотров: 583
Последний ответ 17.06.2024, 10:41:15
от kysin
Стандартные поля Joomla 4

Автор gm35

Ответов: 3
Просмотров: 755
Последний ответ 30.03.2024, 11:57:46
от gm35
Как сохранить в файле txt информацию из поля input?

Автор GuDeVic

Ответов: 1
Просмотров: 749
Последний ответ 20.11.2023, 14:34:09
от GuDeVic
Изменение группы пользователя в зависимости от значения поля

Автор stepan39

Ответов: 0
Просмотров: 441
Последний ответ 17.10.2023, 03:53:57
от stepan39