Новости Joomla

Рендер пользовательского поля внутри другого пользовательского поля. Joomla 5.3

Писал ранее о том, как внутри одного пользовательского поля рендерить другое пользовательское поле. Применил для этого возможность Joomla обращаться к методам плагинов напрямую. Процитирую строчку кода из предыдущего поста:

<?php
$joomlaFieldContentPlugn->onContentPrepare('com_content.article', $fakeItem, $app->getParams());

Joomla постепенно переходит от простого указания аргументов для триггеров плагинов к собственным классам событий. Это позволяет не запоминать порядок передачи аргументов класса и использовать человекопонятные методы $event->getContext(), $event->getItem() и т.д. А то в одном месте в Joomla было $article, в другом - $item, в третьем ещё как-то... Порядку больше становится.

Сегодня обновил сайт клиентов до Joomla 5.3. В ней обновили контент-плагин fields и мой финт ушами с вызовом метода плагина отвалился потому, что я передавал в нём 3 аргумента, вместо одного. И для события onContentPrepare это должен быть объект класса ContentPrepareEvent. Как меняется фрагмент кода из предыдущего поста:

<?php
// мы находимся в файле макета поля

use Joomla\CMS\Event\Content\ContentPrepareEvent;
use Joomla\CMS\Factory;

$app = Factory::getApplication();
$fakeItem = new \stdClass();
// Получаем id текущего материала из объекта Input
$fakeItem->id = $app->getInput()->getInt('id');
// {field 29} - это шорт код вставки поля с id 29 - "ассортимент проекта"
// к содержимому поля конкатенируем шорт-код для обработки
$fakeItem->text = $field->value . '{field 29}';
// Получаем объект плагина
$joomlaFieldContentPlugn = $app->bootPLugin('fields', 'content');
// вызываем метод обработки напрямую
// вместо 3-х аргументов теперь указываем один
// это объект класса ContentPrepareEvent
$joomlaFieldContentPlugn->onContentPrepare(new ContentPrepareEvent('onContentPrepare', [
            'context' => 'com_content.article',
            'subject' => $fakeItem,
            'params'  => $app->getParams(),
            'page'    => 0,
        ]));
// выводим оба поля
echo $fakeItem->text;

@webtolkru 

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

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Здравствуйте! Где можно скачать Казахскую локализацию? Киньте ссыль пожалуйста. На казахском форуме реклама папиломы выпрыгивает =)
*

Apoca1ypto

  • Давно я тут
  • 749
  • 71 / 0
Re: Казахская локализация Joomla 3.6
« Ответ #1 : 08.02.2017, 12:29:16 »
Здравствуйте! Где можно скачать Казахскую локализацию? Киньте ссыль пожалуйста. На казахском форуме реклама папиломы выпрыгивает =)
http://www.gtalk.kz/green-channel/joomla-kazaxskij-yazyk.html
Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.
*

Okulo

  • Захожу иногда
  • 50
  • 0 / 0
Re: Казахская локализация Joomla 3.6
« Ответ #2 : 21.07.2017, 07:07:12 »
 тоже не нашел казахскую локализацию Joomla 3.6
может у кого есть?
*

Kostya888

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Казахская локализация Joomla 3.6
« Ответ #3 : 29.07.2017, 14:23:05 »
Казалось очень простым русскоговорящему казаху и с готовой локализации перевести для всех. День работы. Но реальность такова, что никто не перевел в готовую локализацию языковый пакет по Joomla. Уже не в первый раз встречаю проблему. Так никто и не сделал.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Казахская локализация Joomla 3.6
« Ответ #4 : 29.07.2017, 16:37:38 »
Казалось очень простым русскоговорящему казаху и с готовой локализации перевести для всех. День работы. Но реальность такова, что никто не перевел в готовую локализацию языковый пакет по Joomla. Уже не в первый раз встречаю проблему. Так никто и не сделал.

Вы можете создать проект на CrowdIn, раздать ссылку всем желающим и коллективно сделать языковой пакет, затем Вы можете подать заявку на Joomla.org для включения его в официальный список переводов. Преимущество размещения языковых файлов на CrowdIn -- это возможность каждому присоединиться к переводу и предлагать свои варианты изменений.
« Последнее редактирование: 29.07.2017, 17:52:02 от Филипп Сорокин »
*

Kostya888

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Казахская локализация Joomla 3.6
« Ответ #5 : 30.07.2017, 02:07:46 »
Вы можете создать проект на CrowdIn, раздать ссылку всем желающим и коллективно сделать языковой пакет, затем Вы можете подать заявку на Joomla.org для включения его в официальный список переводов. Преимущество размещения языковых файлов на CrowdIn -- это возможность каждому присоединиться к переводу и предлагать свои варианты изменений.
Спасибо за подробное описание решения проблемы. Очень ценно, надеюсь, для наших друзей из Казахстана.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Локализация Joomla 3.x (обсуждение перевода, инструкции и рекомендации)

Автор smart

Ответов: 363
Просмотров: 200741
Последний ответ 16.05.2022, 16:56:45
от SK
Нужен узбекский для Joomla 3

Автор nick71

Ответов: 6
Просмотров: 8231
Последний ответ 18.08.2021, 08:47:42
от Zaynidin
Как создать много страниц с названиями - Joomla 3?

Автор mig4you

Ответов: 20
Просмотров: 5785
Последний ответ 20.12.2020, 21:40:40
от gartes
Локализация фреймворка T4 от Joomlart (работает на Joomla 4)

Автор okrym

Ответов: 1
Просмотров: 8019
Последний ответ 17.09.2020, 13:03:34
от spartos93
Как установить/добавить язык, если его нет в списке Joomla?

Автор rafaello9

Ответов: 5
Просмотров: 12911
Последний ответ 15.05.2020, 13:35:06
от Ilhom666