Файл: InstantSocial/uploud/plugins/p_guests/plugin.php
Строк: 124
<?php
class p_guests extends cmsPlugin {
public function __construct(){
parent::__construct();
$this->info['plugin'] = 'p_guests';
$this->info['title'] = 'Мои гости';
$this->info['description'] = 'Добавляет вкладку со списком гостей';
$this->info['author'] = 'HolyGun && MaiX';
$this->info['version'] = '2.2';
$this->info['tab'] = 'Мои гости';
$this->events[] = 'USER_PROFILE';
$this->config['limit'] = 30;
$this->config['tab'] = 'Мои гости';
}
public function install(){
$inCore = cmsCore::getInstance();
$inDB = cmsDatabase::getInstance();
$sql = "
CREATE TABLE IF NOT EXISTS `cms_user_guests` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`guest_id` int(11) NOT NULL default '0',
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
UNIQUE KEY `user_id` (`user_id`,`guest_id`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
";
$inDB->query($sql);
return parent::install();
}
public function upgrade(){
return parent::upgrade();
}
public function execute($event, $user){
parent::execute();
$this->info['tab'] = $this->config['tab'];
global $_LANG;
$inCore = cmsCore::getInstance();
$inDB = cmsDatabase::getInstance();
$inUser = cmsUser::getInstance();
$is_admin = $inUser->is_admin;
if (!$id) {
$login = $inCore->request('login', 'str', '');
$login = urldecode($login);
$id = $inDB->get_field('cms_users', "login='{$login}' ORDER BY is_deleted ASC", 'id');
}
$myprofile = ($inUser->id == $id);
if(!$myprofile && $inUser->id) {
$sql = "REPLACE INTO cms_user_guests SET user_id = ".$id.", guest_id = ".$inUser->id;
$inDB->query($sql);
if ($is_admin != 1){
return;
}
}
if ($myprofile || $is_admin == 1){
$is_send = $inCore->inRequest('guestssbros');
if ($is_send) {
$sql = "DELETE FROM cms_user_guests WHERE user_id = '{$id}'" ;
$inDB->query($sql);
}
if (!function_exists('usrImageNOdb')) include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
$limit = $this->config['limit'] ;
$sql = "SELECT DISTINCT u.id, u.login, u.nickname, p.gender, p.imageurl AS avatar, o.user_id AS status, ug.date
FROM cms_user_guests ug
LEFT JOIN cms_online o ON (o.user_id = ug.guest_id)
LEFT JOIN cms_users u ON (u.id = ug.guest_id)
LEFT JOIN cms_user_profiles p ON (p.user_id = u.id)
WHERE (u.is_locked = 0 and u.is_deleted = 0) and ug.user_id = ".$id." ORDER BY ug.date DESC LIMIT ".$limit." ";
$result = $inDB->query($sql);
$total = $this->inDB->num_rows($result);
if ($total){
while ($usr=$inDB->fetch_assoc($result)) {
$usr['avatar'] = usrImageNOdb($usr['id'], 'small', $usr['avatar'], $usr['is_deleted']);
if ($usr['status']) {
$usr['status'] = '<span class="online">'.$_LANG['ONLINE'].'</span>';
}
else {
$usr['status'] = ' ';
}
$usr['date'] = cmsCore::dateFormat($usr['date'], true, true);
$usr['nickname'] = cmsUser::getGenderLink($usr['id'], $usr['nickname'], null, $usr['gender'], $usr['login'],"","");
$guests[] = $usr;
}
}
ob_start();
$smarty= $this->inCore->initSmarty('plugins', 'p_guests.tpl');
$smarty->assign('total', $total);
$smarty->assign('guests', $guests);
$smarty->display('p_guests.tpl');
$html = ob_get_clean();
return $html;
}else{
return;
}
}
}
?>