Вход Регистрация
Файл: InstantSocial/uploud/core/lib_clubs.php
Строк: 354
<?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 
clubRootAlbumId($club_id){
    
$inDB cmsDatabase::getInstance();
    return 
$inDB->get_field('cms_photo_albums'"parent_id=0 AND NSDiffer='club".$club_id."'"'id');
}

function 
clubRepairAlbums(){
    
$inDB cmsDatabase::getInstance();
    
$sql "UPDATE cms_photo_albums SET NSDiffer = CONCAT('club', user_id) WHERE NSDiffer = 'club'";    
    
$inDB->query($sql);
}

function 
setClubRating($club_id){
    
$inDB cmsDatabase::getInstance();
    
$sql "SELECT SUM( u.rating ) AS rating
            FROM cms_user_clubs c
            LEFT JOIN cms_users u ON u.id = c.user_id
            WHERE c.club_id = '
$club_id'";
    
$rs $inDB->query($sql);
    if (
$inDB->num_rows($rs)){
        
$data $inDB->fetch_assoc($rs);
        
$rating $data['rating'] * 5;
    } else {
        
$rating 0;
    }
    
    
$sql "UPDATE cms_clubs SET rating = $rating WHERE id = $club_id";
    
$inDB->query($sql);
}

function 
cmsUserClubs($user_id){
    
$inDB cmsDatabase::getInstance();
    
$userclubs['member'] = array();
    
$userclubs['moder'] = array();
    
$userclubs['admin'] = array();

    
//check member/moder
    
$sql "SELECT u.*, c.title as title, c.id as id
            FROM cms_user_clubs u, cms_clubs c
            WHERE u.user_id = 
$user_id AND u.club_id = c.id AND c.published = 1
            ORDER BY c.title DESC"
;
    
$rs $inDB->query($sql);
    if (
$inDB->num_rows($rs)){
        while (
$record $inDB->fetch_assoc($rs)){
            if (
$record['role'] == 'moderator'){
                
$userclubs['moder'][] = $record;
            }
            if (
$record['role'] == 'member'){
                
$userclubs['member'][] = $record;
            }            
        }
    }
    
    
//check admin
    
$sql "SELECT title, id, admin_id
            FROM cms_clubs
            WHERE admin_id = 
$user_id AND published = 1
            ORDER BY title DESC"
;
    
$rs $inDB->query($sql);
    if (
$inDB->num_rows($rs)){
        while (
$record $inDB->fetch_assoc($rs)){
            
$userclubs['admin'][] = $record;
        }
    }
    
    if (
$userclubs['admin'] || $userclubs['member'] || $userclubs['moder']){
        return 
$userclubs;    
    } else {
        return 
false;
    }
}

function 
clubBlogId($club_id){
    
$inDB cmsDatabase::getInstance();
    
$id   $inDB->get_field('cms_blogs'"owner='club' AND user_id=$club_id"'id');    
    if (!
$id){
            
$sql "INSERT INTO cms_blogs (user_id, title, pubdate, allow_who, view_type, showcats, ownertype, premod, forall, owner)
                    VALUES ('
$club_id', 'Блог', NOW(), 'all', 'list', 1, 'multi', 0, 0, 'club')";    
            
$inDB->query($sql);
            
$id $inDB->get_field('cms_blogs'"owner='club' AND user_id=$club_id"'id');    
    }
    return 
$id;
}

function 
clubBlogContent($blog_id$is_admin=false$is_moder=false$is_member=false){

    if (!
$blog_id) { exit; }

    
$inCore cmsCore::getInstance();
    
$inDB   cmsDatabase::getInstance();

    
$inCore->loadModel('blogs');

    
$model = new cms_model_blogs();

    
$html '';
    
$sql "SELECT p.*, b.seolink as bloglink, p.pubdate as fpubdate
            FROM cms_blog_posts p
            LEFT JOIN cms_blogs b ON b.id = p.blog_id
            WHERE p.blog_id = 
$blog_id AND p.published = 1
            ORDER BY pubdate DESC
            LIMIT 10"
;

    
$rs $inDB->query($sql);

    if (
$inDB->num_rows($rs) || $blog_id){

        
$on_moderate $inDB->rows_count('cms_blog_posts''blog_id='.$blog_id.' AND published = 0');
        
$html '<ul>';
        while (
$post $inDB->fetch_assoc($rs)){
            
$bloglink $post['bloglink'];
            
$html .= '<li><a href="'.$model->getPostURL(null$post['bloglink'], $post['seolink']).'">'.$post['title'].'</a> &mdash; '.$inCore->dateFormat($post['fpubdate']).'</li>';
        }
        if (
$is_member || $is_moder || $is_admin){
            
$html .= '<li class="service"><a href="/blogs/'.$blog_id.'/newpost.html">Добавить новый пост</li>';
        }
        if ((
$is_admin || $is_moder) && $on_moderate){
            
$html .= '<li><a class="on_moder" href="/blogs/'.$blog_id.'/moderate.html">Записи на модерацию</a> ('.$on_moderate.')</li>';
        }
        
$html .= '<li class="all"><a href="'.$model->getBlogURL(null$bloglink).'">Все записи</a> ('.$inDB->rows_count('cms_blog_posts'"blog_id=$blog_id AND published=1").')</li>';
        
$html .= '</ul>';

    } else {

        if (
$is_member || $is_moder || $is_admin){
            
$html .= '<ul>';
                
$html .= '<li class="service"><a href="/blogs/'.$blog_id.'/newpost.html">Добавить новый пост</a></li>';
            
$html .= '</ul>';    
        } else {
            
$html '<p>В клубном блоге нет записей.</p>';    
        }

    }

    return 
$html;

}

function 
clubPhotoAlbums($club_id$is_admin=false$is_moder=false$is_member=false){
    
$inCore cmsCore::getInstance();
    
$inDB cmsDatabase::getInstance();
    if (!
$club_id) { exit; }    

    
$sql "SELECT a.id, a.title, a.pubdate, f.file, IFNULL(COUNT(f.id), 0) as content_count
            FROM cms_photo_albums a
            LEFT JOIN cms_photo_files f ON f.album_id = a.id AND f.published = 1
            WHERE a.NSDiffer='club
$club_id' AND a.user_id = '$club_id' AND a.parent_id > 0
            GROUP BY a.id
            ORDER BY a.id DESC LIMIT 6"
;
                    
    
$rs $inDB->query($sql);

    
$albums = array();

        if (
$inDB->num_rows($rs)){
                while (
$album $inDB->fetch_assoc($rs)){
                
$on_moderate  '';
                
$delete       '';
                
$add_to_album '';
                    if (
$is_admin || $is_moder){
                        
$unpub $inDB->rows_count('cms_photo_files''album_id='.$album['id'].' AND published = 0');
                    if (
$unpub) { 
                        
$album['on_moderate'] = $unpub;
                    }
                }
                
$album['file']    = $album['file'] ? $album['file'] : 'no_image.png';
                
$album['pubdate'] = $inCore->dateFormat($album['pubdate']);
                
$albums[] = $album;
        }
    }

    
ob_start();

    
$smarty $inCore->initSmarty('components''com_clubs_albums.tpl');
    
$smarty->assign('albums'$albums);
    
$smarty->assign('club_id'$club_id);
    
$smarty->assign('is_admin'$is_admin);
    
$smarty->assign('is_moder'$is_moder);
    
$smarty->assign('is_member'$is_member);
    
$smarty->display('com_clubs_albums.tpl');

    return 
ob_get_clean();
}

function 
clubUserIsRole($club_id$user_id$role='member'){
    
$inDB cmsDatabase::getInstance();
    if (!
$club_id) { return; }
    return 
$inDB->rows_count('cms_user_clubs'"club_id = '$club_id' AND user_id = '$user_id' AND role='$role'")? truefalse;
}

function 
clubUserIsMember($club_id$user_id){
    
$inDB cmsDatabase::getInstance();
    if (!
$club_id) { return; }
    return 
$inDB->rows_count('cms_user_clubs'"club_id = '$club_id' AND user_id = '$user_id'")? truefalse;
}

function 
clubUserIsAdmin($club_id$user_id){
    
$inDB cmsDatabase::getInstance();
    if (!
$club_id) { return; }
    return 
$inDB->rows_count('cms_clubs'"id = '$club_id' AND admin_id = '$user_id'")? truefalse;
}

function 
clubModerators($club_id){
    
$inDB cmsDatabase::getInstance();
    if (!
$club_id) { exit; }
    
$moders = array();
    
$sql "SELECT c.user_id
            FROM cms_user_clubs c
            WHERE c.club_id = '
$club_id' AND c.role = 'moderator'";
    
$rs $inDB->query($sql);
    if (
$inDB->num_rows($rs)){
        while (
$u $inDB->fetch_assoc($rs)){
            if (!
in_array($u['user_id'], $moders)){
                
$moders[] = $u['user_id'];
            }
        }
    }
    return 
$moders;
}

function 
clubMembers($club_id){
    
$inDB cmsDatabase::getInstance();
    if (!
$club_id) { exit; }
    
$members = array();
    
$sql "SELECT c.user_id 
            FROM cms_user_clubs c
            WHERE c.club_id = '
$club_id' AND c.role = 'member'";
    
$rs $inDB->query($sql);
    if (
$inDB->num_rows($rs)){
        while (
$u $inDB->fetch_assoc($rs)){
            if (!
in_array($u['user_id'], $members)){
                
$members[] = $u['user_id'];
            }
        }
    }
    return 
$members;
}

function 
clubTotalMembers($club_id){
    
$inDB cmsDatabase::getInstance();
    if (!
$club_id) { exit; }
    
$members = array();
    
$sql "SELECT 1
            FROM cms_user_clubs c
            WHERE c.club_id = '
$club_id'";
    
$rs $inDB->query($sql);
    if (
$inDB->num_rows($rs)){
        return 
$inDB->num_rows($rs) +1//+1 потому что считаем еще и админа, не только юзеров
    
} else {
        return 
1;
    }
}

function 
clubAddUser($club_id$user_id$role='member'){
    
$inDB cmsDatabase::getInstance();
    
$inDB->query("INSERT INTO cms_user_clubs (user_id, club_id, role) VALUES ($user_id$club_id, '$role')");
    return;
}

function 
clubRemoveUser($club_id$user_id){
    
$inDB cmsDatabase::getInstance();
    
$inDB->query("DELETE FROM cms_user_clubs WHERE user_id=$user_id AND club_id=$club_id");
    return;
}

function 
clubSaveUsers($club_id$list$role$clubtype='public'$cfg=false){
    
$inCore cmsCore::getInstance();
    
$inDB   cmsDatabase::getInstance();
    
$inUser cmsUser::getInstance();
    if (
$list){
        
//get current club users list
        
$current_list $inDB->get_table('cms_user_clubs'"club_id={$club_id} AND role='{$role}'"'user_id');

        
//delete users which missed in new list
        
foreach ($current_list as $key=>$user){
            if (!
in_array($user['user_id'], $list)){
                
$inDB->query("DELETE FROM cms_user_clubs WHERE club_id={$club_id} AND user_id={$user['user_id']} AND role='{$role}' LIMIT 1");
                
//send notice
                
if($cfg['notify_out'] && ($user_id != $inUser->id)){
                    
$club_title $inDB->get_field('cms_clubs''id='.$club_id'title');
                    
cmsUser::sendMessage(USER_UPDATER$user_id'Пользователь <a href="'.cmsUser::getProfileURL($inUser->login).'">'.$inUser->nickname.'</a> исключил Вас из числа участников клуба <a href="http://'.$_SERVER['HTTP_HOST'].'/clubs/'.$club_id.'">'.$club_title.'</a>.');
                }
            }
        }

        
//add new users and update old
        
foreach ($list as $key=>$user_id){
            
$user_id = (int)$user_id;
            
$already $inDB->get_field('cms_user_clubs'"user_id={$user_id} AND club_id={$club_id}"'role');
            if (!
$already){
                
//user first time in this club
                
$sql "INSERT INTO cms_user_clubs (user_id, club_id, role)
                        VALUES (
$user_id$club_id, '$role')";
                
$inDB->query($sql);

                
//send notice
                
if($cfg['notify_in'] && ($user_id != $inUser->id)){
                    
$club_title $inDB->get_field('cms_clubs''id='.$club_id'title');
                    
cmsUser::sendMessage(USER_UPDATER$user_id'<b>Получено приглашение в клуб.</b> Пользователь <a href="'.cmsUser::getProfileURL($inUser->login).'">'.$inUser->nickname.'</a> добавил Вас в число участников клуба <a href="http://'.$_SERVER['HTTP_HOST'].'/clubs/'.$club_id.'">'.$club_title.'</a>.');
                }
            } else {
                
//user already in club, update his role if necessary
                
if ($already != $role){
                    
$sql "UPDATE cms_user_clubs
                               SET role='
{$role}'
                             WHERE user_id=
{$user_id} AND club_id={$club_id}";
                    
$inDB->query($sql);
                }
            }
        }                            
    } else {
        
//if new users list is empty, drop everyone from this club
        
$inDB->query("DELETE FROM cms_user_clubs WHERE club_id={$club_id} AND role='{$role}'  LIMIT 1");
    }
}

function 
clubAdminLink($club_id){
    
$inCore cmsCore::getInstance();
    
$inDB cmsDatabase::getInstance();
    
$sql "SELECT u.id as id, u.nickname as nickname, u.login as login, p.gender as gender
            FROM cms_clubs c
            LEFT JOIN cms_users u ON u.id = c.admin_id
            LEFT JOIN cms_user_profiles p ON p.user_id = u.id
            WHERE c.id = '
$club_id'";
    
$rs     $inDB->query($sql);
    
$html '';
    if (
$inDB->num_rows($rs) == 1){
        
$usr $inDB->fetch_assoc($rs);
        
$html .= cmsUser::getGenderLink($usr['id'], $usr['nickname'], null$usr['gender'], $usr['login']);
    }
    return 
$html;
}

function 
clubMembersList($club_id){
    
$inCore     cmsCore::getInstance();
    
$inDB       cmsDatabase::getInstance();
    
    
$sql "SELECT u.id as id, u.nickname as nickname, u.login as login, p.gender as gender
            FROM cms_user_clubs c
            LEFT JOIN cms_users u ON u.id = c.user_id
            LEFT JOIN cms_user_profiles p ON p.user_id = u.id
            WHERE c.club_id = '
$club_id'";

    
$rs     $inDB->query($sql);
    
$total  $inDB->num_rows($rs);

    
$now=0$html '';

    while(
$usr $inDB->fetch_assoc($rs)){                
        
$html .= cmsUser::getGenderLink($usr['id'], $usr['nickname'], null$usr['gender'], $usr['login']);
        if (
$now $total-1) { $html .= ', '; }
        
$now ++;
    }
    
    return 
$html;
}

?>
Онлайн: 1
Реклама