Перейти к публикации

Вывод рейтинга новости


Рекомендованные сообщения

Как можно реализовать следующие:

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

А сам рейтинг уже выставлять на странице полной новости. (это уже реализовано)

Да еще как поставить к положительным результатам знак +, знак - сам ставится, когда отрицательный.

ниже мой код в файле functions.php


function ShowRating($id, $rating, $vote_num, $allow = true) {

 global $is_logged, $member_id, $config, $lang, $db;


 if ($rating) $rating = round($rating, 0); else $rating = 0;


 if (!$allow) {

  $rated = <<<HTML

<div id="ratig-layer">{$rating}</div>

HTML;


 return $rated;

}


$rated .= <<<HTML

<span id="ratig-layer-{$id}">

 <div id="ratig-layer">

  {$rating}

  <a href="#" class="r2-unit" onclick="doRate('1', '{$id}'); return false;" title="нравится">

   <img src="{THEME}/dleimages/up.png" border="0" width="16" height="16" align="absmiddle" />

  </a>


  <a href="#" class="r1-unit" onclick="doRate('-1', '{$id}'); return false;" title="не нравится">

   <img src="{THEME}/dleimages/down.png" border="0" width="16" height="16" align="absmiddle" />

  </a>

 </div>

</span>

HTML;


 return $rated;

}



function ShortRating($id, $rating, $vote_num, $allow = true) {

 global $config, $lang;


 if ($rating) $rating = round($rating, 0); else $rating = 0;


 if (!$allow) {

  $rated = <<<HTML

<div id="ratig-layer">{$rating}</div>

HTML;


 return $rated;

}


$rated = "<span id=\"ratig-layer-" . $id . "\">";

$rated .= <<<HTML

 <div id="ratig-layer">

  {$rating}

  <a href="#" class="r2-unit" onclick="dleRate('1', '{$id}'); return false;" title="нравится">

   <img src="{THEME}/dleimages/up.png" border="0" width="16" height="16" align="absmiddle" />

  </a>


  <a href="#" class="r1-unit" onclick="dleRate('-1', '{$id}'); return false;" title="не нравится">

   <img src="{THEME}/dleimages/down.png" border="0" width="16" height="16" align="absmiddle" />

  </a>

 </div>

HTML;


 $rated  .= "</span>";


 return $rated;

}


function userrating($name) {

 global $db;


 $row = $db->super_query("SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_post where autor ='$name'");


 if ($row['num']) $rating = round(($row['rating'] /  $row['num']), 0); else $rating = 0;

 $rating = $rating * 17;


 $rated = <<<HTML

{$rating}

HTML;


 return $rated;

}


За ранее благодарен.

Изменено пользователем lirikk
Ссылка на сообщение
Поделиться на других сайтах

Ну mobile-soft.su стоит такой рейтинг в короткой новости... Просто стрелочки вырезать и все) Но я уже не помню как ставил этот хак) Смотрите на 4dle.ru

Ссылка на сообщение
Поделиться на других сайтах

Я сейчас точно не помню как именно, но суть того хака в том, что рейтинг прописывается двумя кусками кода и в show.full.php и в show.short.php, вот как раз в файле show.short.php как я палагаю надо прописать просто без использования стрелочек и тогда будут выводится только сами значения, без возможности их менять, а в полной будет нормально с изменениями!

P.S. это я говорю не для вашего когда, что Вы написали, а для кода того хака, вот сам хак: http://4dle.ru/hacks/1147155774-rejjting-novostejj.html

Ссылка на сообщение
Поделиться на других сайтах

Разобрался выкладываю исправленный код файла (functions.php), так же уже учтены цвета зеленый и красный при рейтинге. Может кому понадобится. работает на 9.2

function ShowRating($id, $rating, $vote_num, $allow = true) {

 global $is_logged, $member_id, $config, $lang, $db;


 if ($rating) $rating = round($rating, 0); else $rating = 0;

 switch($rating) {

case ($rating > 0):

$rating = '<span style="color: #009900;">+'.$rating.'</span>';

break;

case ($rating < 0):

$rating = '<span style="color: #FF0000;">'.$rating.'</span>';

break;

case($rating == 0):

$rating = '<span style="color: #000000;">'.$rating.'</span>';

break;

}

 if (!$allow) {

  $rated = <<<HTML

<div id="ratig-layer">{$rating}</div>

HTML;


 return $rated;

}


$rated .= <<<HTML

<span id="ratig-layer-{$id}">

 <div id="ratig-layer">

  {$rating}

  <a href="#" class="r2-unit" onclick="doRate('1', '{$id}'); return false;" title="нравится">

   <img src="{THEME}/dleimages/up.png" border="0" width="16" height="16" align="absmiddle" />

  </a>


  <a href="#" class="r1-unit" onclick="doRate('-1', '{$id}'); return false;" title="не нравится">

   <img src="{THEME}/dleimages/down.png" border="0" width="16" height="16" align="absmiddle" />

  </a>

 </div>

</span>

HTML;


 return $rated;

}



function ShortRating($id, $rating, $vote_num, $allow = true) {

 global $config, $lang;


 if ($rating) $rating = round($rating, 0); else $rating = 0;

 switch($rating) {

case ($rating > 0):

$rating = '<span style="color: #009900;">+'.$rating.'</span>';

break;

case ($rating < 0):

$rating = '<span style="color: #FF0000;">'.$rating.'</span>';

break;

case($rating == 0):

$rating = '<span style="color: #000000;">'.$rating.'</span>';

break;

}

 if (!$allow) {

  $rated = <<<HTML

<div id="ratig-layer">{$rating}</div>

HTML;


 return $rated;

}


$rated = "<span id=\"ratig-layer-" . $id . "\">";

$rated .= <<<HTML

 <div id="ratig-layer">

  {$rating}


 </div>

HTML;


 $rated  .= "</span>";


 return $rated;

}

Изменено пользователем lirikk
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...