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

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Юзаю обфускатор:
http://dean.edwards.name/packer/
Работает корректно, особенно по сравнению с YUI Compressor не переводит в знаки вопроса кириллицу, будь то ANSI или UTF-8.
У этого обфускатора есть две опции:
- Shrink variables (сокращение имен переменных)
- Base62 encode (так называемый packer)

Для примера я сжимал Mootols_Source.1.1.1 из Joomla 1.5.14, который весил 179Кб.
Без дополнительных опций происходит элементарная минимизаия, вес стал 71,8 кб - такой же размер как и сжатая версия в Joomla.
Фрагмент кода:
Цитировать
var MooTools={version:'1.11'};function $defined(obj){return(obj!=undefined)};function $type(obj){if(!$defined(obj)) return false;if(obj.htmlElement) return'element';var type=typeof obj;if(type=='object'&&obj.nodeName){switch(obj.nodeType){case 1:return'element';case 3:return(/\S/).test(obj.nodeValue)?'textnode':'whitespace'}}if(type=='object'||type=='function'){switch(obj.constructor){case Array:return'array';case


Далее я повторил с включенной опцией Shrink variables - вес 63,7 кб. Такую же обработку используют yootheme для подмены встроенного mootools.
Фрагмент кода:
Цитировать
var MooTools={version:'1.11'};function $defined(a){return(a!=undefined)};function $type(a){if(!$defined(a)) return false;if(a.htmlElement) return'element';var b=typeof a;if(b=='object'&&a.nodeName){switch(a.nodeType){case 1:return'element';case 3:return(/\S/).test(a.nodeValue)?'textnode':'whitespace'}}if(b=='object'||b=='function'){switch(a.constructor){case Array:return'array';case

Далее метод Base62 encode, результат 42,5 кб.
Пример:
Цитировать
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--) r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--) if(k[c]) p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('o dT={e6:\'1.11\'};k $6F(N){m(N!=aX)};k $F(N){B(!$6F(N)) m O;B(N.53) m\'G\';o F=78 N;B(F==\'2I\'&&N.cR){26(N.7q){Y 1:m\'G\';Y 3:m(/\\S/).2A(N.bd)?\'bL\':\'dJ\'}}B(F==\'2I\'||F==\'k\'){26(N.ab){Y 2y:m\'1x\';Y 7r:m\'5A\';Y 18:m\'4Q\'}
Как видно код совсем не разобрать.

Потом включил обе опции - Shrink variables и Base62 encode. Результат незначительный, по сравнению с предидущем - 40,3 кб

Пока все работает без изменений.
Могут быть какие нибудь проблемы с таким порубленным кодом?
И еще я часто слышу про gzip, как его заюзать?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Обфускация и минимизация скриптов
« Ответ #1 : 31.08.2009, 21:01:27 »
Могут быть какие нибудь проблемы с таким порубленным кодом?
да. не используй shrink variables
и желательно после упаковки проверять

И еще я часто слышу про gzip, как его заюзать?
gzip - это имеется ввиду YUI
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Darkick

  • Завсегдатай
  • 1142
  • 239 / 1
Re: Обфускация и минимизация скриптов
« Ответ #2 : 31.08.2009, 23:26:01 »
Скачал оттуда же Packer for .NET. Можно им и CSS жать, но на них экономия конечно совсем не такая.
А вообще хорошая наводка, попробую на сайте посмотреть - нормально ли робит.
*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Re: Обфускация и минимизация скриптов
« Ответ #3 : 02.09.2009, 16:19:04 »
Cамый оптимальный и надежный способ - это комбинация (минимизация + gzip)
- минимизация - это метод при котором удаляются комментарии пробелы и пустые строки, не нарушая при этом целостности кода, не сокращая переменные, поэтому код остается полностью работоспособным.
- gzip предварительное сжатие всех стилей и скриптов, без нагрузки на сервер. Скрипты можно по сжимать "тоталом", например.
А в местах подключения не забыть подописывать расширения  тра-та.js.gz

Так достигнуо сжатие встроенной библиотеки mootools до 19,5 кб.

Сервисы сжатия CSS:
http://compressor.ebiene.de
http://www.cssdrive.com/index.php/main/csscompressor
http://www.cssoptimiser.com
http://iceyboard.no-ip.org/projects/css_compressor
http://www.cleancss.com
http://floele.flyspray.org/csstidy/css_optimiser.php

Еще советую почитать:
http://apachedev.ru/2007/09/19/5-prostyih-sposobov-uskoreniya-sayta/
http://joomlaforum.ru/index.php/topic,68370.0.html
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: Обфускация и минимизация скриптов
« Ответ #4 : 19.10.2009, 21:27:44 »
Сервисы сжатия CSS:
По поводу сжатия CSS. Стоит быть внимательным и обязательно после сжатия проверять работоспособность кода. Если у вас есть хаки для разных браузеров, то скорее сжиматоры могут их удалить
*

Rikh

  • Захожу иногда
  • 123
  • 1 / 0
Re: Обфускация и минимизация скриптов
« Ответ #5 : 24.11.2009, 09:24:50 »
Cамый оптимальный и надежный способ - это комбинация (минимизация + gzip)
- минимизация - это метод при котором удаляются комментарии пробелы и пустые строки, не нарушая при этом целостности кода, не сокращая переменные, поэтому код остается полностью работоспособным.
- gzip предварительное сжатие всех стилей и скриптов, без нагрузки на сервер. Скрипты можно по сжимать "тоталом", например.
А в местах подключения не забыть подописывать расширения  тра-та.js.gz

Так достигнуо сжатие встроенной библиотеки mootools до 19,5 кб.

Если не сложно расскажите пожалуйста подробнее об этом. Что и как нужно сделать. Смотрю на некоторых сайтах mootools действительно 20 кб. Сам я такого результата достичь не смог. Как только не пытался сжать не вышло. Если не сложно объясните на пальцах как и что делать надо.
Даже может готовый сжатый mootools прицепить можно. У меня Joomla 1.5.12. Очень беспокоит оценка E от Yslow. Когда на сайт заходят 30+ пользователей разом, из которых половина гости, хостер отключает сайт за превышение 10% лимита нагрузки.
Буду очень благодарен за любую помощь.
*

Darkick

  • Завсегдатай
  • 1142
  • 239 / 1
Re: Обфускация и минимизация скриптов
« Ответ #6 : 24.11.2009, 10:05:16 »
Даже может готовый сжатый mootools прицепить можно. У меня Joomla 1.5.12. Очень беспокоит оценка E от Yslow. Когда на сайт заходят 30+ пользователей разом, из которых половина гости, хостер отключает сайт за превышение 10% лимита нагрузки.
Ну в данном случае сжатие JS не поможет отбиться от хостера.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Обфускация и минимизация скриптов
« Ответ #7 : 24.11.2009, 10:20:00 »
Ну в данном случае сжатие JS не поможет отбиться от хостера.
сжатие нет, но оптимизация может дать несколько процентов к скорости работы сайта (объединение к примеру 10 отдельных JS в один с целью уменьшения кол-ва http запросов, тоже самое касается и CSS). А то нередко встречаешь сайты (особенно на клубных шаблонах и\или бездумная установка всех подряд расширений и на выходе по 15 js и десяток CSS грузится
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Rikh

  • Захожу иногда
  • 123
  • 1 / 0
Re: Обфускация и минимизация скриптов
« Ответ #8 : 25.11.2009, 21:57:28 »
Спасибо за советы. Поставил Web Optimizer. Все скрипты слил и сжал, тоже самое и с CSS. В итоге получил грейд "C" по Yslow. After render 0.7, запросов 23.  yes! На сайт вошло 50 человек и что я вижу, снова не дышит. Позвонил хостеру, сказали стало лучше но все равно много. Вот думаю податься куда нибудь на американский или турецкий хостинг. Знаю сайты на Joomla которые висят на турецких серверах, тяжелые как беременная слониха но летают, и не страшны им никакие тысячи запросов.  !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться