<?php class p_usermaps_photo extends cmsPlugin { public function __construct() { parent::__construct(); $this->info['plugin'] = 'p_userchat_av'; $this->info['title'] = 'Чат с миром'; $this->info['description'] = 'Позволяет общаться в чате непосредственно в вертуальном мире'; $this->info['author'] = ''; $this->info['version'] = '1.0'; $this->events[] = 'USER_LOGIN'; } public function execute($event, $item) { parent::execute(); switch ($event) { case 'USER_LOGIN': / / USERID $ _SESSION ['Avatarchat_uid'] = 'your_userid; / / USERNAME $ _SESSION ['Avatarchat_nickname'] = 'ваш_логин; / / ПОЛ - ввести 1 мужчины, 2 женщины $ _SESSION ['Avatarchat_gender'] = '1 '; / / ЧЛЕНОВ LEVEL - ввести 1 администратора и модов OR 0 постоянных членов $ _SESSION ['Avatarchat_userlevel'] = '0 ' break; } return; } public function execute($event, $item) { parent::execute(); switch ($event) { case 'USER_LOGOUT': / / USERID $ _SESSION ['Avatarchat_uid'] = 'your_userid; / / USERNAME $ _SESSION ['Avatarchat_nickname'] = 'ваш_логин; / / ПОЛ - ввести 1 мужчины, 2 женщины $ _SESSION ['Avatarchat_gender'] = '1 '; / / ЧЛЕНОВ LEVEL - ввести 1 администратора и модов OR 0 постоянных членов $ _SESSION ['Avatarchat_userlevel'] = '0 ' break; } return; }
Плагин не ставится
$this->info['plugin'] = 'p_userchat_av';
что-то одно выберите, названия должны быть одинаковыми
а может просто включить показ ошибок и посмотреть на что админка ругается?
две функции с таким названием — это специально?
public function execute($event, $item)
могу предложить его без тега <code> опубликовать, тег убивает читабельность в данном случае
// ==================================================================== // /** * Процедура установки плагина * @return bool */ public function install(){ return parent::install(); } // ==================================================================== // /** * Процедура обновления плагина * @return bool */ public function upgrade(){ return parent::upgrade(); } // ==================================================================== // /** * Обработка событий * @param string $event * @param mixed $item * @return mixed */ public function execute($event, $item){
"Интеграция с пользовательскими базами данных будет интегрироваться с любой пользовательской базы данных. Вам понадобится знание содержания системы, чтобы сделать это. Для интеграции Вы должны быть в состоянии присвоить следующие значения ниже"
// USERID $_SESSION['avatarchat_uid'] = 'your_userid'; // USERNAME $_SESSION['avatarchat_nickname'] = 'your_username'; // GENDER - enter 1 male, 2 female $_SESSION['avatarchat_gender'] = '1'; // MEMBER LEVEL - enter 1 admin and mods OR 0 regular members $_SESSION['avatarchat_userlevel'] = '0';
что неправильно делаю?
<?php class p_avatarchat extends cmsPlugin { public function __construct() { parent::__construct(); $this->info['plugin'] = 'p_avatarchat'; $this->info['title'] = 'Чат с миром'; $this->info['description'] = 'Позволяет общаться в чате непосредственно в вертуальном мире'; $this->info['author'] = ''; $this->info['version'] = '1.0'; $this->events[] = 'USER_LOGIN'; } // ==================================================================== // /** * Процедура установки плагина * @return bool */ public function install(){ return parent::install(); } // ==================================================================== // /** * Процедура обновления плагина * @return bool */ public function upgrade(){ return parent::upgrade(); } // ==================================================================== // /** * Обработка событий * @param string $event * @param mixed $item * @return mixed */ public function execute($event, $item){ parent::execute(); switch ($event) { case 'USER_LOGOUT': $_SESSION['avatarchat_uid'] = 'your_userid'; $_SESSION['avatarchat_nickname'] = 'your_username'; $_SESSION['avatarchat_gender'] = '1'; $_SESSION['avatarchat_userlevel'] = '0'; case 'USER_LOGIN': $_SESSION['avatarchat_uid'] = 'your_userid'; $_SESSION['avatarchat_nickname'] = 'your_username'; $_SESSION['avatarchat_gender'] = '1'; $_SESSION['avatarchat_userlevel'] = '0'; } return; ?>
1.Обрабатываются 2 события ('USER_LOGIN', 'USER_LOGOUT'). А в отлавливаемых показали только одно:
$this->events[] = 'USER_LOGIN';
$this->events[] = 'USER_LOGOUT';
2.Критично. Если плагин получает $item, то наверно должен и возвращать его обратно. А у вас стоит просто return;. Нужно return $item; Даже если ничего и не делаете с этим $item.
3. Некритично. Хотя это и необязательно по документации, но хороший тон ставить break; в конструкции switch-case
Это на беглый взгляд. Возможно есть ещё что-то. Надеюсь сам код запихнули в файл plugin.php. И на время отладки сделайте вывод ошибок. Это поможет. Если не получается, подробнее опишите, что хотите сделать и что именно не получается.
Да эффекта не будет. Вы присваиваете сессионной переменной простое строковое значение 'your_userid', которое будет одинаковое для всех пользователей. Я так полагаю, надо вставлять id пользователя инстанта. Также и другие поля.но только после этого эфектов никаких!
И как происходит авторизация на чате? Только по $_SESSION['avatarchat_uid']? Без пароля? Регистрация как? Чат работает на вашем сервере? Каков механизм авторизации? В общем, куча вопросов, без которых невозможно дать точный ответ как сделать.
Когда то делал интеграцию стороннего чата с инстантом, можно посмотреть по ссылке. Только в виде модуля. Там при загрузке чата берутся данные пользователя инстанта с сессии и далее по ним производится авторизация на сайте. Не очень сложно, но нужно ковыряться в файлах самого чата.
скрипт находится у меня на хосте, пользуется одной базой с инстантом…
комментарий скрипта:
"Интеграция с пользовательскими базами данных будет интегрироваться с любой пользовательской базы данных. Вам понадобится знание содержания системы, чтобы сделать это. Для интеграции Вы должны быть в состоянии присвоить следующие значения ниже"
Код PHP:
01
// USERID
02
$_SESSION['avatarchat_uid'] = 'your_userid';
03
04
// USERNAME
05
$_SESSION['avatarchat_nickname'] = 'your_username';
06
07
// GENDER — enter 1 male, 2 female
08
$_SESSION['avatarchat_gender'] = '1';
09
10
// MEMBER LEVEL — enter 1 admin and mods OR 0 regular members
11
$_SESSION['avatarchat_userlevel'] = '0';
$_SESSION['avatarchat_uid'] = 'your_userid';
$_SESSION['avatarchat_nickname'] = 'your_username';
вы чересчур буквально поняли инструкцию, присваивать то нужно не эти слова(your_userid и your_username) — а реальные значения id и login.