Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Это удивительно, но с фреймами это тоже работает! При этом как в одну сторону, так и в другую.
ну конечно :) это и с window.open работает. это будет работать даже если вы открывает разные домены, а не один. браузерный плагин имеет полный доступ к dom, независимо от источника
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
ну конечно :) это и с window.open работает. это будет работать даже если вы открывает разные домены, а не один. браузерный плагин имеет полный доступ к dom, независимо от источника

Это получается, я могу однократно в одной какой-то вкладке выбрать файл, а затем неограниченно вставлять этот файл в других вкладках автоматом?  :o
« Последнее редактирование: 01.10.2019, 10:09:44 от dm-krv »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
да, конечно. у js проблема именно с выбрать. дальше проблем нет :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
да, конечно. у js проблема именно с выбрать. дальше проблем нет :)

Да что же вы раньше молчали?  ;D
Это же прямой ответ на мой вопрос: как вставить заранее подготовленный файл посредством JavaScript?

P. S. Случайно не знаете, как передать element.files в другую вкладку или окно? Все же это вроде бы не совсем массив и JSON-ом я его даже если запишу в localStorage, то потом вряд ли смогу восстановить исходный тип переменной (FileList).
Или все же как-то можно?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
так не, вы работайте с другим окном напрямую
Код
var popupWindow = window.open('https://joomlaforum.ru/', '_blank');
popupWindow.onload = function() {
console.log(popupWindow.location.href);
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
так не, вы работайте с другим окном напрямую
Код
var popupWindow = window.open('https://joomlaforum.ru/', '_blank');
popupWindow.onload = function() {
console.log(popupWindow.location.href);
}

Забавно, а я и не подозревал, что у попап окон полный доступ к друг-другу. Спасибо за ответы  *DRINK*
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
*DRINK*

Привет, прикинь оказывается можно создавать FileList :o

Код
// Создадим простой текстовый файл:
var data = 'Здесь текст для файла или положите в переменную Blob';
var file = new File([data], 'primer.txt', {type: 'text/plain'});

// Создаем коллекцию файлов:
var dt = new DataTransfer();
dt.items.add(file);
var file_list = dt.files;

console.log('Коллекция файлов создана:');
console.dir(file_list);

// Вставим созданную коллекцию в реальное поле:
document.querySelector('input[type="file"]').files = file_list;
При этом в переменную data также можно положить обычный Blob. Это возможно благодаря особенностям функции new File() которая первым параметром может принять как массив из текстов, так и массив состоящий из Blob.

Фактически лайфхак выше позволяет нам JavaScript-ом скачать любой какой угодно файл со своего сайта и вставить его абсолютно в любое поле <input type="file"> - что просто архиполезно для браузерных ботов.

Также способ выше можно применить для редактирования уже выбранных пользователем файлов. Например, если надо из поля выбора файлов убрать какие-то определенные файлы и при этом не фиктивно, а реально.

P. S. Узнал сегодня, от знакомого, такие чудеса  ^-^
Эх, знал бы раньше...  >:(
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
P. S. Узнал сегодня, от знакомого, такие чудеса  ^-^
Супер! Внесу в свою памятку - пригодится.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Привет, прикинь оказывается можно создавать FileList
Ну да ! - Полезное такое ! Тут плюс в карму ! - Но Safari , IE , Edge   - Идут лесом !   ;)

UPD : Хотя ... - наверное есть какой то полифил для этих чудовищ !!!
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Но Safari , IE , Edge   - Идут лесом !   ;)


Они и так идут лесом  ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как правильно клонировать коллекцию FileList? [РЕШЕНО]

Автор dm-krv

Ответов: 5
Просмотров: 1355
Последний ответ 12.10.2019, 18:33:11
от dm-krv
Нужно сделать css/javascript анимацию

Автор dm-krv

Ответов: 13
Просмотров: 1580
Последний ответ 17.09.2019, 16:04:31
от dm-krv
Решить проблему зависания страниц при переходе на https (решено)

Автор sega

Ответов: 0
Просмотров: 855
Последний ответ 07.03.2019, 10:14:45
от sega
Как найти и выделить строки с совпадающими ячейками? [ РЕШЕНО ]

Автор dm-krv

Ответов: 10
Просмотров: 980
Последний ответ 01.11.2018, 19:30:17
от dm-krv