Новости 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 Пользователей и 2 Гостей просматривают эту тему.
  • 143 Ответов
  • 59711 Просмотров
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Groupjive - компонент Joomla, разработанный для использования на любых сайтах или социальных сетях, разработанных под CMS Joomla.

Компонент GroupJive позвляет реализовывать возможность организации социальных групп в рамках собственного сайта на базе CMS Joomla. Компонент Groupjive позволяет расширить стандартные возможности порталов и социальных сетей, воплощая в жизнь элемент идеологии WEB2.0, направленной на реализацию социализации сетей.


Компонент интегрован со следующими компонентами:
  • Community Builder 1.1;
  • Community Builder Enhanced (зарубежная модификация CB 1.0);
  • FireBoard 1.0.3 и выше;
  • EventList 0.8.10;
  • JomComment 1.8.10.

Имется три типа групп на выбор, которые могут быть созданы:
  • открытая - (открытая группа для всех зарегистрированных пользователей);
  • требуется одобрение - (для членства требуется одобрение модератора);
  • закрытая - (членство обеспечивается только по приглашениям).

Исправления: в русской редакции Groupjive наконец-то отловлен и исправлен баг с SQL ошибкой номер 1064 (SQL error when attempting to save a message), возникавший при использовании в бюллетене апострофа ( ' )
На данный момент эта ошибка исправлена только в русской редакции, поскольку на официальном форуме разработчиков до сих пор не опубликован багфикс.
Спасибо Денису Рябову aka Physicist за внесение данного исправления!

Примечание: Groupjive требует для работы наличие установленного Community Builder!


>>> Качать здесь <<<

14.05.2009 - прикреплён архив с компонентом.

[вложение удалено Администратором]
*

ich_heise_tod

  • Захожу иногда
  • 99
  • 36 / 2
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #1 : 07.07.2008, 14:47:56 »
приглашение пользователей, ajax... там траблы с кодировкой...
:((
подскажите, плиз, как исправить...
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #2 : 07.07.2008, 15:27:19 »
В оригинальной версии из-за Ajax были кракозябры. Это исправлено использованием библиотеки ICONV:
Код
<?php echo iconv("UTF-8","windows-1251", $str); ?>
На хостинге все будет работать, но стандартный пакет Denwer не поддерживает данную библиотеку (правда, не пробовал на новой версии пакета), поэтому вызов неподключенной библиотеки приводит к ошибке.
Есть несколько вариантов:
1. Убрать вызов библиотеки. Будут кракозябры, но можно будет отладить сайт и после переноса на хостинг, раскоментировать строку (об этом ниже).
2. Добавить iconv в настройках Denwer'a.

Для работы на локалхосте нужно открыть файл components/com_groupjive/groupjive.php и удалить строки 727-732:

Цитировать
//   $gj_username=utf8_decode(trim(mosGetParam($_REQUEST,'username')));

   $gj_username=trim(mosGetParam($_REQUEST,'username'));
   $gj_username=iconv('utf-8','windows-1251',$gj_username);

И раскомментировать строку 733:
Код
	$gj_username=utf8_decode(trim(mosGetParam($_REQUEST,'username')))	;


Опять же, лучше попробовать настроить Denwer, моё имхо.
*

ich_heise_tod

  • Захожу иногда
  • 99
  • 36 / 2
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #3 : 07.07.2008, 15:38:26 »
крякозябры отображаются на хостинге...
(хостинг на рбк, php4.3.9)

скрин во вложении...

[вложение удалено Администратором]
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #4 : 07.07.2008, 15:41:21 »
А на хостинге имеется поддержка ICONV?


Добавлено
у меня работает на MySQL 4.x. Сейчас опробую на 5-й версии
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #5 : 07.07.2008, 15:56:36 »
Отображение в неверной кодировке - проблема с MYSQL5 (которая работает в UTF8). На MySQL 4.x нормально работает. Как исправим под 5-ю версию, напишу здесь.
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #6 : 09.07.2008, 13:48:56 »
А можете перезалить компонент,а то ссылка не работает.
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #7 : 09.07.2008, 20:30:50 »
Попробуйте сейчас скачать. Работает?

Найден еще один баг:
На серверах с PHP5+MYSQL5 неправильно работает itemID при включенном SEF. Невозможно создать новую группу. Как будет найдено решение, отпишусь.
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #8 : 09.07.2008, 21:59:56 »
Итак, если у вас возникает проблема с формированием ItemID на высоких версиях php & mysql, необходимо внести следующую модификацию:
необходимо заменить в /includes/patTemplate/patTemplate/Function/Sef.php
Код
return sefRelToAbs($content)[/b]

на
Код
return str_replace(array('%7B','%7D'),array('{','}'),sefRelTOAbs($content));

За данное решение говорим спасибо Physicist'у.
*

Smell

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
  • Флудер быстрого реагирования...
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #9 : 09.07.2008, 22:36:34 »
Как можно сделать, чтоб только администратор мог присоеденять пользователя в группу, а пользователь самомстоятельно присоеденится немог?
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #10 : 09.07.2008, 23:02:12 »
Нужно создать группу со статусом "закрытая" - участние в группе и, соответственно, вход будут только по приграшениям.
*

Smell

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
  • Флудер быстрого реагирования...
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #11 : 09.07.2008, 23:04:34 »
Я так и думал, но дело в том, что я немогу выбрать тип группы, на скриншоте все показано.
Спсибо за помощь, но до меня дощло, это надо было поставить в категории))

[вложение удалено Администратором]
« Последнее редактирование: 09.07.2008, 23:09:38 от Smell »
*

Smell

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
  • Флудер быстрого реагирования...
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #13 : 10.07.2008, 00:43:01 »
Проблема решена?
Да, но возникла новая, подскажи пожалуйста в каком php файле находятся вот эти слова (смотрите скриншот).

[вложение удалено Администратором]
*

Smell

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
  • Флудер быстрого реагирования...
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #15 : 10.07.2008, 00:56:24 »
Именно он.
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #16 : 10.07.2008, 01:05:23 »
Открываешь components/com_comprofiler/plugin/user/plug_groupjivetab/templates/jason.tmpl
строка 27:

Код
&nbsp;{VISITLINK}&nbsp;|&nbsp;This Group has {MEMBERCOUNT} members.

Советую пройтись по файлу и внимательно просмотреть, возможно там еще нужен будет перевод некоторых слов. При сохранении файла указываешь кодировку документа windows-1251.
*

Smell

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
  • Флудер быстрого реагирования...
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #17 : 10.07.2008, 01:12:34 »
Большое спасибо.
+1
*

uniqum

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #18 : 10.07.2008, 03:30:24 »
опечаточка

define ('GJ_NEWESTMEM', 'Новые участникИ');
*

uniqum

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #19 : 10.07.2008, 04:45:47 »
тоже при инвайте непонятный текст
Цитировать
òàòàðèí

Версия БД:       5.0.51a-log
Версия PHP:    4.4.8

сделал всё выше перечисленное
« Последнее редактирование: 10.07.2008, 04:53:47 от uniqum »
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #20 : 10.07.2008, 10:46:21 »
Да, проблема с неверной кодировой при приглашении пока еще решена, об этом говорили выше. Как будет найдено решение, выложу рецепт. Опечатку исправлю, спасибо.
*

Smell

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
  • Флудер быстрого реагирования...
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #21 : 12.07.2008, 14:42:07 »
Можно ли как-то сделать, чтоб при регистрации пользователь автоматически попадал в определенную группу?Очень нужная штука.
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #22 : 14.07.2008, 20:37:48 »
Исправление неправильной кодировки при поиске пользователей (на высоких версиях PHP5.x & MySQL 5.x):

Заменить echo utf8_encode($content) на echo $content в groupjive.php (строка 796)
*

Smell

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
  • Флудер быстрого реагирования...
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #23 : 19.07.2008, 13:06:26 »
Люди, ну что такое возможно или нет, описаное мной сверху?
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #24 : 19.07.2008, 14:01:48 »
Без внесения модификации, пожалуй, не обойтись. Стандартного решения не встречал.
*

ZuJust

  • Новичок
  • 3
  • 0 / 0
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #25 : 21.09.2008, 19:57:59 »
Ест ли таб для CB? показывающий  в каких группах пользователь
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
*

ZuJust

  • Новичок
  • 3
  • 0 / 0
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #27 : 22.09.2008, 15:35:52 »
нашел уже х) но вот проблемы с интеграцией в ФБ х( немогли бы ли вы написать русскую инструкцию?
*

ZuJust

  • Новичок
  • 3
  • 0 / 0
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #28 : 22.09.2008, 15:41:30 »
и еше вот , когда жмеш "вступить в группу":



SQL error when attempting to save a messageDB function failed with error number 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's Team[/b]. Добро пожаловать в группу! Спасибо и ' at line 4 SQL=INSERT INTO jos_missus (senderid,datesended,subject,message) VALUES ('62','2008-09-22 15:29:16', 'Активность группы', 'Привет, Co***s! Это письмо является подтверждением того, что Z****st присоединился к группе Ani******rg Releaser's Team. Добро пожаловать в группу! Спасибо и добро пожаловать в группу. - - - - - - конец сообщения - - - - - -  * Это сообщение было сгенерировано автоматически. На него отвечать не надо. ')
SQL =

INSERT INTO jos_missus (senderid,datesended,subject,message)
VALUES ('62','2008-09-22 15:29:16',
'Активность группы',
'Привет, Co***s!



Это письмо является подтверждением того, что Z***st присоединился к группе Anim****g Releaser's Team.



Добро пожаловать в группу!




Спасибо и добро пожаловать в группу.






- - - - - - конец сообщения - - - - - -

* Это сообщение было сгенерировано автоматически. На него отвечать не надо.

')
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Русская редакция Groupjive 1.6 beta4
« Ответ #29 : 23.09.2008, 16:35:40 »
Так эта ошибка была поправлена в русской редакции.

Хотя обкатывали на uddeIM. Насчёт Missus ничего сказать не могу...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перевод пользовательской части компонента GroupJive 1.8

Автор DKsN

Ответов: 3
Просмотров: 2716
Последний ответ 12.03.2012, 03:04:53
от aryumin