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

cheroky

  • Осваиваюсь на форуме
  • 38
  • 0 / 2
Как устранить конфликт JS?
« : 31.01.2013, 23:13:48 »
Привет всем, помогите решить проблему поствил на сайт модуль Xpert Captions и вывел через него некоторый контент, и я хочу поставить еше вкладки но уже не для вывода контента а для другйо цели, но когда я подключил скрипт то перестает работать  Xpert Captions ,

что нужно поменять чтоб не было конфликта

вот код который я хочу подключить
Код
<script type="text/javascript">
$(document).ready(function(){

var first = 0;
var speed = 900;
var pause = 4500;

function removeFirst(){
first = $('ul#listticker li:first').html();
$('ul#listticker li:first')
.animate({opacity: 0}, speed)
.fadeOut('slow', function() {$(this).remove();});
addLast(first);
}

function addLast(first){
last = '<li style="display:none">'+first+'</li>';
$('ul#listticker').append(last)
$('ul#listticker li:last')
.animate({opacity: 1}, speed)
.fadeIn('slow')
}

interval = setInterval(removeFirst, pause);
});
</script>

код  Xpert Captions

Код
(function($){

    if(!$.omr){
        $.omr = new Object();
    };
   
    $.XpertCaptions = function(el, options){
   
        var base = this;
       
        // Access to jQuery and DOM versions of element
        base.$el = $(el);
        base.el = el;
       
        // Add a reverse reference to the DOM object
        base.$el.data("XpertCaptions", base);
       
        base.init = function(){
            base.options = $.extend({},$.XpertCaptions.defaultOptions, options);
           
            base.load_box();
        };
       
        // Preload Images
        base.load_box = function(){
        // Hide until window loaded, then fade in
if (base.options.preload){
$(base.options.backdrop, base.el).hide();
$(base.options.overlay, base.el).hide();

$(window).load(function(){
// IE transparency fade fix
if(base.options.options.animation == 'fade' && $(base.options.overlay, base.el).css('opacity') == 0 ) $(base.options.overlay, base.el).css('filter', 'alpha(opacity=0)');

$(base.options.overlay, base.el).fadeIn(200, function(){
$(base.options.backdrop, base.el).fadeIn(200);
});

base.allow_hover();
});
}else{
$(base.options.backdrop, base.el).show();
$(base.options.overlay , base.el).show();
base.allow_hover();
}
        };
       
        // Initialize hover animations
        base.allow_hover = function(){
        // Select animation
switch(base.options.animation){

// Handle fade animations
case 'fade':
$(base.el).hover(function () {
        $(base.options.overlay, base.el).stop().fadeTo(base.options.speed, base.options.opacity);
        },function () {
        $(base.options.overlay, base.el).stop().fadeTo(base.options.speed, 0);
      });
     
    break;
   
    // Handle slide animations
      case 'slide':
      // Grab default overlay x,y position
startX = $(base.options.overlay, base.el).css(base.options.anchor_x)!= 'auto' ? $(base.options.overlay, base.el).css(base.options.anchor_x) : '0px';
startY = $(base.options.overlay, base.el).css(base.options.anchor_y)!= 'auto' ? $(base.options.overlay, base.el).css(base.options.anchor_y) : '0px';;
     
      var hoverState = {};
      hoverState[base.options.anchor_x] = base.options.hover_x;
      hoverState[base.options.anchor_y] = base.options.hover_y;
     
      var endState = {};
      endState[base.options.anchor_x] = startX;
      endState[base.options.anchor_y] = startY;
     
$(base.el).hover(function () {
        $(base.options.overlay, base.el).stop().animate(hoverState, base.options.speed);
        },function () {
        $(base.options.overlay, base.el).stop().animate(endState, base.options.speed);
      });
     
      break;
};
        };
       
        // Make it go!
        base.init();
    };
   
    $.XpertCaptions.defaultOptions = {
        animation : 'fade',
        speed : 150,
        opacity : 1,
        preload : 0,
        anchor_x : 'left',
        anchor_y : 'bottom',
        hover_x : '0px',
        hover_y : '0px',
        overlay  : '.xc-overlay',
backdrop : '.xc-backdrop'
    };
   
    $.fn.xpertcaptions = function(options){
        return this.each(function(){
            (new $.XpertCaptions(this, options));
        });
    };
   
})(jQuery);
*

prometheus

  • Захожу иногда
  • 84
  • 7 / 0
Re: Как устранить конфликт JS?
« Ответ #1 : 01.02.2013, 13:07:21 »
В firebuge или в Chrome в консоли посмотри какие ошибки выдает скрипт.
*

Immortal_pony

  • Захожу иногда
  • 128
  • 7 / 2
Re: Как устранить конфликт JS?
« Ответ #2 : 01.02.2013, 22:11:18 »
http://jquery.page2page.ru/index.php5/Предупреждение_конфликтов
*

cheroky

  • Осваиваюсь на форуме
  • 38
  • 0 / 2
Re: Как устранить конфликт JS?
« Ответ #3 : 02.02.2013, 00:48:09 »
В firebuge или в Chrome в консоли посмотри какие ошибки выдает скрипт.

Код
8 tds.js:36
Uncaught TypeError: Object [object Object] has no method 'xpertcaptions' euro-line.info:61
Unsafe JavaScript attempt to access frame with URL http://googleads.g.doubleclick.net/pagead/html/r20130130/r20121214/zrt_lookup.html from frame with URL http://euro-line.info/#tabs-1. Domains, protocols and ports must match.
 contentscript_siteoverlay_bin.js:87
Unsafe JavaScript attempt to access frame with URL http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-764019362685470…&bih=775&oid=3&fu=0&ifi=1&dtd=317&xpc=OITgea1dGD&p=http%3A//euro-line.info from frame with URL http://euro-line.info/#tabs-1. Domains, protocols and ports must match.
 contentscript_siteoverlay_bin.js:87
2
Unsafe JavaScript attempt to access frame with URL http://nic.sourdi.com/s/883/441976.html?b=441976&x=1&y=1&s=4&c=djMub2MczgFR…17xlqIwXVVNkTxtugUHcMu9jUE&sh=api2.modelatos.com&ref=&h=luisardo.com&66618 from frame with URL http://euro-line.info/#tabs-1. Domains, protocols and ports must match.
 contentscript_siteoverlay_bin.js:87

вот ошибки, и как их решить:(
*

Immortal_pony

  • Захожу иногда
  • 128
  • 7 / 2
Re: Как устранить конфликт JS?
« Ответ #4 : 02.02.2013, 01:24:53 »
Библиотека jquery конфликтует с библиотекой mootools. Решение по ссылке выше.
*

cheroky

  • Осваиваюсь на форуме
  • 38
  • 0 / 2
Re: Как устранить конфликт JS?
« Ответ #5 : 02.02.2013, 01:35:15 »
Библиотека jquery конфликтует с библиотекой mootools. Решение по ссылке выше.

спс за ссылку буду пробовать свои извилины напрягать и разбираться в той статье:)
*

cheroky

  • Осваиваюсь на форуме
  • 38
  • 0 / 2
Re: Как устранить конфликт JS?
« Ответ #6 : 02.02.2013, 02:07:55 »
Библиотека jquery конфликтует с библиотекой mootools. Решение по ссылке выше.

Мужик спс помог, сделал по той статье и все решилось:)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Конфликт MooTools и Yandex.share. jQuery.noConflict() не помогает

Автор grover268

Ответов: 0
Просмотров: 1331
Последний ответ 07.04.2016, 10:38:37
от grover268
Конфликт Jquery и Mootools

Автор Bangoo

Ответов: 6
Просмотров: 13221
Последний ответ 04.04.2013, 13:14:51
от mark1