Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

awd777

  • Новичок
  • 7
  • 0 / 0
День добрый! Ситуация такая:
Joomla 1.5. Установлен плагин J2Top (кнопка наверх).
Затем нужен был модуль рандомно выводящий картинки с ссылками на статьи.

Воспользовался следующим кодом, вставленным в обычный mod_php:
Код
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>    
<script type="text/javascript" src="http://paint.3dn.ru/Files/web_design/InnerFade/jquery.innerfade.js"></script>

<script type="text/javascript">
       $(document).ready(
       function(){
        $('#news').innerfade({
         animationtype: 'slide',
         speed: 750,
         timeout: 2000,
         type: 'random',
         containerheight: '1em'
        });
           
        $('ul#portfolio').innerfade({
         speed: 1000,
         timeout: 5000,
         type: 'sequence',
         containerheight: '220px'
        });
           
        $('.fade').innerfade({
         speed: 1000,
         timeout: 6000,
         type: 'random_start',
         containerheight: '1.5em'
        });
           

      });
      </script>
<ul id="portfolio">       
     <li><a href="http://paint.3dn.ru/forum/4-441-1"><img src="1.jpg" alt="Ржавый текст" /></a></li>
     <li><a href="http://paint.3dn.ru/forum/4-290-1"><img src="2.jpg" alt="Фотография в стиле Pop Art" /></a></li>
     <li><a href="http://paint.3dn.ru/forum/4-257-1"><img src="3.jpg" alt="Эффект слоистого светящегося текста" /></a></li>       
</ul>

В итоге, на страницах где включен этот модуль не работает кнопка. Где модуля нет - работает. Я так понимаю - какой конфликт между ними. Не подскажете как исправить?


P.S. И еще второй небольшой вопрос - я сделал этот модуль, картинки появляются, ссылки работают, но - изображения выходят за рамки модуля. Т.е. по ширине я подогнал, а по высоте - наезжает на нижний. Пришлось его вставить вниз в колонке. Как это можно исправить?
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: jQuery - проблема с модулем и плагином
« Ответ #1 : 11.12.2010, 19:30:07 »
Вы очень удивитесь, НО можно убрать J2Top, заменив его якорем. Почитайте о ссылках на http://htmlbook.ru/.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #2 : 11.12.2010, 21:12:37 »
Не удивлюсь. На ресурсе более тысячи страниц контента. В каждую добавлять якорь?
Да и не смотрибельно это. Хотелось бы разобраться как это исправить, а не уйти от проблемы. Оба элемента используют jQuery и проблема, думаю в этом. Тем более, что даже если поставить  2 массива с меняющимеся таким образом изображениями - работать второй не будет.

Кстати, пробовал ставить модуль кнопки без использования jQuery - ScrollToTop, кажется. Там есть выбор - простой якорь или использовать jQuery. Но в простом режиме модуль работал почему то только в родительских элементах главного меню, хотя в настройках - включен для всех. Аналогов больше не нашёл.
Остальные кнопки работают аналогично J2Top.
« Последнее редактирование: 11.12.2010, 21:16:42 от awd777 »
*

Olg

  • Завсегдатай
  • 1181
  • 90 / 2
Re: jQuery - проблема с модулем и плагином
« Ответ #3 : 11.12.2010, 21:15:43 »
Не надо в каждую страницу. Надо 1 раз в шаблон.
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #4 : 11.12.2010, 21:21:49 »
+_+
Причём тут анкоры. А если мне понадобится еще 1 модуль сделать с jQuery или еще какой то плагин? 1 раз только можно использовать? Какой то последний патрон получается..
Суть не в том, как это организовать, а как решить проблему совместимости.
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #5 : 11.12.2010, 21:46:48 »
Кстати, говоря, мб по какой то причине, похожей на эту у меня не получилось вставить 2 кнопки статистики, которые выводились тоже с помощью яваскриптов - openstat и liveinternet.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: jQuery - проблема с модулем и плагином
« Ответ #6 : 11.12.2010, 22:12:10 »
Правильно указали - один раз в шаблоне ставите и всё, зачем грузить лишние скрипты, если решается всё проще и быстрее? А вообще посмотрите noConflict() в Google. Но кнопку меняйте на обычный якорь.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #7 : 15.12.2010, 17:41:30 »
Всё уже перепробовал, но заказчик просит эту плавающую кнопку.
К тому же появилась еще проблема с отображением feedback модуля на ajax(кнопка слева сворачивается/разворачивается для отправки сообщений фирме) - постоянно развернут.

По поводу кнопки FireBug выдает:
$("gototop").getStyle is not a function
[Прерывать на этой ошибке] if ($('gototop').getStyle('opacity','1') == 1){Change.start(0);Hide();}
$("gototop").getStyle is not a function
[Прерывать на этой ошибке] if ($('gototop').getStyle('opacity','0') == 0){Show();Change.start(1);}
По поводу обратной связи ошибок не выдает вообще.

С noconflict возился 3 дня, результата нет. (
*

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
Re: jQuery - проблема с модулем и плагином
« Ответ #8 : 15.12.2010, 17:52:34 »
Ну вообще сделать вызов 1 Jquery и не будет конфликтов, у меня 3-4 расширения юзают Jquery, но грузится 1 и никаких конфликтов.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #9 : 15.12.2010, 18:11:46 »
Забыл написать...
В скриптах этого J2Top я так и не нашёл, где бы он вызывал jQuery, наверное всё-таки не в ней дело..
А ошибка возникает при выполнении этого скрипта в последних строках:
Код
  <script type="text/javascript">if( MooTools.version >= '1.2' ) { 
window.addEvent('domready',function() {
new SmoothScroll({ duration: 250 }, window);
var gototop = $('gototop');
gototop.setStyle('opacity','0').setStyle('display','block');
});
window.addEvent('scroll',function(e) {
var gototop = $('gototop');
if(Browser.Engine.trident4) {
gototop.setStyles({
'position': 'absolute',
'bottom': window.getPosition().y + 10,
'width': 100
});
}
gototop.fade((window.getScroll().y > 200)? 'in' : 'out')
});
} else {
window.addEvent('domready',function() {
$('gototop').setStyle('opacity','0');
new SmoothScroll();
var Change = new Fx.Style('gototop', 'opacity', {duration:250});
var scroll = window.getScrollTop();
if (scroll > 200){
if ($('gototop').getStyle('opacity','0') == 0){Change.start(1);$('gototop').setStyle('display','');}
}
});
window.addEvent('scroll',function(e) {
var scroll = window.getScrollTop();
var Change = new Fx.Style('gototop', 'opacity', {duration:250});
function Show(){ $('gototop').setStyle('display','');}
function Hide(){ setTimeout("$('gototop').setStyle('display','none')",250);}
if (scroll > 200){
if ($('gototop').getStyle('opacity','0') == 0){Show();Change.start(1);}
} else {
if ($('gototop').getStyle('opacity','1') == 1){Change.start(0);Hide();}
}
});
}
</script>

Если бы не этот feedback, то еще можно было бы ставить якорную ссылку обычную. Но теперь 2 vs 1 и в будущем наверняка проблемы будут.
Или другой вопрос - у кого-нибудь мб есть нормальный модуль динамической смены "кликабельных" изображений?... Буду очень признателен.


Upd. Собственно в приведённом ниже скрипте вывода картинок я добавлял в начало следующую строку:
$jqn=jQuery.noConflict();
и после заменял все $ на $jqn.

Код
(function($) {

    $.fn.innerfade = function(options) {
        return this.each(function() {   
            $.innerfade(this, options);
        });
    };

    $.innerfade = function(container, options) {
        var settings = {
        'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':          2000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null
        };
        if (options)
            $.extend(settings, options);
        if (settings.children === null)
            var elements = $(container).children();
        else
            var elements = $(container).children(settings.children);
        if (elements.length > 1) {
            $(container).css('position', 'relative').css('height', settings.containerheight).addClass(settings.runningclass);
            for (var i = 0; i < elements.length; i++) {
                $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
            };
            if (settings.type == "sequence") {
                setTimeout(function() {
                    $.innerfade.next(elements, settings, 1, 0);
                }, settings.timeout);
                $(elements[0]).show();
            } else if (settings.type == "random") {
            var last = Math.floor ( Math.random () * ( elements.length ) );
                setTimeout(function() {
                    do {
current = Math.floor ( Math.random ( ) * ( elements.length ) );
} while (last == current );             
$.innerfade.next(elements, settings, current, last);
                }, settings.timeout);
                $(elements[last]).show();
} else if ( settings.type == 'random_start' ) {
settings.type = 'sequence';
var current = Math.floor ( Math.random () * ( elements.length ) );
setTimeout(function(){
$.innerfade.next(elements, settings, (current + 1) %  elements.length, current);
}, settings.timeout);
$(elements[current]).show();
} else {
alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
}
}
    };

    $.innerfade.next = function(elements, settings, current, last) {
        if (settings.animationtype == 'slide') {
            $(elements[last]).slideUp(settings.speed);
            $(elements[current]).slideDown(settings.speed);
        } else if (settings.animationtype == 'fade') {
            $(elements[last]).fadeOut(settings.speed);
            $(elements[current]).fadeIn(settings.speed, function() {
removeFilter($(this)[0]);
});
        } else
            alert('Innerfade-animationtype must either be \'slide\' or \'fade\'');
        if (settings.type == "sequence") {
            if ((current + 1) < elements.length) {
                current = current + 1;
                last = current - 1;
            } else {
                current = 0;
                last = elements.length - 1;
            }
        } else if (settings.type == "random") {
            last = current;
            while (current == last)
                current = Math.floor(Math.random() * elements.length);
        } else
            alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
        setTimeout((function() {
            $.innerfade.next(elements, settings, current, last);
        }), settings.timeout);
    };

})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
if(element.style.removeAttribute){
element.style.removeAttribute('filter');
}
}
« Последнее редактирование: 15.12.2010, 18:34:18 от awd777 »
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #10 : 15.12.2010, 23:44:04 »
Решено.. можно закрыть.
*

bodi_90

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #11 : 06.01.2011, 10:18:57 »
Так как решил проблему с feedback?
А то модуль не желает работать после установки JR-irmenu 1.0 вот эта прога
Обратная связь постоянно в открытом состоянии находится. Как только отключаю jr-menu. Работает.
Как решить проблему?
« Последнее редактирование: 09.01.2011, 18:17:54 от bodi_90 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с Akeeba Backup

Автор Lemonez

Ответов: 6
Просмотров: 2950
Последний ответ 29.03.2025, 13:06:45
от sivers
Проблема Slideshow

Автор annetkas

Ответов: 14
Просмотров: 1807
Последний ответ 06.04.2022, 16:34:53
от sivers
Проблема с отображением фона в сафари

Автор Leo1986

Ответов: 1
Просмотров: 1066
Последний ответ 13.02.2022, 12:53:48
от Leo1986
SP Page Builder Pro проблема с плагином обратной связи

Автор abisa

Ответов: 3
Просмотров: 1411
Последний ответ 01.12.2020, 10:24:11
от AlexB
Проблема с плагином интеграции SP Page Builder Pro

Автор zeus07

Ответов: 12
Просмотров: 1380
Последний ответ 23.11.2020, 00:24:53
от zeus07