Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Как заменить рейтинг на сайте?

Как заменить рейтинг на сайте?


     02.11.2014    Все вопросы » Хаки    2969

вопрос
Проблема такая. Есть рейтинг от Пафнутия (easyLike). Он никак не связан с дефолтным рейтингом DLE (переменные разные), а нужно как-то сделать сортировку новостей по рейтингу (в данном случае по рейтингу easyLke). Есть ли как-то простой способ это реализовать?

Ответа пока нет


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

FastFud
Юзер

FastFud - 5 ноября 2014 02:24 -

$likes = $db->query("SELECT likes, count(likes) as count FROM " . PREFIX . "_easylike_count GROUP BY likes ORDER BY count DESC  LIMIT 10");
$results = "";
while($row = $db->get_row($likes)) {
   $results .= "{$row['likes']}";
}
$tpl->set( '{likes}', $results);
Вроде бы так если я ничего не путаю ...

Junshi
Юзер

Junshi - 5 ноября 2014 20:39 -

Это в functions.php? Если да, то в какое именно место?

FastFud
Юзер

FastFud - 5 ноября 2014 21:19 -

1. Создайте файл likes.php.
2. В нем пишите:
<?php
if (!defined('DATALIFEENGINE')) die("lol");
$is_change = false;
if ($config['allow_cache'] != "yes") { $config['allow_cache'] = "yes"; $is_change = true;}

$easyLikeModule  = dle_cache('likes', $config['skin']);
if (!$easyLikeModule) {
    $likes = $db->query("SELECT likes, news_id, count(likes) as count FROM " . PREFIX . "_easylike_count GROUP BY likes ORDER BY likes DESC");
    while($row = $db->get_row($likes)){
        $easyLikeModule .=<<<HTML
        <div class="likes">Лайки({$row['likes']}) У новости с ID ({$row['news_id']})</div>
HTML;
    }
    create_cache('likes', $easyLikeModule, $config['skin']);
}
echo $easyLikeModule;
?>

3. Файл поставьте в папку modules (engine/modules).
4. В любом месте в вашем шаблоне использовать
{include file="engine/modules/likes.php"}

FastFud
Юзер

FastFud - 6 ноября 2014 12:23 -

<?php
if (!defined('DATALIFEENGINE')) die("lol");
$is_change = false;
if ($config['allow_cache'] != "yes") { $config['allow_cache'] = "yes"; $is_change = true;}

$easyLikeModule  = dle_cache('likes', $config['skin']);
if (!$easyLikeModule) {
    $likes = $db->query("SELECT likes, news_id FROM " . PREFIX . "_easylike_count ORDER BY likes DESC");
    while($row = $db->get_row($likes)){
        $easyLikeModule .=<<<HTML
        <div class="likes">Лайки({$row['likes']}) У новости с ID ({$row['news_id']})</div>
HTML;
    }
    create_cache('likes', $easyLikeModule, $config['skin']);
}
echo $easyLikeModule;
?>
Если вам нужно вывести и названия(новостей) то сначала нужно будет записывать в таблицу имя новостей при голосовании а потом можно будет вывести.

Junshi
Юзер

Junshi - 6 ноября 2014 13:18 -

Спасибо, что уделяете время. Но мне бы хотелось, чтобы это была сортировка через стандартный {sort} средствами DLE. Поскольку нужно, чтобы сортировались новости в карусели, которая выводится кастомом. Возможно ли это?
Таким способом, который вы представили слишком трудоемко получается, к сожалению.

PS. Уже перепробовал все альтернативные easyLike рейтинги на подобии лайков. Они все заразы не ложатся на 10.3 версию...

FastFud
Юзер

FastFud - 6 ноября 2014 13:53 -

Наверное придется создать еще один столбец в таблице dle_post и соответственно когда кто-то будет голосовать (+1) записывать в тот столбец. Тогда можно будет делать сортировку думаю.

P.S. Но вы подождите может кто-нибудь другой предложит альтернативу.

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

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

 06.04.2014 Decathlete  Хаки
наверх