Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Модули » Топ комментаторов v2.1 by Glam, помогите настроить под версию 10,5?

Топ комментаторов v2.1 by Glam, помогите настроить под версию 10,5?


     12.10.2015    Все вопросы » Модули    1939

вопрос
Здравствуйте, подскажите пожалуйста, как настроить модуль Топ комментаторов (он же топ юзерс) v2.1 by Glam на DLE 10.5.

Пациент - http://n-s-t.ru/topusers.html

Решение которое предложили в соседней теме, на 10.5 не работает. Выдаёт ошибку БД.

MySQL Error!
MySQL error in file: /engine/modules/glamusers.php at line 15
Error Number: 1064
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
SQL query:

SELECT user_id, name, foto, signature, comm_num, icq FROM dle_users ORDER BY comm_num DESC LIMIT



Изначальный код ошибки не выдаёт, при этом страница пустая.
<?php
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

$num = "12"; // сколько пользователей выводим в блоке?

$glamusers = dle_cache("glamusers", $config['skin']);
$sql = $db->query("SELECT user_id, name, foto, signature, comm_num, icq 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=\"/user/".urlencode($row['name'])."/\">";
}
if ($row['foto'] !== "")
$ava = "{$userlink}<img src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" align=\"center\" width=\"50\" height=\"50\" /></a>";
else
$ava = "{$userlink}<img src=\"{THEME}/dleimages/noavatar.png\" align=\"center\" width=\"50\" /></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('{icq}', $row['icq']);
$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();
?>


Готов отблагодарить за помощь.

Ответил: Pringles


А лучше так:
<?php
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");

$num = "12"; // сколько пользователей выводим в блоке?

$glamusers = dle_cache("glamusers", $config['skin']);

if ($glamusers === false)) {
    $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()) {
        $userlink = ($config['allow_alt_url']) ? $config['http_home_url']."user/".urlencode($row['name'])."/" : "/user/".urlencode($row['name'])."/";
        $ava = ($row['foto'] !== "") ? $config['http_home_url']."uploads/fotos/".$row['foto'] : "{THEME}/dleimages/noavatar.png";
        $tpl->load_template('topusers.tpl');
        $tpl->set('{ava}', "<img src=\"".$ava."\" alt=\"\">");
        $tpl->set('{nickname}', '<a href="'.$userlink.'">'.$row['name'].'</a>');
        $tpl->set('{signature}', preg_replace("'<[\/\!]*?[^<>]*?>'si","",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();
    create_cache( "glamusers", $tpl->result['glamusers'], $config['skin'], true );
}
?>

8 комментариев

Pringles
Юзер

Pringles - 13 октября 2015 03:33 -

***Комментарий удален***

agopri
Юзер

agopri - 13 октября 2015 11:30 -

Временно выводится топ-комментаторов с помощью вот этого модуля.

Код который предложил Pringles, выдаёт ошибку.
Parse error: syntax error, unexpected ')' in /home/users2/a/agopri/domains/n-s-t.ru/engine/modules/glamusers.php on line 8


Немного допилил временный вариант. Практически идентично получилось со старым модулем. Тему можно закрывать вопрос решен с помощью модуля Top Commentator 2.0 [DLE 10.2 - 10.5].

Pringles
Юзер

Pringles - 13 октября 2015 22:21 -

в строке 8 одна скобка лишняя, упустил
if ($glamusers === false)) {

замените на
if ($glamusers === false) {

agopri
Юзер

agopri - 14 октября 2015 09:55 -

Скобку убрал, ошибка пропала. Но модуль так и не заработал.

LazyDev
PHP-developer

LazyDev - 14 октября 2015 11:14 -

<?php
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");

$num = "12"; // сколько пользователей выводим в блоке?

$glamusers = dle_cache("glamusers", $config['skin']);

if ($glamusers === false) {
    $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()) {
        $userlink = ($config['allow_alt_url']) ? $config['http_home_url']."user/".urlencode($row['name'])."/" : "/user/".urlencode($row['name'])."/";
        $ava = ($row['foto'] !== "") ? $config['http_home_url']."uploads/fotos/".$row['foto'] : "{THEME}/dleimages/noavatar.png";
        $tpl->load_template('topusers.tpl');
        $tpl->set('{ava}', "<img src=\"".$ava."\" alt=\"\">");
        $tpl->set('{nickname}', '<a href="'.$userlink.'">'.$row['name'].'</a>');
        $tpl->set('{signature}', preg_replace("'<[\/\!]*?[^<>]*?>'si","",stripslashes($row['signature'])));
        $tpl->set('{comm_num}', '<a href="/index.php?do=lastcomments&userid='.$row['user_id'].'">'.$row['comm_num'].'</a>');
        $tpl->compile('glamusers');
    }
    $db->free();
    $tpl->clear();
    $glamusers = $tpl->result['glamusers'];
    create_cache( "glamusers", $tpl->result['glamusers'], $config['skin'], true );
}
echo $glamusers;
?>


Потому что нужно так.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

agopri
Юзер

agopri - 10 ноября 2015 14:49 -

На 10,5 модуль заработал, спасибо большое.

Pringles
Юзер

Pringles - 10 ноября 2015 14:36 -

Topusers 1.0 Вот аналог данного модуля набросал побыстрому, будет все как надо, и установка не требует изменения файлов движка

agopri
Юзер

agopri - 10 ноября 2015 14:57 -

Спасибо что доработали модуль, обязательно попробую вывод топ журналистов организовать. Решение которое предложил Gameer - 14 октября 2015 11:14, также работает. Забыл сразу отписать.

Ещё раз благодарю за помощь. Вопрос решен.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 09.07.2013 giorgi  Модули
наверх