Файл: InstantSocial/uploud/modules/mod_comments/module.php
Строк: 111
<?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                              //
//                                                                            //
/******************************************************************************/
function mod_comments($module_id){
    
        $inCore = cmsCore::getInstance();
        $inDB   = cmsDatabase::getInstance();
        $inUser = cmsUser::getInstance();
        global $_LANG;
        
        $cfg = $inCore->loadModuleConfig($module_id);
        if (!isset($cfg['showrss'])) { $cfg['showrss'] = 1;}
        if (!isset($cfg['minrate'])) { $cfg['minrate'] = 0;}
        if (!isset($cfg['showguest'])) { $cfg['showguest'] = 0;}
        $targeting = sizeof($cfg['targets']);
        if (!$targeting){ echo '<p>'.$_LANG['COMMENTS_NOT_SHOWTYPE'].'</p>'; return true; }
        $t_list = array();
        foreach($cfg['targets'] as $type){
            $t_list[] = "'$type'";
        }
        $t_list = rtrim(implode(',', $t_list), ',');
        $target_where = "AND c.target IN ({$t_list})";
        $guest_sql = $cfg['showguest'] ? "OR c.guestname<>''" : "";
        $hidden_sql = $inUser->is_admin ? '' : 'AND c.is_hidden=0';
        $sql = "SELECT c.id as id,
                       c.target as target,
                       c.target_id as target_id,
                       c.target_link as target_link, 
                       c.target_title,
                       c.content as content,
                       c.guestname,
                       c.pubdate as fpubdate,
                       IFNULL(c.user_id, 0) as user_id,
                       IFNULL(u.nickname, '') as author,
                       IFNULL(u.login, '') as author_login,
                       IFNULL(v.total_rating, 0) as rating
                FROM cms_comments c
                INNER JOIN cms_users u ON u.id = c.user_id {$guest_sql}
                LEFT JOIN cms_ratings_total v ON v.item_id=c.id AND v.target='comment'
                WHERE c.published=1 {$hidden_sql} {$target_where}
                GROUP BY c.id
                ORDER BY c.id DESC
                LIMIT 70";
        $result = $inDB->query($sql);
        $is_com = false;
        if ($inDB->num_rows($result)){
            $is_com = true;
            $count = 0;
            $comments = array();
            while($con = $inDB->fetch_assoc($result)){
                if ($count >= $cfg['shownum']) { break; }
                if ($con['rating'] >= $cfg['minrate']){
                    $con['link'] = $con['target_link'] . '#c'.$con['id'];
                    $con['text'] = strip_tags($con['content']);
                    
                    $con['text'] =  preg_replace('/[hide](.*?)[/hide]/i', '', $con['text']);
                    $con['text'] =  preg_replace('/[hide](.*?)$/i', '', $con['text']);
                    if (strlen($con['text'])>60) { $con['text'] = substr($con['text'], 0, 60). '...'; }
                    if (!$con['text']) { $con['text'] = '...'; }
                    $con['user_url'] = $con['user_id'] ? cmsUser::getProfileURL($con['author_login']) : $con['link'];
                    $con['author']   = $con['user_id'] ? $con['author'] : $con['guestname'];
                    $con['fpubdate'] = $inCore->dateFormat($con['fpubdate']);
                    $comments[] = $con;
                    $count++;
                }
            }
            }
        
        $smarty = $inCore->initSmarty('modules', 'mod_comments.tpl');            
        $smarty->assign('comments', $comments);
        $smarty->assign('cfg', $cfg);
        $smarty->assign('is_com', $is_com);
        $smarty->display('mod_comments.tpl');    
                
        return true;
}
?>