Новости 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 Ответов
  • 6493 Просмотров
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Как использовать sefRelToAbs?
« : 01.07.2007, 14:04:16 »
Подскажите пожалуйста вот например есть ссылка:
Код
$gimmeback.="<a href=index.php?option=com_comprofiler&task=userProfile&user=".$ofanid."&Itemid=27>".$ofaname."</a> ";
Как к ней прикрутить sefRelToAbs? Пробывал разные варианты но не работает...руки видно очень кривы
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #1 : 01.07.2007, 14:24:15 »

$gimmeback 
.= '<a href="'
sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$ofanid.'&Itemid=27').'">'
$ofaname.'</a>';
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #2 : 01.07.2007, 14:59:55 »
Благодарю!
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #3 : 16.07.2007, 02:23:22 »
userxp а не мог бы ещё раз подсказать с такой ссылкой $hrefs[] = $mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #4 : 16.07.2007, 02:30:09 »
что подсказать?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #5 : 16.07.2007, 12:20:49 »
Как прикрутить к ней функцию sefRelToAbs
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #6 : 16.07.2007, 12:33:29 »
а из предыдущего, разве, не следует как?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #7 : 16.07.2007, 17:59:42 »
Никак не могу следствие вывести...
А можно последний раз подсказать больше спрашить не буду (по этой теме)
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как использовать sefRelToAbs?
« Ответ #8 : 16.07.2007, 18:43:50 »
Никак не могу следствие вывести...
а что ссобственно непонятно? что надо ссылку передать в качестве параметра в функцию? или что?
*

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Re: Как использовать sefRelToAbs?
« Ответ #9 : 16.07.2007, 21:43:17 »
$hrefs[] = $mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);


$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);

$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??
*

Dry7

  • Осваиваюсь на форуме
  • 12
  • 13 / 2
  • Разработчик ruBook
Re: Как использовать sefRelToAbs?
« Ответ #10 : 17.07.2007, 10:59:02 »

$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);
$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??

нет, без $mosConfig_live_site

вот так

$hrefs
[] = sefRelToAbs"index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id) );


то есть линк должен начинаться с index.php
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #11 : 17.07.2007, 12:23:15 »

$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);

$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??
Там же был массив а вы от него избавились :)
нет, без $mosConfig_live_site

вот так

$hrefs
[] = sefRelToAbs"index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id) );


то есть линк должен начинаться с index.php
Спасибо. Т.ё. фунция sefRelToAbs сама добавляет адрес сайта(http://site.ru/)
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как использовать sefRelToAbs?
« Ответ #12 : 17.07.2007, 12:54:41 »
фунция sefRelToAbs сама добавляет адрес сайта(http://site.ru/)
да, именно  так
*

Dry7

  • Осваиваюсь на форуме
  • 12
  • 13 / 2
  • Разработчик ruBook
Re: Как использовать sefRelToAbs?
« Ответ #13 : 17.07.2007, 22:58:18 »
ага, а если в линке присутствует адрес сайта, то функция обрабатывает его как ссылку на другой сайт, то есть не трогает.
*

zaboich

  • Осваиваюсь на форуме
  • 37
  • 11 / 0
Re: Как использовать sefRelToAbs?
« Ответ #14 : 01.08.2007, 12:21:54 »
Тут много бился с передачей параметров с русскими символами например:
Код
$search = "русский текст";
$option = "com_component";
$link = 'index.php?option=$option&searchword=$search";

Для передачи символов в русских кодировках требуется произвести преобразование передаваемой строки функцией urlencode(), т.е.
Код
$search = urlencode($search);

и если вставить в ...html.php:
Код
echo "<a href=\"$link\">
то на странице получим ссылку
<a href="index.php?option=com_component&searchword=%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2">
, которая будет вполне корректно работать (но некрасиво, хотим лучше  :P ).

А если использовать функцию sefRelToAbs():
Код
$link = sefRelToAbs($link);
, то получим строку
<a href="/option,com_component/searchword,русский текст/">
, которую нормально послать может (насколько я понял только FireFox)

После долгих попыток, я нашел способ - двойное кодирование:
Код
$search = urlencode( urlencode( $search ) );

Тогда из
Код
$link = sefRelToAbs($link);
будет в IE и Opere
<a href="/option,com_component/searchword,%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2/">
а в FF будет
<a href="/option,com_component/searchword,русский текст/">
И все будут довольны


Но понять почему так работает не смог. Особенно учитывая что в самой sefRelToAbs() я не нашел никакой работы по преобразованию кодировок.
Кто нибудь может объяснить почему так?  !!!???!!!

PS хорошо, хоть как-то работает :)
« Последнее редактирование: 01.08.2007, 13:10:24 от zaboich »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться