Новости Joomla

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

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

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

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

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

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 10 Ответов
  • 2732 Просмотров
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Здравствуйте!

Использую WidgetKit, следовательно у меня подключен Uikit framework со всеми своими плюсами и минусами.

Нужно вывести iframe в Lightbox.

У Uikit есть свой lightbox:  http://getuikit.com/docs/lightbox.html, всем он мне нравится, НО он может выводить либо скрытые блоки, либо видео и картинки, т.е. фрейм в него (по внешней или внутренней ссылке) не запихать... В скрытом блоке iframe выводить - неправильно.

Решение я нашёл, вот оно: https://gist.github.com/malles/423a1eb266f169d01edc

Оно работает, прошу помощи в двух вопросах:
  • Скрипт работает если его разместить текстом непосредственно в index.php шаблона, я бы хотел подключить отдельный файл.js, но так не срабатывает, наверное что-то нужно изменить. Подскажите как!
  • В скрипте прописана ширина и высота открывающегося фрейма. Скажите, а возможно ли эти параметры передать прям в ссылке, и как это сделать.

P.S. О существовании таких плагинов как "modals" от nonumber, я знаю. Но мне кажется и одного WidgetKit много, я его и установил, так сказать, для универсальности.

На всякий случай, вот сам скрипт:

Код
(function () {

    "use strict";

    UIkit.on('beforeready.uk.dom', function () {

        UIkit.plugin("lightbox", "iframe", {

            init: function (lightbox) {

                lightbox.on("showitem.uk.lightbox", function (e, data) {

                    var resolve = function (source, width, height) {

                        data.meta = {
                            'content': '<iframe class="uk-responsive-width" src="' + source + '" width="' + width + '" height="' + height + '"></iframe>',
                            'width': width,
                            'height': height
                        };

                        data.type = 'iframe';

                        data.promise.resolve();
                    };

                    if (data.type === 'iframe' || data.source.match(/\.(html|php)$/)) {
                        resolve(data.source, (lightbox.options.width || 800), (lightbox.options.height || 600));
                    }
                });

            }
        });
    });
}());

Работает со ссылкой такого вида:
Код
<a class="uk-button" href="http://getuikit.com" data-uk-lightbox data-lightbox-type="iframe">Iframe lightbox</a>
« Последнее редактирование: 23.01.2016, 02:39:17 от Театрал »
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Помогите разобраться со скриптом
« Ответ #1 : 23.01.2016, 01:54:36 »
"Нужно вывести iframe в Lightbox."

Так в JCE Box есть сразу вывод?!
И там ширина и высота заявлена и прописывается для каждой ссылки.
Модалка там уже готовая, я сегодня лично делал!

Что не так у вас? зачем скрипты, если они в плагине и движке?

///

Напишите точное ТЗ , что вам надо.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Re: Помогите разобраться со скриптом
« Ответ #2 : 23.01.2016, 02:33:05 »
Так в JCE Box есть сразу вывод!

Дело в том, что я хотел ограничиться минимальным набором: Joomla, свой простенький шаблон, WidgetKit (как универсальная вещь для слайдеров скроллеров, галлереи и подобного).

Что в общем-то и получилось. Модальные окна от WidgetKit уже использую для галереи например.
Для полного счастья не хватило только фрейма в модальном окне.
Просто не хочу под каждую новую задачу устанавливать определённое расширение, которые потянут свои скрипты и стили. Стандартного TinyMCE мне вполне хватает.

Ну как уже точнее написать...
1. Данный скрипт у меня заработал, но только если вставляю в Index.php прям текстом в тегах <script>, хочу вынести в отдельный файл JS, но тогда он не работает. Наверное для этого нужно какие-то правки внести, спрашиваю какие.
2. Когда фрейм открывается в Lightbox, у него размеры те, что прописаны в скрипте, я бы хотел что бы эти параметну можно было указывать прямо в ссылке. Как-нибудь вот так:
Код
<a class="uk-button" href="http://getuikit.com" data-uk-lightbox data-lightbox-type="iframe" width="400" height="200">Iframe lightbox</a>
« Последнее редактирование: 23.01.2016, 02:40:42 от Театрал »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Помогите разобраться со скриптом
« Ответ #3 : 23.01.2016, 02:40:27 »
1. судя по коду, прекрасно работает во внешнем файле. вероятно вы вызываете функцию до того когда загружен/определен UIkit или еще не готова DOM. загружайте после основной библиотеки и/или используйте jQuery.ready
2. судя по коду, точно также как если бы вы задавали ширину и высоту lighbox, но выводили в нем не iframe, а например скрытый блок. видимо это не width="400" height="200" а как то иначе для этого lighbox
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Re: Помогите разобраться со скриптом
« Ответ #4 : 23.01.2016, 03:16:29 »
1. вероятно вы вызываете функцию до того когда загружен/определен UIkit.

Точно, спасибо! как-то не посмотрел даже...

Цитировать
2. точно также как если бы вы задавали ширину и высоту lighbox, но выводили в нем не iframe, а например скрытый блок.

Наверное размер самого lighbox-а вообще не регулируется... Т.е. он будет такого размера как его содержимое, если оно в пределах области просмотра (если больше монитора, то уменьшается)...

Вот страница компонента: http://getuikit.com/docs/lightbox.html, тут тесты: http://getuikit.com/tests/components/lightbox.html. Там такое не описано и не используется.

Получается, что только через высоту и ширину iframe можно получить нужный размер. А как это передать через скрипт, не поможете?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Помогите разобраться со скриптом
« Ответ #5 : 23.01.2016, 09:14:26 »
 в ручную, скрипт так не переделаете.
и повторюсь: боксом пользуйтесь и нормальным редактором.
когда поймёте, что он лучше-пропадут ошибки ваши.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Помогите разобраться со скриптом
« Ответ #6 : 23.01.2016, 11:23:58 »
Наверное размер самого lighbox-а вообще не регулируется...

должен. у вас в коде

Код: javascript
lightbox.options.width || 800

т.е. если определена lightbox.options.width, то использовать ее, иначе 800. сделайте вывод

Цитировать
console.log(lightbox);
resolve(data.source, (lightbox.options.width || 800), (lightbox.options.height || 600));

и посмотрите в консоли что это за объект
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Re: Помогите разобраться со скриптом
« Ответ #7 : 24.01.2016, 04:55:00 »
должен...

Действительно.

Консоль.лог я подключил, правда понял там не много...
Но и этого хватило, чтобы допёрло, что  через ссылку для у lighbox-ов можно передать атрибут с опциями: data-uk-lightbox="{...'}", где можно объединить их в группу, указать время анимации, добавить стрелки.

Как оказалось, туда же можно добавить ширину и высоту iframe для этого скрипта.

Dmitry_stas, выражаю вам огромную благодарность! Без вас я бы не разобрался!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Помогите разобраться со скриптом
« Ответ #8 : 24.01.2016, 12:13:09 »
Действительно.
красота :) недокументированная возможность?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Помогите разобраться со скриптом
« Ответ #9 : 24.01.2016, 16:13:38 »
красота :) недокументированная возможность?
Дмитрий дельный! И я выражаю просто так свой "плюс" В карму добавлю!
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

afon

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Помогите разобраться со скриптом
« Ответ #10 : 25.10.2017, 22:32:27 »
Здравствуйте!

Использую WidgetKit, следовательно у меня подключен Uikit framework со всеми своими плюсами и минусами.

Нужно вывести iframe в Lightbox.

У Uikit есть свой lightbox:  http://getuikit.com/docs/lightbox.html, всем он мне нравится, НО он может выводить либо скрытые блоки, либо видео и картинки, т.е. фрейм в него (по внешней или внутренней ссылке) не запихать... В скрытом блоке iframe выводить - неправильно.

Решение я нашёл, вот оно: https://gist.github.com/malles/423a1eb266f169d01edc

Оно работает, прошу помощи в двух вопросах:
  • Скрипт работает если его разместить текстом непосредственно в index.php шаблона, я бы хотел подключить отдельный файл.js, но так не срабатывает, наверное что-то нужно изменить. Подскажите как!
  • В скрипте прописана ширина и высота открывающегося фрейма. Скажите, а возможно ли эти параметры передать прям в ссылке, и как это сделать.

P.S. О существовании таких плагинов как "modals" от nonumber, я знаю. Но мне кажется и одного WidgetKit много, я его и установил, так сказать, для универсальности.

На всякий случай, вот сам скрипт:

Код
(function () {

    "use strict";

    UIkit.on('beforeready.uk.dom', function () {

        UIkit.plugin("lightbox", "iframe", {

            init: function (lightbox) {

                lightbox.on("showitem.uk.lightbox", function (e, data) {

                    var resolve = function (source, width, height) {

                        data.meta = {
                            'content': '<iframe class="uk-responsive-width" src="' + source + '" width="' + width + '" height="' + height + '"></iframe>',
                            'width': width,
                            'height': height
                        };

                        data.type = 'iframe';

                        data.promise.resolve();
                    };

                    if (data.type === 'iframe' || data.source.match(/\.(html|php)$/)) {
                        resolve(data.source, (lightbox.options.width || 800), (lightbox.options.height || 600));
                    }
                });

            }
        });
    });
}());

Работает со ссылкой такого вида:
Код
<a class="uk-button" href="http://getuikit.com" data-uk-lightbox data-lightbox-type="iframe">Iframe lightbox</a>
Смотри
data-lightbox-type="iframe"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не могу разобраться как в админке заставить работать свой плагин

Автор kkmspb

Ответов: 3
Просмотров: 2805
Последний ответ 02.09.2024, 11:35:25
от kkmspb
Объединение Joomla со сторонним скриптом доски объявлений

Автор Room

Ответов: 3
Просмотров: 1207
Последний ответ 17.09.2018, 12:57:29
от ProtectYourSite
Помогите с опросником sexy polling - по моему не учитывает голоса с одинаковым айпи

Автор suor

Ответов: 2
Просмотров: 2012
Последний ответ 29.11.2017, 08:53:27
от Invictus
Помогите не могу зайти на сайт!

Автор Avtobuz

Ответов: 5
Просмотров: 1632
Последний ответ 09.02.2017, 15:03:15
от SeBun
eventbooking - не могу разобраться с кодом

Автор volk358

Ответов: 1
Просмотров: 1348
Последний ответ 01.02.2013, 15:08:41
от Immortal_pony