Вход Регистрация
Файл: InstantSocial/uploud/components/clubs/frontend.php
Строк: 637
<?php
/******************************************************************************/
//                                                                            //
//                             InstantCMS v1.9                                //
//                        http://www.instantcms.ru/                           //
//                                                                            //
//                   written by InstantCMS Team, 2007-2011                    //
//                produced by InstantSoft, (www.instantsoft.ru)               //
//                                                                            //
//                        LICENSED BY GNU/GPL v2                              //
//                                                                            //
/******************************************************************************/

if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }

function 
clubs(){

    
$inCore cmsCore::getInstance();
    
$inPage cmsPage::getInstance();
    
$inDB   cmsDatabase::getInstance();
    
$inUser cmsUser::getInstance();
    global 
$_LANG;
    
$inCore->includeFile("components/users/includes/usercore.php");
    
$inCore->includeFile("components/blogs/includes/blogcore.php");

    
$inCore->loadLib("clubs");
    
$inCore->loadLib("users");
    
$inCore->loadLib("tags");
    
$inCore->loadLib("photos");
    
$inCore->loadLib("karma");

    
$inCore->loadModel('clubs');
    
$model = new cms_model_clubs();

    
define('IS_BILLING'$inCore->isComponentInstalled('billing'));
    if (
IS_BILLING) { $inCore->loadClass('billing'); }

    
$inPage->addHeadJS('components/clubs/js/clubs.js');

    
//LOAD CONFIG
    
$cfg $inCore->loadComponentConfig('clubs');
    
// Проверяем включени ли компонент
    
if(!$cfg['component_enabled']) { cmsCore::error404(); }
    
    
//SOME DEFAULT CONFIG VALUES
    
if(!isset($cfg['seo_club'])) { $cfg['seo_club'] = 'title'; }
    if(!isset(
$cfg['enabled_blogs'])) { $cfg['enabled_blogs'] = 1; }
    if(!isset(
$cfg['enabled_photos'])) { $cfg['enabled_photos'] = 1; }    
    if(!isset(
$cfg['thumb1'])) { $cfg['thumb1'] = 48; }    
    if(!isset(
$cfg['thumb2'])) { $cfg['thumb2'] = 200; }    
    if(!isset(
$cfg['thumbsqr'])) { $cfg['thumbsqr'] = 1; }    
    if(!isset(
$cfg['cancreate'])) { $cfg['cancreate'] = 0; }    
    if(!isset(
$cfg['perpage'])) { $cfg['perpage'] = 10; }
    if(!isset(
$cfg['notify_in'])) { $cfg['notify_in'] = 1; }
    if(!isset(
$cfg['notify_out'])) { $cfg['notify_out'] = 1; }
    if(!isset(
$cfg['every_karma'])) { $cfg['every_karma'] = 100; }
    
    
//Определяем адрес для редиректа назад
    
$back   $inCore->getBackURL();
    
    
$pagetitle $inCore->menuTitle();
    
    
//INPUT PARAMETERS
    
$id         $inCore->request('id''int'0);
    
$do         $inCore->request('do''str''view');

////////// VIEW ALL CLUBS ////////////////////////////////////////////////////////////////////////////////////////
if ($do=='view'){

    
//PAGINATION
    
$perpage    = isset($cfg['perpage']) ? $cfg['perpage'] : 10;
    
$page       $inCore->request('page''int'1);
    
    
$clubs      = array();
    
$clubs_list $model->getClubs($page$perpage);
    
    
$total 0;

    if (
$clubs_list){
        foreach (
$clubs_list as $club){
            if (!
$club['imageurl']) { $club['imageurl'] = 'nopic.jpg'; } else {
                if (!
file_exists(PATH.'/images/clubs/small/'.$club['imageurl'])){
                    
$club['imageurl'] = 'nopic.jpg';
                }
            }
            
$clubs[] = $club;
        }
        
$total      $model->getClubsCount();
        
$pagination cmsPage::getPagebar($total$page$perpage'/clubs/page-%page%', array());
    }

    
$smarty $inCore->initSmarty('components''com_clubs_view.tpl');
    
$smarty->assign('pagetitle'$pagetitle);
    
$smarty->assign('clubid'$id);
    
// Ссылку на создание клуба показываем всем авторизованным, если включено создание клуба
    
$smarty->assign('can_create', ($inUser->id && $cfg['cancreate'] || $inUser->is_admin));
    
$smarty->assign('clubs'$clubs);
    
$smarty->assign('total'$total);
    
$smarty->assign('pagination'$pagination);
    
$smarty->display('com_clubs_view.tpl');

}
////////// VIEW SINGLE CLUB ////////////////////////////////////////////////////////////////////////////////////////
if ($do=='club'){

    
$club   $model->getClub($id);
    if(!
$club){    cmsCore::error404(); }
    
    
//TITLES
    
$pagetitle $club['title'];
    
$inPage->setTitle($pagetitle);
    
$inPage->addPathway($club['title']);

    
// description
    
switch ($cfg['seo_club']){
        case 
'deskr':     $inPage->setDescription($inCore->strClear($club['description']));
                        break;
        
        case 
'title':     $inPage->setDescription($club['title']);
        
                        break;
    }

    
$user_id    $inUser->id;
    
$is_admin     $inUser->is_admin || ($user_id == $club['admin_id']);
    
$is_moder     clubUserIsRole($id$user_id'moderator');
    
$is_member     clubUserIsRole($id$user_id'member');
    
$is_member_club    $is_member || $is_moder;

    
$is_access true;

    if (
$club['clubtype']=='private' && (!$is_admin && !$is_moder && !$is_member)){
        
$is_access false;
    }

    
$is_karma_enabled false;

    if (
$user_id){
        
$is_karma_enabled = (cmsUser::getKarma($user_id) >= $club['album_min_karma']) && $is_member_club true false;
    }

    
//CHECK IMAGE
    
if (!$club['imageurl']) { $club['imageurl'] = 'nopic.jpg'; } else {
        if (!
file_exists(PATH.'/images/clubs/'.$club['imageurl'])){
            
$club['imageurl'] = 'nopic.jpg';
        }
    }

    
//JOIN/LEAVE LINK
    
$club['member_link'] = '';
    if ( 
$is_member_club ){
        
$club['member_link'] = '<a href="/clubs/'.$id.'/leave.html" class="leave">'.$_LANG['LEAVE_CLUB'].'</a>';;
    } 
    if (
$club['clubtype']=='public' && ($user_id != $club['admin_id']) && !$is_member_club){
        
$club['member_link'] = '<a href="/clubs/'.$id.'/join.html" class="join">'.$_LANG['JOIN_CLUB'].'</a>';
    }

    
//PARAMS
    
$club['admin']             = clubAdminLink($id);
    
$club['members']         = clubTotalMembers($id);
    
$club['members_list']     = clubMembersList($id);
    
$club['wall_html']        = cmsUser::getUserWall($club['id'], 'club'1$is_moder$is_admin);
    
$club['addwall_html']     = cmsUser::getUserAddWall($club['id'], 'club');

    
$club['enabled_blogs']    = $club['enabled_blogs'] == || ($club['enabled_blogs']==&& $cfg['enabled_blogs']==1);
    
$club['enabled_photos']    = $club['enabled_photos'] == || ($club['enabled_photos']==&& $cfg['enabled_photos']==1);

    if (
$club['enabled_blogs']) {
        
$club['blog_id']        = clubBlogId($club['id']);
        
$club['blog_content']    = clubBlogContent($club['blog_id'], $is_admin$is_moder$is_member);
        
$inCore->loadModel('blogs');
        
$blog_model = new cms_model_blogs();
        
$club['blog_url']       = $blog_model->getBlogURL(null$inDB->get_field('cms_blogs'"id={$club['blog_id']}"'seolink'));
    }

    if (
$club['enabled_photos']) {
        
$club['root_album_id']    = clubRootAlbumId($club['id']);
        if (!
$club['root_album_id']) { $club['root_album_id'] = albumCreateRoot($id'club'.$id$club['title']); }
        
$club['photo_albums']    = clubPhotoAlbums($club['id'],  $is_admin$is_moder$is_member);
        
$club['all_albums']        = $inDB->rows_count('cms_photo_albums'"NSDiffer = 'club{$club['id']}' AND user_id = '{$club['id']}' AND parent_id > 0");
    }

    
$club['pubdate'] = $inCore->dateformat($club['pubdate'], truetrue);

    
// Получаем плагины
    
$plugins $model->getPluginsOutput($club);

    
$smarty $inCore->initSmarty('components''com_clubs_view_club.tpl');    
    
$smarty->assign('clubid'$id);
    
$smarty->assign('club'$club);
    
$smarty->assign('is_access'$is_access);
    
$smarty->assign('uid'$user_id);
    
$smarty->assign('is_admin'$is_admin);
    
$smarty->assign('is_moder'$is_moder);
    
$smarty->assign('plugins'$plugins);
    
$smarty->assign('is_member'$is_member);
    
$smarty->assign('is_karma_enabled'$is_karma_enabled);
    
$smarty->assign('pagetitle'$pagetitle);
    
$smarty->display('com_clubs_view_club.tpl');
    
}
///////////////////////// CREATE CLUB ////////////////////////////////////////////////////////////////////////////
if ($do == 'create'){

    
$inPage->backButton(false);
    
    if (!
$inUser->id){ cmsUser::goToLogin(); }

    
$can_create $model->canCreate($cfgtrue);

    if (!
$can_create){ $inCore->redirectBack(); }

    
$inPage->addPathway($_LANG['CREATE_CLUB']);

    if ( !
$inCore->inRequest('create') ){
        
$inPage->setTitle($_LANG['CREATE_CLUB']);
        
$smarty $inCore->initSmarty('components''com_clubs_create.tpl');
        
$smarty->assign('confirm'$confirm);
        
$smarty->display('com_clubs_create.tpl');
    }

    if ( 
$inCore->inRequest('create') ){

        
$errors     false;
        
$title      $inCore->request('title''str');
        
$clubtype   $inCore->request('clubtype''str');

        if (!
$title || !$clubtype){
            
cmsCore::addSessionMessage($_LANG['CLUB_REQ_TITLE'], 'error');
            
$errors true;
        } else {

            
$is_exists  $inDB->get_field('cms_clubs'"title = '{$title}'"'id');

            if (
$is_exists){
                
cmsCore::addSessionMessage($_LANG['CLUB_EXISTS'], 'error');
                
$errors true;
            }

        }

        if(!
$errors){
            
$created_id $model->addClub(array('user_id'=>$inUser->id'title'=>$title'clubtype'=>$clubtype), $cfg);
            if(
$created_id){ setClubRating($created_id); }
            
//регистрируем событие
            
cmsActions::log('add_club', array(
                        
'object' => $title,
                        
'object_url' => '/clubs/'.$created_id,
                        
'object_id' => $created_id,
                        
'target' => '',
                        
'target_url' => '',
                        
'target_id' => 0
                        
'description' => ''
            
));
            
$inCore->redirect('/clubs/'.$created_id);
        } else {
            
$inCore->redirect('/clubs/create.html');
        }
        
    }

}

///////////////////////// CONFIGURE CLUB //////////////////////////////////////////////////////////////////////
if ($do == 'config'){
    
    
$inPage->backButton(false);

    
$user_id    $inUser->id;
    
$user_nick  $inUser->nickname;
    
$club       $model->getClub($id);

    if (!
$user_id){ return; }
    if (!
$club){ return; }
    if ( !(
clubUserIsAdmin($id$user_id) || $inCore->userIsAdmin($user_id)) ){ return; }

    if ( 
$inCore->inRequest('save') ){
        
//save to database
        
$title                 $inCore->request('title''str''');
        
$description         $inCore->request('description''html''');
        
$description         $inCore->badTagClear($description);
        
$description         $inDB->escape_string($description);
        
$admin_id             $club['admin_id'];
        
$clubtype            $inCore->request('clubtype''str''public');
        
$maxsize             $inCore->request('maxsize''int'0);
        
$blog_min_karma        $inCore->request('blog_min_karma''int'0);
        
$photo_min_karma    $inCore->request('photo_min_karma''int'0);
        
$album_min_karma    $inCore->request('album_min_karma''int'0);

        
$blog_premod        $inCore->request('blog_premod''int'0);
        
$photo_premod        $inCore->request('photo_premod''int'0);

        
$join_karma_limit    $inCore->request('join_karma_limit''int'0);
        
$join_min_karma        $inCore->request('join_min_karma''int'0);

        
//upload logo
        
if ($_FILES['picture']['name']){
            
$inCore->includeGraphics();

            
$uploaddir PATH.'/images/clubs/';    
            if (!
is_dir($uploaddir)) { @mkdir($uploaddir); }
            @
chmod($uploaddir0755);

            
$realfile   $_FILES['picture']['name'];
            
$path_parts pathinfo($realfile);
            
$ext        strtolower($path_parts['extension']);
            if (
$ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png' && $ext != 'bmp') { cmsCore::error404(); }

            
$filename       md5($id $user_id time()).'.jpg';
            
$uploadphoto    $uploaddir $filename;
            
$uploadthumb    $uploaddir 'small/' $filename;

            if (
$inCore->moveUploadedFile($_FILES['picture']['tmp_name'], $uploadphoto$_FILES['picture']['error'])) {
                    if (
$club['imageurl'] && $club['imageurl']!='nopic.jpg'){
                        @
unlink(PATH.'/images/clubs/'.$club['imageurl']);
                        @
unlink(PATH.'/images/clubs/small/'.$club['imageurl']);
                    }
                    @
img_resize($uploadphoto$uploadthumb$cfg['thumb1'], $cfg['thumb1'], $cfg['thumbsqr']);
                    @
img_resize($uploadphoto$uploadphoto$cfg['thumb2'], $cfg['thumb2'], $cfg['thumbsqr']);
            } else {
                
$msg $inCore->uploadError();
            }

            
$model->updateClubImage($id$filename);
        }

        
$model->updateClub($id, array(
                                        
'admin_id'=>$admin_id,
                                        
'title'=>$title,
                                        
'description'=>$description,
                                        
'clubtype'=>$clubtype,
                                        
'maxsize'=>$maxsize,
                                        
'blog_min_karma'=>$blog_min_karma,
                                        
'photo_min_karma'=>$photo_min_karma,
                                        
'album_min_karma'=>$album_min_karma,
                                        
'photo_premod'=>$photo_premod,
                                        
'blog_premod'=>$blog_premod,
                                        
'join_min_karma'=>$join_min_karma,
                                        
'join_karma_limit'=>$join_karma_limit
                                    
));

        
cmsActions::updateLog('add_club', array('object' => $title), $id);

        if (
$inUser->is_admin && IS_BILLING){
            
$is_vip    $inCore->request('is_vip''int'0);
            
$join_cost $inCore->request('join_cost''int'0);
            
$model->setVip($id$is_vip$join_cost);
        }

        
$moders  $inCore->request('moderslist''array_int', array());
        
$members $inCore->request('memberslist''array_int', array());

        if (
$moders) { if (array_search($admin_id$moders)) { unset($moders[array_search($admin_id$moders)]); }    }
        if (
$members) { if (array_search($admin_id$members)) { unset($members[array_search($admin_id$members)]); }    }

        
clubSaveUsers($id$members'member'$clubtype$cfg);
        
clubSaveUsers($id$moders'moderator'$clubtype$cfg);

        
cmsCore::addSessionMessage($_LANG['CONFIG_SAVE_OK'], 'info');

        
$inCore->redirect('/clubs/'.$id);
    }

    if ( !
$inCore->inRequest('save') ){
        
        
// Заголовки и пафвей
        
$inPage->addPathway($club['title'], '/clubs/'.$id);
        
$inPage->addPathway($_LANG['CONFIG_CLUB']);
        
$inPage->setTitle($_LANG['CONFIG_CLUB']);

        
// Получаем список друзей владельца клуба
        
$friends          cmsUser::getFriends($club['admin_id']);
        
// Получаем участников клуба, без учета администратора
        
$moderators     clubModerators($id);
        
$members        clubMembers($id);
        
$club_users_list array_merge($moderators$members);
        
// Проверяем наличие друга в списке участников клуба или является ли он администратором
        
foreach($friends as $key=>$friend){ 
            if (
in_array($friend['id'], $club_users_list) || $friend['id'] == $club['admin_id']) { unset($friends[$key]); }
        }
        
// Формируем список option друзей, если они есть
        
if ($_SESSION['user']['friends'] && $friends) { 
            foreach(
$friends as $friend){ 
                
$friends_list .= '<option value="'.$friend['id'].'">'.$friend['nickname'].'</option>';
            }        
        }
        
// Формируем массив id друзей для мержа с участниками клуба
        // массив друзей берется с уже отфильтрованными участниками
        
$friends_ids = array();
        foreach(
$friends as $friend){ 
            
$friends_ids[] = $friend['id'];
        }
        
// формируем список друзья не в клубе + участники клуба
        
$fr_members array_merge($club_users_list$friends_ids);
        
// Проверяем наличие друга или участников клуба в списке модераторов
        
$fr_members array_diff($fr_members$moderators);
        
// Формируем список option друзей (которые еще не в этом клубе) и участников
        
if ($fr_members) { $fr_members_list cmsUser::getAuthorsList($fr_members); } else { $fr_members_list ''; }
        
// Формируем список option участников клуба
        
if ($moderators) { $moders_list cmsUser::getAuthorsList($moderators); } else { $moders_list ''; }
        if (
$club_users_list) { $members_list cmsUser::getAuthorsList($club_users_list); } else { $members_list ''; }

        
$club['blog_id'] = clubBlogId($id);

        
//CHECK IMAGE
        
if (!$club['imageurl']) { $club['imageurl'] = 'nopic.jpg'; } else {
            if (!
file_exists(PATH.'/images/clubs/'.$club['imageurl'])){
                
$club['imageurl'] = 'nopic.jpg';
            }
        }

        
$club['enabled_blogs']    = $club['enabled_blogs'] == || ($club['enabled_blogs']==&& $cfg['enabled_blogs']==1);
        
$club['enabled_photos']    = $club['enabled_photos'] == || ($club['enabled_photos']==&& $cfg['enabled_photos']==1);

        
$smarty $inCore->initSmarty('components''com_clubs_config.tpl');
        
$smarty->assign('club'$club);
        
$smarty->assign('moders_list'$moders_list);
        
$smarty->assign('members_list'$members_list);
        
$smarty->assign('friends_list'$friends_list);
        
$smarty->assign('fr_members_list'$fr_members_list);
        
$smarty->assign('is_billing'IS_BILLING);
        
$smarty->assign('is_admin'$inUser->is_admin);
        
$smarty->display('com_clubs_config.tpl');

    }

}
///////////////////////// LEAVE CLUB - UNJOIN /////////////////////////////////////////////////////////////////
if ($do == 'leave'){
    
$inPage->backButton(false);

    
$user_id    $inUser->id;
    
$club       $model->getClub($id);

    if (!
$user_id){ return; }
    if (!
$club){ return; }

    
$inPage->addPathway($club['title'], '/clubs/'.$id);
    
$inPage->addPathway($_LANG['EXIT_FROM_CLUB']);
    
$inPage->setTitle($_LANG['EXIT_FROM_CLUB']);

    if (!
clubUserIsMember($id$user_id)){ return; }

    if ( 
$inCore->inRequest('confirm') ){
        
clubRemoveUser($id$user_id);
        
setClubsRating($id);
        
cmsActions::removeObjectLog('add_club_user'$id$user_id);
        
$inCore->redirect('/clubs/'.$id);
    }

    if ( !
$inCore->inRequest('confirm') ){

        
$inPage->setTitle($_LANG['EXIT_FROM_CLUB']);
        
$inPage->backButton(false);

        
$confirm['title']               = $_LANG['EXIT_FROM_CLUB'];
        
$confirm['text']                = $_LANG['REALY_EXIT_FROM_CLUB'];
        
$confirm['action']              = '';
        
$confirm['yes_button']['type']  = 'submit';
        
$confirm['yes_button']['name']  = 'confirm';

        
$smarty $inCore->initSmarty('components''action_confirm.tpl');
        
$smarty->assign('confirm'$confirm);
        
$smarty->display('action_confirm.tpl');
    }

}
///////////////////////// JOIN CLUB ////////////////////////////////////////////////////////////////////////////
if ($do == 'join'){

    
$user_id    $inUser->id;
    
$club       $model->getClub($id);

    if (!
$user_id){ return; }
    if (!
$club){    return; }

    
$inPage->addPathway($club['title'], '/clubs/'.$id);
    
$inPage->addPathway($_LANG['JOINING_CLUB']);
    
$inPage->setTitle($_LANG['JOINING_CLUB']);

    if (
clubUserIsMember($id$user_id)){ return; }

    
//
    // Обработка заявки
    //
    
if ( $inCore->inRequest('confirm') ){

        
//списываем оплату если клуб платный
        
if (IS_BILLING && $club['is_vip'] && $club['join_cost'] && !$inUser->is_admin){
            if (
$inUser->balance >= $club['join_cost']){
                
//если средств на балансе хватает
                
cmsBilling::pay($user_id$club['join_cost'], sprintf($_LANG['VIP_CLUB_BUY_JOIN'], $club['title']));
            } else {
                
//недостаточно средств, создаем тикет
                //и отправляем оплачивать
                
$billing_ticket = array(
                    
'action' => sprintf($_LANG['VIP_CLUB_BUY_JOIN'], $club['title']), 
                    
'cost'   => $club['join_cost'],
                    
'amount' => $club['join_cost'] - $inUser->balance,
                    
'url'    => $_SERVER['REQUEST_URI']
                );
                
cmsUser::sessionPut('billing_ticket'$billing_ticket);
                
$inCore->redirect('/billing/pay');                
            }
        }

        
//добавляем пользователя в клуб
        
clubAddUser($id$user_id);
        
setClubsRating($id);

        
//регистрируем событие
        
cmsActions::log('add_club_user', array(
                        
'object' => $club['title'],
                        
'object_url' => '/clubs/'.$id,
                        
'object_id' => $id,
                        
'target' => '',
                        
'target_url' => '',
                        
'target_id' => 0
                        
'description' => ''
        
));

        
$inCore->redirect('/clubs/'.$id);
        
    }

    
//
    // Форма подтверждения заявки
    //
    
if ( !$inCore->inRequest('confirm') ) {

        
$inPage->setTitle($_LANG['JOINING_CLUB']);

        
$min_karma $club['join_min_karma'];
        
$user_karma cmsUser::getKarma($user_id);

        if((
$user_karma >= $min_karma) || !$club['join_karma_limit']){

            
$inPage->backButton(false);
            
$confirm['title']   = $_LANG['JOINING_CLUB'];
            
$confirm['text']    = $_LANG['YOU_REALY_JOIN_TO'].' <strong>'.$club['title'].'</strong>?';
            if (
$club['is_vip'] && $club['join_cost'] && !$inUser->is_admin){
                
$confirm['text'] .= '<br/>'.$_LANG['VIP_CLUB_JOIN_COST'].' &mdash; <strong>'.$club['join_cost'].' '.$_LANG['BILLING_POINT10'].'</strong>';
            }
            
$confirm['action']  = '';
            
$confirm['yes_button']['type'] = 'submit';
            
$confirm['yes_button']['name'] = 'confirm';

            
$smarty $inCore->initSmarty('components''action_confirm.tpl');
            
$smarty->assign('confirm'$confirm);
            
$smarty->display('action_confirm.tpl');

        } else {

            
$inPage->backButton(true);
            
$inPage->printHeading($_LANG['NEED_KARMA']);
            echo 
'<p><strong>'.$_LANG['NEED_KARMA_TEXT'].'</strong></p>';
            echo 
'<p>'.$_LANG['NEEDED'].' '.$min_karma.', '.$_LANG['HAVE_ONLY'].' '.$user_karma.'.</p>';
            echo 
'<p>'.$_LANG['WANT_SEE'].' <a href="/users/'.$uid.'/karma.html">'.$_LANG['HISTORY_YOUR_KARMA'].'</a>?</p>';
            
        }
    }

}
///////////////////// Рассылка сообщения членам клуба /////////////////////////////////////////////////////////
if ($do == 'send_message'){

    
$user_id    $inUser->id;
    
$club       $model->getClub($id);
    
$is_admin     $inUser->is_admin || ($user_id == $club['admin_id']);


    if (!
$user_id || !$club || !$is_admin){ cmsCore::error404(); }

    
$inPage->addPathway($club['title'], '/clubs/'.$id);
    
$inPage->addPathway($_LANG['SEND_MESSAGE']);
    
$inPage->setTitle($_LANG['SEND_MESSAGE'].' - '.$club['title']);
    
$inPage->backButton(false);

    if(!isset(
$_POST['gosend'])){
        
$smarty $inCore->initSmarty('components''com_clubs_messages_member.tpl');
        
$smarty->assign('club'$club);
        
$smarty->assign('bbcodetoolbar'cmsPage::getBBCodeToolbar('message'));
        
$smarty->assign('smilestoolbar'cmsPage::getSmilesPanel('message'));
        
$smarty->display('com_clubs_messages_member.tpl');
    } else {
        
$errors false;
        
$message $inCore->request('message''html''');
        
$message $inCore->parseSmiles($messagetrue);
        
$message $inDB->escape_string($message);

        
$total_list      = array();
        
$moderators_list clubModerators($id);
        
$members_list    clubMembers($id);
        
$total_list      $_POST['only_mod'] ? $moderators_list array_merge ($moderators_list$members_list);

        if (
strlen($message)<3) { $inCore->addSessionMessage($_LANG['ERR_SEND_MESS'], 'error'); $errors true; }
        if (!
$total_list) { $inCore->addSessionMessage($_LANG['ERR_SEND_MESS_NO_MEMBERS'], 'error'); $errors true; }
        if (
$errors) { $inCore->redirect($back); }

        foreach (
$total_list as $user_id){
            
cmsUser::sendMessage(USER_UPDATER$user_id'<b>Сообщение от <a href="'.cmsUser::getProfileURL($inUser->login).'">Администратора</a> клуба "<a href="/clubs/'.$id.'">'.$club['title'].'</a>":</b><br> '.$message);
        }
        
$_POST['only_mod'] ? $inCore->addSessionMessage($_LANG['SEND_MESS_TO_MODERS_OK'], 'info') : $inCore->addSessionMessage($_LANG['SEND_MESS_TO_MEMBERS_OK'], 'info');
        
$inCore->redirect('/clubs/'.$id);

    }

}

///////////////////////// Пригласить друзей в группу /////////////////////////////////////////
if ($do=='join_member'){

    
$user_id    $inUser->id;
    
$club       $model->getClub($id);

    if (!
$user_id || !$club){ cmsCore::error404(); }

    if ( !
$inCore->inRequest('join') ){

        
// Получаем список друзей
        
$friends         cmsUser::getFriends($user_id);
        
// Получаем участников клуба
        
$moderators     clubModerators($id);
        
$members        clubMembers($id);
        
$userslist      array_merge($moderators$members);
        
// Проверяем наличие друга в списке участников клуба или является ли он администратором
        
foreach($friends as $key=>$friend){ 
            if (
in_array($friend['id'], $userslist) || $friend['id'] == $club['admin_id']) { unset($friends[$key]); }
        }
        
// Если нет друзей или все друзья уже в этом клубе, то выводим ошибку и возвращаемся назад
        
if (!$_SESSION['user']['friends'] || !$friends) { $inCore->addSessionMessage($_LANG['SEND_INVITE_ERROR'], 'error'); $inCore->redirect($back); }
        
// Формируем список option друзей
        
foreach($friends as $friend){ 
            
$friends_opt .= '<option value="'.$friend['id'].'">'.$friend['nickname'].'</option>';
        }
        
// Заголовок страницы и пафвей
        
$inPage->setTitle($_LANG['SEND_INVITE_CLUB'].' '.$club['title']);
        
$inPage->addPathway($club['title'], '/clubs/'.$id);
        
$inPage->addPathway($_LANG['SEND_INVITE_CLUB']);
        
$inPage->backButton(false);
        
// Выводим шаблон
        
$smarty $inCore->initSmarty('components''com_clubs_join_member.tpl');            
        
$smarty->assign('club'$club);
        
$smarty->assign('friends'$friends_opt);
        
$smarty->display('com_clubs_join_member.tpl');

    }

    if ( 
$inCore->inRequest('join') ){

        
$usr_to_id $inCore->request('usr_to_id''int');
        if (!
$usr_to_id){ cmsCore::error404(); }

        
$club      '<a href="/clubs/'.$id.'">'.$club['title'].'</a>';
        
$user      '<a href="'.cmsUser::getProfileURL($inUser->login).'">'.$inUser->nickname.'</a>';
        
$link_join '<a href="/clubs/'.$id.'/join.html">'.$_LANG['JOIN_CLUB'] .'</a>';

        
$message   $_LANG['INVITE_CLUB_TEXT'];
        
$message   str_replace('%user%'$user$message);
        
$message   str_replace('%club%'$club$message);
        
$message   str_replace('%link_join%'$link_join$message);

        
cmsUser::sendMessage(USER_UPDATER$usr_to_id$message);

        
$inCore->addSessionMessage($_LANG['SEND_INVITE_OK'], 'info');
        
$inCore->redirect('/clubs/'.$id);

    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
$inCore->executePluginRoute($do);
}
?>
Онлайн: 1
Реклама