• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Если рейтинг +10 то новость на главную выводится

Статус
В этой теме нельзя размещать новые ответы.

E-body

Мой дом здесь!
Регистрация
6 Сен 2007
Сообщения
992
Реакции
342
Версия 9.*
Пользователи добавляют новости и без отметки вывода на главной. Как новость набирает рейтинг +10 то автоматически отмечается пунктик "выводить на главной". Подскажите как такое реализовать?
 
Нужно подправить файл в папке /engine/ajax/ (вроде там оно лежит), отвечающий за увеличение рейтинга... Надо добавить условие, что если рейтинг = 9 и нажат "+", то увеличить рейтинг на +1 и поменять значение allow_main на 1. Можно добавить и обратное: если 10 и нажат "-" - заменить allow_main на 0, а рейтинг понизить на единицу.
 
Стандартный рейтинг переделан на + - в итоге минусовки уберу чтоб троллям потеху не оставлять. Условие та примерно так и думал что последний в лимите плюсиков апрувит новость на главную allow_main = 1
С моим то знанием пхп лучше не лезть в код.
Для 9.2 изменение рейтинга
PHP:
===========================================
Открыть файл: /engine/ajax/rating.php
////////////////////////////////////////////////////////////////////////
---Найти:

if ($go_rate > 5 OR $go_rate <  1) $go_rate = 0;


---Заменить на:

if ($go_rate > 1 OR $go_rate < -1) $go_rate = 0;
________________________________________________________________________

Открыть файл /engine/modules/functions.php
////////////////////////////////////////////////////////////////////////

---Найти примерно следующее:

function ShowRating ($id, $rating, $vote_num, $allow = true){
 if ($rating) $rating = round(($rating /  $vote_num), 0); else $rating = 0;
 $rating = $rating * 17;

 ...пропущен код...

 return $rated;
}


$rated .= <<<HTML

 ...пропущен код...

 return $rated;
}

---Заменить на:

function ShowRating($id, $rating, $vote_num, $allow = true) {
 global $is_logged, $member_id, $config, $lang, $db;
if ($rating=='null'){$rating="Уже Голосовали!";}else{
 if ($rating) $rating = round($rating, 0); else $rating = 0;
if ($rating > 0) $rating = "<font color=green><b>+".$rating."</font></b>"; elseif ($rating == 0) $rating="<b>".$rating."</font></b>"; else $rating = "<font color=red><b>".$rating."</font></b>";
}
 if (!$allow) {
  $rated = <<<HTML
<div id="ratig-layer">{$rating}</div>
HTML;

 return $rated;
}

$rated .= <<<HTML
<span id="ratig-layer-{$id}">
 <div id="ratig-layer">
 
   <img src="{THEME}/dleimages/up.gif" title="Нравится(+)" alt="Нравится(+)" class="r2-unit" onclick="doRate('1', '{$id}'); return false;" width="16" height="16" align="middle" />
  </a>
  {$rating}
   <img src="{THEME}/dleimages/down.gif" title="Не нравится(-)" alt="Не нравится(-)" class="r2-unit" onclick="doRate('-1', '{$id}'); return false;" width="16" height="16" align="middle" />
 </div>
</span>
HTML;

 return $rated;
}


---Найти примерно следующее:

function ShortRating ($id, $rating, $vote_num, $allow = true){
 global $config, $lang;

 ...пропущен код...

$rated .= <<<HTML

 ...пропущен код...

 $rated  .= "</span>";

 return $rated;
}


---Заменить на:

function ShortRating($id, $rating, $vote_num, $allow = true) {
 global $config, $lang;

 if ($rating) $rating = round($rating, 0); else $rating = 0;
if ($rating > 0) $rating = "<font color=green><b>+".$rating."</font></b>"; elseif ($rating == 0) $rating="<b>".$rating."</font></b>"; else $rating = "<font color=red><b>".$rating."</font></b>";

 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">
   <img src="{THEME}/dleimages/up.gif" title="Нравится(+)" alt="Нравится(+)" class="r2-unit" onclick="doRate('1', '{$id}'); return false;" width="16" height="16" align="middle" />{$rating}
   <img src="{THEME}/dleimages/down.gif" title="Не нравится(-)" alt="Не нравится(-)" class="r2-unit" onclick="doRate('-1', '{$id}'); return false;" width="16" height="16" align="middle" />
 </div>
HTML;
        
 $rated  .= "</span>";

 return $rated;
}
---Найти функцию userrating($name) (должна быть сразу после вышеописанных кодов):

---Заменить ее на:
s
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;

 $rated = <<<HTML
{$rating}
HTML;

 return $rated;
}
________________________________________________________________________

Открыть файл /templates/ваш_шаблон/css/engine.css
////////////////////////////////////////////////////////////////////////

---Найти:

.rating {
	color: #757575;
	font-size: 11px;		/* ! */
	font-family: tahoma;	/* ! */
	width: 85px;
	height: 16px;
}
.unit-rating {
	list-style: none;
	margin: 0px;
	padding: 0px;
	width: 85px;
	height: 16px;
	position: relative;
	background-image: url(../dleimages/rating.gif);
	background-position: top left;
	background-repeat: repeat-x;
}
.unit-rating li {
	text-indent: -90000px;
	padding: 0px;
	margin: 0px;
	float: left;
}
.unit-rating li a {
	display: block;
	width: 17px;
	height: 16px;
	text-decoration: none;
	text-indent: -9000px;
	z-index: 17;
	position: absolute;
	padding: 0px;
}
.unit-rating li a:hover {
	background-image: url(../dleimages/rating.gif);
	background-position: left center;
	z-index: 2;
	left: 0px;
}
.unit-rating a.r1-unit { left: 0px; }
.unit-rating a.r1-unit:hover { width: 17px; }
.unit-rating a.r2-unit { left: 17px; }
.unit-rating a.r2-unit:hover { width: 34px; }
.unit-rating a.r3-unit { left: 34px; }
.unit-rating a.r3-unit:hover { width: 51px; }
.unit-rating a.r4-unit { left: 51px; }	
.unit-rating a.r4-unit:hover { width: 68px; }
.unit-rating a.r5-unit { left: 68px; }
.unit-rating a.r5-unit:hover { width: 85px; }
.unit-rating li.current-rating {
	background-image: url(../dleimages/rating.gif);
	background-position: left bottom;
	position: absolute;
	height: 16px;
	display: block;
	text-indent: -9000px;
	z-index: 1;
}

---Заменить на:

.r2-unit{
 cursor: pointer;
}
.rating-text {float: left;}

#ratig-layer {
 font-weight: bold;
 float: left;
 padding-right: 5px;
}

#ratig-layer a, #ratig-layer a:hover {text-decoration: none;}

________________________________________________________________________

Открыть файл /templates/ваш_шаблон/shortstory.tpl
////////////////////////////////////////////////////////////////////////

---Найти:

{rating}

---Заменить на:

<div class="rating-text">Рейтинг:&nbsp;</div>{rating}

---Тоже самое проделайте и с файлом fullstory.tpl

Копируем из дистрибутива не сжатый файл js_edit.js в engine/ajax/
открываем ищем:
-------------
function doRate( rate, id ) {
	ShowLoading('');

	$.get(dle_root + "engine/ajax/rating.php", { go_rate: rate, news_id: id, skin: dle_skin }, function(data){

		HideLoading('');
		
		$("#ratig-layer").html(data);
		
	});
};
---------------
меняем
---------------
function doRate( rate, id ) {
	ShowLoading('');

	$.get(dle_root + "engine/ajax/rating.php", { go_rate: rate, news_id: id, skin: dle_skin }, function(data){

		HideLoading('');

		$("#ratig-layer-" + id).html(data);

	});
};
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху