xoxma.lv 0 Опубликовано: 5 февраля 2012 Рассказать Опубликовано: 5 февраля 2012 Топ комментаторов v2.1 F - by Glam http://x-coders.net/mods/168-top-kommentatorov-v2.1-f-by-glam.html Модуль совсем старый но работает... подскажите знатоки sql как сделать чтобы топ показывалась за месяц а так же как подключить кэширование? Вот сам код: <?php /* ===================================================== Файл: glamusers.php ----------------------------------------------------- Назначение: Топ комментаторов ===================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } $num = "10"; // сколько пользователей выводим в блоке? $glamusers = dle_cache("glamusers", $config['skin']); $sql = $db->query("SELECT user_id, name, foto, signature, comm_num FROM ".PREFIX."_users order by comm_num DESC LIMIT 0,$num"); while ($row = $db->get_row($sql)) { if ($config['allow_alt_url'] == "yes") { $userlink = "<a href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">"; } else { $userlink = "<a href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."/\">"; } if ($row['foto'] !== "") $ava = "{$userlink}<img src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" align=\"middle\" width=\"50\" alt='' /></a>"; else $ava = "{$userlink}<img src=\"{THEME}/images/noavatar.png\" align=\"middle\" width=\"50\" alt='' /></a>"; $nohtml = "'<[\/\!]*?[^<>]*?>'si"; $tpl->load_template('topusers.tpl'); $tpl->set('{ava}', $ava); $tpl->set('{nickname}', $userlink.$row['name'].'</a>'); $tpl->set('{signature}', preg_replace($nohtml,"",stripslashes($row['signature']))); $tpl->set('{comm_num}', '<a href="/index.php?do=lastcomments&userid='.$row['user_id'].'">'.$row['comm_num'].'</a>'); $tpl->compile('glamusers'); $tpl->clear(); } $db->free(); ?> Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 5 февраля 2012 Рассказать Опубликовано: 5 февраля 2012 Установка: Создать файл /engine/modules/my/top_comments.php и поместить туда <?php /* ===================================================== Топ комментаторов v2.1 by Glam Топ комментаторов v2.2 by Sarvan ----------------------------------------------------- Файл: top_comments.php ----------------------------------------------------- Назначение: Топ комментаторов ===================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } $num = "10"; // Cколько пользователей выводим $tpl->result['top_comments'] = dle_cache('top_comments', $config['skin'], true); if ($tpl->result['top_comments'] === false) { $this_month = date( 'Y-m-d H:i:s', $_TIME ); $sql = $db->query("SELECT DISTINCT users.user_id, users.name, users.foto, users.signature, users.comm_num, users.icq FROM ".PREFIX."_users users INNER JOIN ".PREFIX."_comments comments ON users.user_id = comments.user_id and comments.date >= '{$this_month}' - INTERVAL 1 MONTH and comments.date < '{$this_month}' ORDER BY users.comm_num DESC LIMIT 0,{$num}"); while ($row = $db->get_row($sql)) { if ($config['allow_alt_url'] == 'yes') $userlink = "<a href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">"; else $userlink = "<a href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."/\">"; if ($config['allow_alt_url'] == 'yes') $go_page = $config['http_home_url'].'user/'.urlencode( $row['name'] ).'/'; else $go_page = "$PHP_SELF?subaction=userinfo&user=".urlencode($row['name']); $go_page = "onclick=\"ShowProfile('" . urlencode( $row['name'] )."', '".htmlspecialchars( $go_page )."', '".$user_group[$member_id['user_group']]['admin_editusers']."'); return false;\""; if ($config['allow_alt_url'] == 'yes') $tpl->set( '{nickname}', "<a {$go_page} href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">".$row['name']."</a>"); else $tpl->set( '{nickname}', "<a {$go_page} href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."\">".$row['name']."</a>"); if ($row['foto'] !== '') $ava = "{$userlink}<img src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" align=\"center\" width=\"50\"></a>"; else $ava = "{$userlink}<img src=\"{THEME}/images/noavatar.png\" align=\"center\" width=\"50\"></a>"; $tpl->load_template('top_comments.tpl'); $tpl->set('{ava}', $ava); $tpl->set('{signature}', preg_replace('/<[\/\!]*?[^<>]*?>/si', '', stripslashes($row['signature']))); // HTML remove $tpl->set('{icq}', $row['icq']); $tpl->set('{comm_num}', '<a href="/index.php?do=lastcomments&userid='.$row['user_id'].'">'.$row['comm_num'].'</a>'); $tpl->compile('top_comments'); } $tpl->clear(); $db->free(); create_cache( "top_comments", $tpl->result['top_comments'], $config['skin'], true ); } echo $tpl->result['top_comments']; ?> Создать файл /templates/ваш_шаблон/top_comments.tpl и поместить туда <style type="text/css"> .topava {width: 70px;} .topava img {padding:4px;border:1px solid #E7E5E0;} </style> <table> <tr> <td class="topava">{ava}</td> <td>{nickname}<br>{signature}<br><b>ICQ:</b> {icq}<br>комментариев: {comm_num}</td> </tr> </table> В /templates/ваш_шаблон/main.tpl в нужно месте {include file="engine/modules/my/top_comments.php"} На этом установка завершена. Мне оказалось тоже это надо, поэтому держите новую версию. Что нового:[+] Кэширование.[+] Вывод топ комментаторов за месяц.[+] Мелкие исправления. 2 Цитата Ссылка на сообщение Поделиться на других сайтах
xoxma.lv 0 Опубликовано: 6 февраля 2012 Рассказать Опубликовано: 6 февраля 2012 Автор Установка: Создать файл /engine/modules/my/top_comments.php и поместить туда <?php /* ===================================================== Топ комментаторов v2.1 by Glam Топ комментаторов v2.2 by Sarvan ----------------------------------------------------- Файл: top_comments.php ----------------------------------------------------- Назначение: Топ комментаторов ===================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } $num = "10"; // Cколько пользователей выводим $tpl->result['top_comments'] = dle_cache('top_comments', $config['skin'], true); if ($tpl->result['top_comments'] === false) { $this_month = date( 'Y-m-d H:i:s', $_TIME ); $sql = $db->query("SELECT DISTINCT users.user_id, users.name, users.foto, users.signature, users.comm_num, users.icq FROM ".PREFIX."_users users INNER JOIN ".PREFIX."_comments comments ON users.user_id = comments.user_id and comments.date >= '{$this_month}' - INTERVAL 1 MONTH and comments.date < '{$this_month}' ORDER BY users.comm_num DESC LIMIT 0,{$num}"); while ($row = $db->get_row($sql)) { if ($config['allow_alt_url'] == 'yes') $userlink = "<a href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">"; else $userlink = "<a href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."/\">"; if ($config['allow_alt_url'] == 'yes') $go_page = $config['http_home_url'].'user/'.urlencode( $row['name'] ).'/'; else $go_page = "$PHP_SELF?subaction=userinfo&user=".urlencode($row['name']); $go_page = "onclick=\"ShowProfile('" . urlencode( $row['name'] )."', '".htmlspecialchars( $go_page )."', '".$user_group[$member_id['user_group']]['admin_editusers']."'); return false;\""; if ($config['allow_alt_url'] == 'yes') $tpl->set( '{nickname}', "<a {$go_page} href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">".$row['name']."</a>"); else $tpl->set( '{nickname}', "<a {$go_page} href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."\">".$row['name']."</a>"); if ($row['foto'] !== '') $ava = "{$userlink}<img src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" align=\"center\" width=\"50\"></a>"; else $ava = "{$userlink}<img src=\"{THEME}/images/noavatar.png\" align=\"center\" width=\"50\"></a>"; $tpl->load_template('top_comments.tpl'); $tpl->set('{ava}', $ava); $tpl->set('{signature}', preg_replace('/<[\/\!]*?[^<>]*?>/si', '', stripslashes($row['signature']))); // HTML remove $tpl->set('{icq}', $row['icq']); $tpl->set('{comm_num}', '<a href="/index.php?do=lastcomments&userid='.$row['user_id'].'">'.$row['comm_num'].'</a>'); $tpl->compile('top_comments'); } $tpl->clear(); $db->free(); create_cache( "top_comments", $tpl->result['top_comments'], $config['skin'], true ); } echo $tpl->result['top_comments']; ?> Создать файл /templates/ваш_шаблон/top_comments.tpl и поместить туда <style type="text/css"> .topava {width: 70px;} .topava img {padding:4px;border:1px solid #E7E5E0;} </style> <table> <tr> <td class="topava">{ava}</td> <td>{nickname}<br>{signature}<br><b>ICQ:</b> {icq}<br>комментариев: {comm_num}</td> </tr> </table> В /templates/ваш_шаблон/main.tpl в нужно месте {include file="engine/modules/my/top_comments.php"} На этом установка завершена. Мне оказалось тоже это надо, поэтому держите новую версию. Что нового:[+] Кэширование.[+] Вывод топ комментаторов за месяц.[+] Мелкие исправления. Woooow Огромное человеческое спасибо Цитата Ссылка на сообщение Поделиться на других сайтах
sunlion 0 Опубликовано: 5 февраля 2014 Рассказать Опубликовано: 5 февраля 2014 1. Как изменить сортировку комментаторов в зависимости от кол-ва данных ими комментариев за 1 мес., а не так, что сортировка осуществляется от общего кол-ва комментариев за весь период времени. 2. Как сделать, чтобы указывалось не общее кол-во комментариев, а то кол-во комментариев которое было дано пользователем за 1 мес. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.