PDA

Просмотр полной версии : [Модуль] Звезда определённое за количество просмотров темы



- John.Besson
11.12.2013, 00:23
Суть. За выставленное количество просмотров темы присваивается звезда, которая отображается под названием темы. Поддерживается только prosilver.

<script type="text/javascript">
of_Stars=500; //Звёзд за количество просмотров
var records=0;
var Select=$(".forumbg ul");
var Rang_TR=[];
Select.find("dd.views").each(function(){
L=parseFloat($(this).text());
if(!($(this).parent('ul').find('.row').length)){
Rang_TR[L]=true;
if(L>records){records=L;};
L=Math.round(L/of_Stars);
if(L){
var SS='',
s='<img src="http://forumimage.ru/uploads/20131210/138668688755606437.png" />'
for(i=0; i<L; i++){
SS+=s;
}
$(this).parent('dl').find('dt').append('<span class="cssStars">'+SS+'</span>');
$('.cssStars').css({'display':'block'});
}
};
});
</script>

Количество просмотров за одну звезду выставляется в первой строке скрипта, помеченного комментарием.
В данном виде звёзды будут добавляться под названием темы, автором и временем, можно сказать - в первый столбик. При добавлении звёзд до вертикальной черты отделяющих количество просмотров сообщения, звёзды переносятся на новую строку.
Так же есть вариант с добавлением звёзд во всю длину. Тогда скрипт будет выглядеть так:

<script type="text/javascript">
of_Stars=500; //Звёзд за количество просмотров
var records=0;
var Select=$(".forumbg ul");
var Rang_TR=[];
Select.find("dd.views").each(function(){
L=parseFloat($(this).text());
if(!($(this).parent('ul').find('.row').length)){
Rang_TR[L]=true;
if(L>records){records=L;};
L=Math.round(L/of_Stars);
if(L){
var SS='',
s='<img src="http://forumimage.ru/uploads/20131210/138668688755606437.png" style="width:16px; height:16px;"/>'
for(i=0; i<L; i++){
SS+=s;
}
$(this).parent('dl').append('<dd class="stars">'+SS+'</dd>');
$('.stars').css({
'float' : 'none',
'clear' : 'both',
'padding-left' : '45px'
});
}
};
});
</script>

Скрипты устанавливаются в overall_footer.html перед </body>.

Пример:
http://i.imgur.com/8lhLlf2.png

Kot™
25.12.2013, 21:59
Название темы перечитайте

- John.Besson
01.01.2014, 21:39
Исправил.