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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Есть вот такой кода, хотелось бы их объединить, нужна помощь
Спойлер
[свернуть]

Если так работало, то так и сделал, но без
Спойлер
[свернуть]
не живет, вот и хотел бы спросить, так что надеюсь подскажете, как сделать это
Спойлер
[свернуть]
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Как лучше объединить разные?
« Ответ #1 : 23.07.2015, 13:15:23 »
получилось пока так соединить
Код
jQuery.noConflict();
function show_wm()
{
jQuery('#rupay').hide();
jQuery('#robox').hide();
jQuery('#wm').slideDown(500);
return false;
};
function show_rupay()
{
jQuery('#wm').hide();
jQuery('#robox').hide();
jQuery('#rupay').slideDown(500);
return false;
};
function show_robox()
{
jQuery('#wm').hide();
jQuery('#rupay').hide();
jQuery('#robox').slideDown(500);
return false;
};

function hide_all()
{
jQuery('#wm').hide();
jQuery('#rupay').hide();
jQuery('#robox').hide();
return false;
}
    jQuery(document).ready(function() {
    jQuery('#amoney').on('click', '.south', function(){
    jQuery('#amoney .south').removeClass('active');
    jQuery(this).addClass('active');
 });
  });
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как лучше объединить разные?
« Ответ #2 : 23.07.2015, 15:33:04 »
зачем там jQuery.noConflict(); ?
интернет-блог: http://websiteprog.ru
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Как лучше объединить разные?
« Ответ #3 : 23.07.2015, 20:21:52 »
зачем там jQuery.noConflict(); ?
Предупреждение конфликтов

я вот не могу добавить
Код
.removeAttr('title');

Есть код когда добавляет class но надо, чтобы еще удалял title.

Код
 jQuery(document).ready(function($) {
    $('#amoney').on('click', '.south', function(){
     $('#amoney .south').removeClass('active').removeAttr('original-title');
     $(this).addClass('active');
 });
  });

В таком варианте убирает но не возвращает обратно
« Последнее редактирование: 23.07.2015, 20:31:06 от leo78 »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как лучше объединить разные?
« Ответ #4 : 23.07.2015, 20:34:51 »
Код: javascript
$ = 'something';
(function($) {
    alert($ === jQuery) //true
})(jQuery);
alert($ === jQuery)     //false
alert($)                //something

Корявая документация чтоли? А у вас вообще не используется знак $. Зато noconflict понатыкано везде.
« Последнее редактирование: 23.07.2015, 20:42:18 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как лучше объединить разные?
« Ответ #5 : 23.07.2015, 21:05:05 »
В таком варианте убирает но не возвращает обратно

Вообще непонятно что вы хотите сделать и почему не используете $(this) в обоих случаях потому что $(this) и $('#amoney .south') у вас один и тот же объект по сути внутри вашего обработчика клика.
интернет-блог: http://websiteprog.ru
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Как лучше объединить разные?
« Ответ #6 : 23.07.2015, 22:59:46 »
я использую то что не конфликтует и работает
Код
$ = 'something';
(function($) {
    alert($ === jQuery) //true
})(jQuery);
alert($ === jQuery)     //false
alert($)                //something
 
- не понимаю к чему это

Так же как
Код
jQuery.noConflict();

Чем это все мешает объединить

От того что я поставлю это
Код
$(this)

скрипт по другому будет работать?

для таких случаев я в скрипте сделал переключатель на "$"

Спойлер
[свернуть]
« Последнее редактирование: 23.07.2015, 23:11:27 от leo78 »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Как лучше объединить разные?
« Ответ #7 : 23.07.2015, 23:12:46 »
Я хочу улучшить, но для переделки, хотелось бы понимать

У меня три кнопки и одна ссылка с отключением, я сделал, чтобы пропадала кнопка при нажатии(это .removeClass('active')), но мне надо убрать title (.removeAttr('title');).
Ну и за одно усовершенствовать код

Код
<!-- Panel -->
<div id="amoney" class="amoney-module" style="text-align: center;">
<div id="amoney1" class="amoney-mod1" style="text-align: center;">
<span class="panel1"><a class="south" href="javascript:void(0);" style="text-decoration: none;" onclick="hide_all()" title="Скрыть все">Благодарность Автору</a></span>
</div>
<div id="amoney2" class="amoney-payment" style="text-align: center;">
<a id="ammh1" class="south" href="javascript:void(0);" title="WebMoney" onclick="show_wm()"></a>
<a id="ammh2" class="south" href="javascript:void(0);" title="RBKMoney" onclick="show_rupay()"></a>
<a id="ammh8" class="south" href="javascript:void(0);" title="ROBOKASSA" onclick="show_robox()"></a>
</div>
</div>

« Последнее редактирование: 23.07.2015, 23:18:03 от leo78 »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как лучше объединить разные?
« Ответ #8 : 23.07.2015, 23:22:31 »
Как же вы его усовершенствуете если до конца не понимаете сами что вы делаете и зачем вы делаете? Такому на форумах не учат. jQuery.fn.removeAttr('title') метод должен удалить title. Вероятно вызываете вы его не на том объекте

У вас там 3 объекта с классом "south" .В цикле необходимо пройти по каждому объекту и удалить атрибут я так понимаю вам. Хотя jQuery сама все сделает если это коллекция объектов.
« Последнее редактирование: 23.07.2015, 23:37:48 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Как лучше объединить разные?
« Ответ #9 : 23.07.2015, 23:37:29 »
Прикалываетесь "Приступая к работе"  >:(
Спойлер
[свернуть]

 *DRINK*
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как лучше объединить разные?
« Ответ #10 : 23.07.2015, 23:40:59 »
я вам не предлагаю писать плагин jQuery (хотя это не так уж и сложно). я говорю о стандартном методе removeAttr() который уже принадлжеит объекту jQuery.fn  
интернет-блог: http://websiteprog.ru
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Как лучше объединить разные?
« Ответ #11 : 23.07.2015, 23:48:13 »
Стандартный я проделывал
Удаление атрибута
стал бы писать если бы все получилось, проблема в том, что привязать его не смог к "click"


Код
	jQuery.noConflict();
(function($) {
    $(document).ready(function() {
    $('#amoney').on('click', '.south', function(){
     $('#amoney .south').removeClass('active');
     $(this).addClass('active');
 });
});
})(jQuery);
Код
 jQuery(document).ready(function($) {
    $('#amoney').on('click', '.south', function(){
     $('#amoney .south').removeClass('active');
     $(this).addClass('active');
 });
  });
Результат есть хождения к "south" добавляется "active"

Осталось только сделать
Код
$(".newsBlock").removeAttr("title")
« Последнее редактирование: 23.07.2015, 23:54:02 от leo78 »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как лучше объединить разные?
« Ответ #12 : 24.07.2015, 00:02:41 »
непонимаю что у вас там за HTML и что вы хотите сделать. Потренируйтесь на  jsfiddle
интернет-блог: http://websiteprog.ru
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как лучше объединить разные?
« Ответ #13 : 24.07.2015, 00:29:19 »
Код
 jQuery(document).ready(function($) {
    $('#amoney').on('click', '.south', function(){
     $('#amoney .south').removeClass('active').removeAttr('original-title');
     $(this).addClass('active');
 });
  });
Как то так должно работать
Код: javascript
(function(f){    
    f('#amoney').on('click', '.south', function () {
        f(this).addClass('active').removeAttr('original-title').siblings().removeClass('active');
    });
}(jQuery));
и можно так писать
Код: javascript
$('#wm, #rupay, #robox').hide();
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Как лучше объединить разные?
« Ответ #14 : 24.07.2015, 00:52:20 »
Fedor Vlasenko
Спасибо, давно уже не общались !
Что-то типа такого:
Код
(function($) {
this.show_wm = function()
{
                        $('#rupay, #robox').hide();
$('#wm').slideDown(500);
    return false;
};
this.show_rupay = function()
{
$('#wm, #robox').hide();
$('#rupay').slideDown(500);
    return false;
};
this.show_robox = function()
{
$('#wm, #rupay').hide();
$('#robox').slideDown(500);
    return false;
};

this.hide_all = function()
{
$('#wm, #rupay, #robox').hide();
return false;
}   
})(jQuery);

Живет только
Код
	jQuery.noConflict();
(function($) {
    $(document).ready(function() {
  $('#amoney').on('click', '.south', function () {
        $(this).addClass('active').removeAttr('title').siblings().removeClass('active');
    });
});
})(jQuery);

Но к сожалению только удаляет title, но не возвращает  title обратно

 *DRINK*

zomby6888
Спасибо все работает

демо
 *DRINK*
« Последнее редактирование: 24.07.2015, 22:00:59 от leo78 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться