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

Kuzmitch

  • Захожу иногда
  • 150
  • 7 / 0
1. Какие права на файл configuration.php нужно ставить (видел ставят r------- а у меня стоит rw-r-r)?
2. Какие права доступа на базу  нужны пользователю под joomla?
SELECT, 
CREATE,
INSERT,
ALTER,
UPDATE,
DROP,
DELETE,
LOCK TABLESLOCK TABLES,
INDEXINDEX,
REFERENCESREFERENCES,
CREATE TEMPORARY TABLES,
CREATE ROUTINECREATE ROUTINE
3. какие права на папки в каталоге с joomla нужно ставить?
« Последнее редактирование: 12.09.2008, 15:13:27 от Kuzmitch »
*

deeZ

  • Захожу иногда
  • 464
  • 33 / 0
configuration.php: rw-r-r
папки: rwx-rx-rx
а зачем Вам? что-то не работает?
 
*

Kuzmitch

  • Захожу иногда
  • 150
  • 7 / 0
В целях безопасности (видел ставят видел ставят r-------)
*

deeZ

  • Захожу иногда
  • 464
  • 33 / 0
Ну если изменения не планируются, то можно на configuration и 444 поставить.
Посмотрите http://www.joomla-docs.ru/Безопасность
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
(видел ставят r-------)
Вполне разумно ставят — в этом случае ни одна «дыра» в Joomla или стороннем компоненте не позволит поменять глобальные настройки сайта. Еще можно вынести configuration.php за пределы каталога сайта.

Вот только не все советы нужно воспринимать буквально, т.к. кроме прав доступа существенную роль играет: кто является владельцем файлов (это зависит от способа записи файла на сервер — Apache, FTP, SSH), принадлежат ли владелец и http-сервер одной группе, и т.д.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как выявить вредоностный код на CMS Joomla?

Автор stud_pro

Ответов: 1
Просмотров: 1551
Последний ответ 23.04.2024, 10:06:10
от wishlight
Вирус редирект или взлом с редиректом Joomla 3.10

Автор Wany205

Ответов: 1
Просмотров: 2117
Последний ответ 25.05.2023, 08:49:57
от Театрал
Скрипты защиты Joomla 4

Автор mister_boy

Ответов: 6
Просмотров: 2132
Последний ответ 16.05.2023, 16:38:58
от mister_boy
Хостинг пишет, что найден вирус в /media/com_media/js/media-manager-es5.js

Автор AlexP750

Ответов: 6
Просмотров: 2815
Последний ответ 22.02.2022, 11:38:15
от AlexP750
Поставил Joomla 4. Хостинг nic.ru стал ругаться на ошибки безопасности

Автор Oleg+

Ответов: 5
Просмотров: 1812
Последний ответ 13.09.2021, 09:23:28
от Oleg+