Новости 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

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Удалось вывести доп.поля в материале, а вот списке метков не получается (( Кто нибудь знает?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код: php
echo JLayoutHelper::render('joomla.content.tags', $this->item->tags->itemTags);
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Код: php
echo JLayoutHelper::render('joomla.content.tags', $this->item->tags->itemTags);
Мне надо вывести доп поля материалов в списке метков.. а не отображать метки...

В материале этот код отображает доп.поля. а вот как сделать чтобы отображает в списке метков?
Код
<? if (isset($additionalFields['subtitle']) and !empty($additionalFields['subtitle'])) :?>
<div class="subtitle">
<?php echo $additionalFields['subtitle']; ?>
</div>
<?php endif; ?>
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Да как то не очень понятно что вы хотите сделать!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Да как то не очень понятно что вы хотите сделать!

Есть доп.поля у материалов. Вот я хочу вывести доп. поля в списке метков (com_tags).. При выборе метков отображаются материалы которым присвоена метка, показывает изображения, описание, а доп поля нет. Вот хочу добавить туда чтобы показывает. Что непонятного?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Я кажется понял, но позвольте вопрос! Вам надо вывести доп поля на странице самого тега которая выводит список материалов?
Примерная ссылка index.php/component/tags/tag/popugaj
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Я кажется понял, но позвольте вопрос! Вам надо вывести доп поля на странице самого тега которая выводит список материалов?
Примерная ссылка index.php/component/tags/tag/popugaj
Верно, именно в файле component/tags/tag/default_items.php
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Ну тогда массив доп. полей будет доступен по ссылке
Код: php
$item->jcfields
title — заголовок поля
value — значение поля

Если этого мало, то выполните нижеприведенный код в этом файле и увидите какие данные там доступны
Код: php
echo '<pre>'; print_r($this->items); echo '</pre>';
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
echo '<pre>'; print_r($this->items); echo '</pre>';

Не получается отобразить, видимо не знаю как правильно написать.

Ввела ваш код и нахожу в списке это:
[jcfields] => Array

Что значит? Как понимать? Подскажите пожалйуста ((
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Вот готовый пример!
Код: php
foreach($this->items as $item)
{
    foreach($item->jcfields as $field)
    {
        echo $field->title . ' - ' . $field->value . '<br>';
    }
}
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Вот готовый пример!
Код: php
foreach($this->items as $item)
{
    foreach($item->jcfields as $field)
    {
        echo $field->title . ' - ' . $field->value . '<br>';
    }
}

У меня не получается (((

ввела так

Код
<?php
foreach($this->items as $item)
{
    foreach($item->jcfields as $field)
    {
        echo $field->title . ' - ' . $field->value . '<br>';
    }
}
?>

<?php echo $item->jcfields; ?>

отображает:
Array

Что я не так написала?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Я привет готовый код, вставьте его в нужное место и выводите то что надо из доп. полей, код
Код: php
$item->jcfields
должен использоваться в foreach ($this->items)

К примеру если взять стандартный файл default_items.php, то вышеуказанный код будет работать с 68 по 101 строку
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Я привет готовый код, вставьте его в нужное место и выводите то что надо из доп. полей, код
Код: php
$item->jcfields
должен использоваться в foreach ($this->items)

К примеру если взять стандартный файл default_items.php, то вышеуказанный код будет работать с 68 по 101 строку

Я не разбираюсь в php, даже не пойму как должно быть..

Вставила ваш код - не показывает, показывает только "Array".
Как именно написать, чтобы выводилось? Очень надо. Пожалуйста помогите ((

*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Вставьте нижеуказанный код в диаппазон строк которые я написал раньше, прям как есть. Будет ли что нибудь выводить? (хотя бы доп. поля добавьте к материалу, есть подозрение что вы первый кто хочет вывести того чего нет....)
Код
<?php
foreach($item->jcfields as $field)
{
    echo $field->title . ' - ' . $field->value . '<br>';
}

echo '<pre>'; print_R($item->jcfields); echo '</pre>';
?>
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Вставьте нижеуказанный код в диаппазон строк которые я написал раньше, прям как есть. Будет ли что нибудь выводить? (хотя бы доп. поля добавьте к материалу, есть подозрение что вы первый кто хочет вывести того чего нет....)
Код
<?php
foreach($item->jcfields as $field)
{
    echo $field->title . ' - ' . $field->value . '<br>';
}

echo '<pre>'; print_R($item->jcfields); echo '</pre>';
?>

Выводилось это:
Код
Array
(
)

Вообще то много полей присвоены к материалам, и поля не пустые...
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
(хотя бы доп. поля добавьте к материалу, есть подозрение что вы первый кто хочет вывести того чего нет....)

В материале и в блоге категории показывает доп.поля, вот оттуда то же самое надо выводить в списке метков. Даже взяла оттуда кусок кода и все равно ноль.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Содержимое архива поместить в шаблон по умолчанию (JPATH_ROOT/templates/protostar/html/com_tags/tag),
где protostar - это шаблон по умолчанию
Уже на странице сайта опуститесь до
Код: php
[jcfields] => Array
    (
        [1] => stdClass Object
это приблизительный код, но вам надо именно jcfields. Пролистайте странице так что бы это слово было по середине экрана и сделайте скрин браузера
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Класс, еще сделайте скрин на странице материала в админке (вкладка в которой заполняете доп. поля)
к примеру, у меня поля не входят ни в одну группу и по умолчанию они находится во вкладке Поля, у вас может быть другое, но от этого суть не меняется....
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Класс, еще сделайте скрин на странице материала в админке (вкладка в которой заполняете доп. поля)
к примеру, у меня поля не входят ни в одну группу и по умолчанию они находится во вкладке Поля, у вас может быть другое, но от этого суть не меняется....
https://1drv.ms/u/s!AhDhUhKt9pUTujmhY-Iwm9GIwncF?e=JruIYC

У меня поля группированы и не группированы. Выводить надо некоторые (не все) поля из не групированных полей
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Зайдите в менеджер плагинов и найдите плагин Система - Поля (так и ищите) он у вас включен? (слева от текста красный крестик или зеленая галочка)
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Зайдите в менеджер плагинов и найдите плагин Система - Поля (так и ищите) он у вас включен? (слева от текста красный крестик или зеленая галочка)
Включен конечно. зеленая галочка. Как и ранее говорила - В материале и в блоге категории отображаются нужные поля. А в метках нет. Не пойму почему. Ведь все включено.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Еще вопрос: Какой тип пункта меню используется для странице на которой необходимо вывести доп. поля?
Посмотреть это можно в менеджере меню зайдя в нужный пункт меню в первой вкладке будет первый параметр
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Еще вопрос: Какой тип пункта меню используется для странице на которой необходимо вывести доп. поля?
Посмотреть это можно в менеджере меню зайдя в нужный пункт меню в первой вкладке будет первый параметр
https://1drv.ms/u/s!AhDhUhKt9pUTujpmvfsQMmOScpqQ?e=ginxKh

затем после нажатия на какую нибудь метку и выводится список материалов. вот именно уже там надо вывести доп.поля
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Давайте не будет друг друга мучить! За 500 р. сделаю, и закончим на этом
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

aniangeless

  • Захожу иногда
  • 168
  • 0 / 0
Давайте не будет друг друга мучить! За 500 р. сделаю, и закончим на этом
))) у вас уже есть решение. И вовсе не мучаете меня) Я не попадюсь, но хотите заработать. Не против заплатить за 150 грн.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не удается разблокировать в менеджере материалов.

Автор vityavoluevich

Ответов: 4
Просмотров: 1219
Последний ответ 24.05.2025, 09:20:18
от azm1n
Вывести поля профиля Joomla

Автор romagromov

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

Автор jimka

Ответов: 2
Просмотров: 619
Последний ответ 18.04.2025, 15:39:36
от fbr
Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 1193
Последний ответ 06.04.2025, 09:27:20
от wishlight
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 963
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav