Форум технической поддержки сервиса bloomix

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Администрирование

Сообщений 1 страница 12 из 12

1

Готовые решения по администрированию форума


В этой теме будут выкладываться скрипты, касающиеся администрирования форума. Все ненужные сообщения будут удаляться. Свои вопросы, по работе скриптов, Вы можете задать в общих вопросах по применению скриптов

0

2

Видимое сразу для Админов - модеров IP гостя

http://s2.uploads.ru/eyw3f.jpg

В HTML - низ:

Код:
<!-- IP гостя -->
<style type="text/css">
#pun-online .tcl .wink {
  border: 1px solid #999;
  border-radius: 3px;
  font: normal 11px Tahoma;
  color:#000; /* цвет */
  padding: 5px 5px 5px 25px;
  box-shadow: 3px 3px 3px -2px rgba(0,0,0,0.5);
  background: #ffffed url('http://spb-piksel.ru/20x20-Info.png') 2px center no-repeat;
}
</style>
<script type="text/javascript">
$('#pun-online .tcl a[title]').each(function() {
   var a=$(this)[0].title;$(this).after(' <span class="wink">'+a+'</span>')
});
</script><!--//End = IP гостя -->

Имеется конфликт со скриптом "Вывод опросов на главной"
если он в наличии, - оставляем наиболее необходимый их этих скриптов на данный момент.

0

3

Добавка к скрипту "Видимое сразу для Админов - модеров IP гостя
(при наведении получаем инфу о геоположении)

http://s2.uploads.ru/9pL5B.gif

Ниже скрипта "Видимое сразу для Админов - модеров IP гостя"
Добавляем Еще две строчки:

Код:
<link rel="stylesheet" type="text/css" href="http://forumstatic.ru/files/0010/b4/f8/22491.css"/>
<script type="text/javascript" src="http://forumstatic.ru/files/0010/b4/f8/19707.js"></script>

Возможно потребуется корректировка положения ин-фы во всплываюшем окне
Для этого ниже ставим код:

<style>
.infoIp .wrp iframe {
  margin-top:-420px!important;
}
</style>

Цифру  - регулируем,  увеличение цифры- понимает инфу.

0

4

Удобное Открытие/закрытие и выделение/снятие выделения тем аяксом

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

http://s3.uploads.ru/t/2woQj.png

В HTML - низ:

Код:
<style>
img.mod_topic {
  cursor:pointer;
}
</style>
<script type="text/javascript">
var tnum= 0; 
var mod_topic = [];
mod_topic[0]= ['dafDw.png','stick','Выделить'];
mod_topic[1]= ['wDvgx.png','unstick','Снять выделение'];
mod_topic[2]= ['dsnFu.png','open','Открыть'];
mod_topic[3]= ['twBuH.png','close','Закрыть'];
function ModTopic(it,rt,tt){return (' <img src="http://s2.uploads.ru/'+it+'" class="mod_topic" rel="'+rt+'" title="'+tt+'" /> ')};
function GetModTopic(th,tn,tr,tnp,tnr,tnt){
  $.get('/moderate.php?fid='+tn+ '&'+tr+'='+tn); 
  // alert(tnp+'#'+tnr+'#'+tnt);
  $(th).attr({'src':'http://s2.uploads.ru/'+tnp}).attr({'rel':tnr}).attr({'title':tnt});
  if(tnr=='unstick') {
    $(th).parent().find('span.acchide:first').after('<span class="stickytext">Важно: </span>');
    $(th).parents('tr').attr({'class':'isticky'});
  }
  if(tnr=='open') {
    $(th).parent().find('span.acchide:first').after('<span class="closedatafield">Закрыта </span>');
    $(th).parents('tr').attr({'class':'iclosed'});
  }
  if(tnr=='stick') {
    $(th).parent().find('span.stickytext').remove();
    $(th).parents('tr').attr({'class':''});
  }
  if(tnr=='close') {
    $(th).parent().find('span.closedatafield').remove();
    $(th).parents('tr').attr({'class':''});
  }
};

if (document.URL.indexOf('viewforum.php') != -1 && GroupID <= 2){
var fnum=$('div.forum[id^=forum_f]').attr('id').replace('forum_f','');

$('div.forum div.tclcon').each(function(){

if($(this).html().indexOf('closedatafield')!=-1)  $(this).append(ModTopic(mod_topic[2][0],mod_topic[2][1],mod_topic[2][2]));
else $(this).append(ModTopic(mod_topic[3][0],mod_topic[3][1],mod_topic[3][2]));

if($(this).html().indexOf('stickytext')!=-1)  $(this).append(ModTopic(mod_topic[1][0],mod_topic[1][1],mod_topic[1][2]));
else $(this).append(ModTopic(mod_topic[0][0],mod_topic[0][1],mod_topic[0][2]));

});


$("img.mod_topic").live("click", function(){
tnum=$(this).parent().find('a').attr('href').replace('http://'+document.domain+'/viewtopic.php?id=','');
var threl=$(this).attr('rel');
if(threl=='stick') GetModTopic(this,tnum,threl,mod_topic[1][0],mod_topic[1][1],mod_topic[1][2]);
if(threl=='unstick') GetModTopic(this,tnum,threl,mod_topic[0][0],mod_topic[0][1],mod_topic[0][2]);
if(threl=='open') GetModTopic(this,tnum,threl,mod_topic[3][0],mod_topic[3][1],mod_topic[3][2]);
if(threl=='close') GetModTopic(this,tnum,threl,mod_topic[2][0],mod_topic[2][1],mod_topic[2][2]);
});

}
</script>

0

5

Запрет редактировать свой профиль определённой группе пользователей. rps

В HTML - верх или без тегов "style" в свой стиль:

Код:
<style type="text/css">
#pun-profile input, #pun-changepass input, #pun-upavatar input {
  display: none;
}
</style>

В HTML - низ:

<script type="text/javascript">
function disabled_profile(g_id) {
$('input').show();
if( GroupID == g_id )
{
  $('input[type=submit]').attr('disabled', true);
  var text = $('.formsubmit').html().replace(/После обновления профиля, вы будете перенаправлены назад на эту страницу./, "<span style='color: red;'>Администратор форума запретил Вам изменять профиль.</span>");
  $('.formsubmit').html(text);
}
}

if (document.URL.indexOf("profile.php") != -1) disabled_profile("1");
</script>

Выделенное красным - номер группы пользователей, которые не смогут менять свои профили.

0

6

Создание списка запрещённых к регистрации логинов. rps

В HTML - верх:

Код:
<style type="text/css">
#pun-register .button {
  display: none;
}

#inform_mess {
  position: absolute; 
  z-index: 1000; 
  padding: 5px;
  width: 400px; 
  margin-left: 200px; 
  margin-top: -22px;
}
</style>

В HTML - низ:

Код:
<script type="text/javascript">
var fld_1 = document.getElementById("fld1"); 

function check_login() {
 var f1_value; var rule; var fld_1;
 var censored_login = new Array("Login_1", "Login_2", "Login_3");
 fld_1 = document.getElementById("fld1");
 f1_value = fld_1.value;
 if (f1_value != "") {
  rule = new RegExp(censored_login.join('|'), "i");
  if (rule.test(f1_value)) create_inform_mess("bad");
  else if (f1_value.length < 2) create_inform_mess("small");
  else create_inform_mess("good");
 }
}

function create_inform_mess(y) {
 var div = document.getElementById('inform_mess');
 var registration = document.getElementById("register").getElementsByTagName("input")[8];
 if (!div) {
  div = document.createElement("div");
  div.id = "inform_mess";
  document.getElementById("fld1").parentNode.appendChild(div);
 }
 if (y == "bad") { 
  div.innerHTML = "Такое имя пользователя недопустимо, выберите другой вариант.";
  div.style.backgroundColor = "#ff6a6a";
  document.getElementById("fld1").style.background = "#ff6a6a none";
  registration.style.display = "none";
 }
 else if (y == "good") {
  div.innerHTML = "Такое имя пользователя разрешено к регистрации.";
  div.style.backgroundColor = "#66cdaa";
  document.getElementById("fld1").style.background = "#66cdaa none";
  registration.style.display = "block";
 }
 else if (y == "small") {
  div.innerHTML = "Имя пользователя не должно быть короче 2 символов.";
  div.style.backgroundColor = "#ff6a6a";
  document.getElementById("fld1").style.background = "#ff6a6a none";
  registration.style.display = "none";
 }
}

if (document.URL.indexOf("register.php") != -1) {
 fld_1.onkeyup = fld_1.onkeydown = fld_1.onfocus = fld_1.onblur = check_login;
}
</script>

Предназначено для тех, кто хочет запретить употребление в никнеймах пользователей отдельные слова или словосочетания. Их нужно прописать в эту строчку:

var censored_login = new Array("Login_1", "Login_2", "Login_3");

Различается три варианта: логин содержит запрещённые к регистрации слова, логин разрешён к регистрации и логин слишком короткий (содержит менее 2-ух символов). Цветовая индикация и подсказки помогут ориентироваться. Встроена защита от отключения JavaScript: кнопка "Регистрация" появится только после ввода корректного логина.

Скриншоты

http://s1.uploads.ru/t/haMkD.png
http://s1.uploads.ru/t/yS4nb.png
http://s1.uploads.ru/t/7Fgsq.png

0

7

Поисковые боты на главной странице

ни для кого не секрет, что поисковые боты присутствуют на наших форумах в качестве гостей,
принцип "отлова" ботов такой
у Яндекс бота диапазон ip - 95.108.xxx.xxx
у Гугла диапазон - 66.249.xxx.xxx (если я ошибаюсь, поправьте)
и т.д.
в целом в списке боты всех популярных поисковиков и служб, которые проверенно заглядывают на форумы нашего сервиса
я попробовал отобразить на главной странице их присутствие, получилось,
но правда в таком варианте их видят только админы (может быть ещё и модеры, не проверял)

В HTML - низ:

Код:
<!-- Поисковые боты (расширенный список)-->
<script type="text/javascript">
$.ajax({type: 'GET',url: 'online.php',
success: function(data){
$(data).find('div#pun-online td.tcl:first-child').map(function () {
var OnlineIP=$(this).find('a').attr('title');
if(OnlineIP.indexOf('95.108.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Yandex[bot]</a>')};
if(OnlineIP.indexOf('77.88.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Yandex[bot]</a>')};
if(OnlineIP.indexOf('93.158.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Yandex[bot]</a>')};
if(OnlineIP.indexOf('66.249.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Google[bot]</a>')};
if(OnlineIP.indexOf('94.100.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Mail[bot]</a>')};
if(OnlineIP.indexOf('217.69.134.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Mail[bot]</a>')};
if(OnlineIP.indexOf('217.69.136.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Mail[bot]</a>')};
if(OnlineIP.indexOf('81.19.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Rambler[bot]</a>')};
if(OnlineIP.indexOf('67.195.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Yahoo![bot]</a>')};
if(OnlineIP.indexOf('72.30.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Yahoo![bot]</a>')};
if(OnlineIP.indexOf('74.6.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Yahoo![bot]</a>')};
if(OnlineIP.indexOf('202.160.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Yahoo![bot]</a>')};
if(OnlineIP.indexOf('207.46.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Bing[bot]</a>')};
if(OnlineIP.indexOf('66.235.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Ask[bot]</a>')};
if(OnlineIP.indexOf('65.52.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Bing[bot]</a>')};
if(OnlineIP.indexOf('65.55.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Bing[bot]</a>')};
if(OnlineIP.indexOf('157.55.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Bing[bot]</a>')};
if(OnlineIP.indexOf('119.63.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Baidu[bot]</a>')};
if(OnlineIP.indexOf('220.181.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Baidu[bot]</a>')};
if(OnlineIP.indexOf('123.125.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Baidu[bot]</a>')};
if(OnlineIP.indexOf('208.115.111.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Ezooms[bot]</a>')};
if(OnlineIP.indexOf('194.67.') != -1) {$('li#onlinelist.item5 span:first').append('<a href="/online.php" class="bot" title="'+OnlineIP+'">&nbsp;, Aport[bot]</a>')};
$('a.bot').css({'color':'#9E8DA7','text-decoration':'none'});
}); } });
$('div#pun-online td.tcl a:contains("Гость")').map(function () {
OnIP=$(this).attr('title');
if(OnIP.indexOf('95.108.') != -1) {$(this).html('Yandex[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('77.88.') != -1) {$(this).html('Yandex[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('93.158.') != -1) {$(this).html('Yandex[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('66.249.') != -1) {$(this).html('Google[bot]').css('color','#9E8DA7')}; 
if(OnIP.indexOf('94.100.') != -1) {$(this).html('Mail[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('217.69.134.') != -1) {$(this).html('Mail[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('217.69.136.') != -1) {$(this).html('Mail[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('81.19.') != -1) {$(this).html('Rambler[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('67.195.') != -1) {$(this).html('Yahoo![bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('72.30.') != -1) {$(this).html('Yahoo![bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('74.6.') != -1) {$(this).html('Yahoo![bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('202.160.') != -1) {$(this).html('Yahoo![bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('207.46.') != -1) {$(this).html('Bing[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('65.52.') != -1) {$(this).html('Bing[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('65.55.') != -1) {$(this).html('Bing[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('157.55.') != -1) {$(this).html('Bing[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('119.63.') != -1) {$(this).html('Baidu[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('123.125.') != -1) {$(this).html('Baidu[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('220.181.') != -1) {$(this).html('Baidu[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('66.235.') != -1) {$(this).html('Ask[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('208.115.111.') != -1) {$(this).html('Ezooms[bot]').css('color','#9E8DA7')};
if(OnIP.indexOf('194.67.') != -1) {$(this).html('Aport[bot]').css('color','#9E8DA7')};});
</script>

нажав на бота, можно посмотреть чем он занимается на форуме.
[реклама вместо картинки]
Автор: Romych
спасибо Caligula за активное тестирование скрипта и за помощь в расширении списка поддерживаемых ботов!

0

8

Поисковые Боты , с упрощенным добавления Новых IP и Ботов

В HTML - низ:

<!-- Поисковые боты (расширенный список)-->
<div class=botlist style='display:none'>
<p>Yandex,#9E8DA7,95.108.,77.88.,93.158.</p>
<p>Google,#9E8DA7,66.249.</p>
<p>Mail,#9E8DA7,94.100.,217.69.134.,217.69.136.</p>
<p>Rambler,#9E8DA7,81.19.</p>
<p>Yahoo!,#9E8DA7,67.195.,72.30.,74.6.,202.160.</p>
<p>Bing,#9E8DA7,207.46.,65.52.,65.55.,157.55.</p>
<p>Baidu,#9E8DA7,119.63.,123.125.,220.181.</p>
<p>Ask,#9E8DA7,66.235.</p>
<p>Ezooms,#9E8DA7,208.115.111.</p>
<p>Aport,#9E8DA7,194.67.</p>
</div>

<script>var L0=$("#navlogout").html(),L=$(".punbb").attr("id");if((L0!=null)&&(GroupID<3)&&(L=="pun-index"||L=="pun-online")){var Botlist={},L=[];$(".botlist p").each(function(j){L[j]=$(this).text().split(",");Botlist[L[j][0]]=L[j]});$.ajax({type:'GET',url:'online.php',success:function(data){$(data).find('div#pun-online td.tcl:first-child').map(function(){var OnlineIP=$(this).find('a').attr('title');Str='<a href="/online.php" class="bot" title="';for(var key in Botlist){for(i=2;i<Botlist[key].length;i++){var pattern="^"+Botlist[key][i],regexp=new RegExp(pattern,"ig");if(OnlineIP.search(regexp)!=-1){var L=Str+OnlineIP+'"><span style="color:'+Botlist[key][1]+';" >&nbsp;, '+Botlist[key][0]+'[bot]</span></a>';$('li#onlinelist.item5 span:first').append(L);}}}})}});$('div#pun-online td.tcl a:contains("Гость")').map(function(){OnIP=$(this).attr('title');for(var key in Botlist){for(i=2;i<Botlist[key].length;i++){var pattern="^"+Botlist[key][i],regexp=new RegExp(pattern,"ig");if(OnIP.search(regexp)!=-1){$(this).html(Botlist[key][0]+'[bot]').css({'color':Botlist[key][1]})}}}})}</script>

Кстать должен исчезнуть трабл - с массовостью сидения в "Смотрит список активных пользователей".

0

9

Закрытие Доступа к форуму гостям, кроме некоторых категорий и форумов

Иногда возникает задача перекрыть доступ незарегистрированным пользователям, но так, чтобы отражалась статистика последних сообщений в скрытых форумах и была возможность, в этих форумах, индексировать контент ботам поисковиков...Стандартное скрытие через настройки форума - не даёт этой возможности, вот попытка сделать это скриптом.

В HTML - низ:

<!--Закрытие Доступа гостям, кроме некоторых категорий и форумов -->
<div id="ListForumsAndCategor" style="display:none">
<p id=ONcategor><!-- ОТКРЫТЫЕ КАТЕГОРИИ -->
<i>Только для (!)НЕzZzАRЕГИСТРИРОВАHNЫХ пользователей</i>
<i>PR и ПРОДВИЖЕНИЕ</i>
<i>ДОБРО ПОЖАЛОВАТЬ!</i>
</p>
<p id=ONforums><!-- ОТКРЫТЫЕ ФОРУМЫ -->
<a href="http://mjacksoninfo.userforum.ru/viewforum.php?id=107">Открывающиеся ВОЗМОЖНОСТИ ФОРУМА</a>
<a href="http://mjacksoninfo.userforum.ru/viewforum.php?id=102">МЫ в СЕТИ</a>
<a href="http://mjacksoninfo.userforum.ru/viewforum.php?id=95">ДОБРО ПОЖАЛОВАТЬ!</a>
<a href="http://mjacksoninfo.userforum.ru/viewforum.php?id=32">ОБСУЖДАЕМ</a>
</p>
<p id=TextFromGuest><!-- ТЕКСТ ИЗВЕЩЕНИЯ ДЛЯ ГОСТЯ -->
<span style="padding:3px 3px 3px 20px;background-color:#FFF081;display:block"><span style="text-decoration: blink;color:red;">У Вас нет прав доступа к данной странице.</span><br> Зарегистрируйтесь, и Вам откроется энциклопедия жизни и творчества короля Музыки - Майкла Джексона: 21000 сообщений, 1500 тем</span>
</p>

</div><script type="text/javascript">var Dostyp=true,textguest=$("#TextFromGuest").html();Guest=$("#navlogin").html()!=null,IndexPage=$(".punbb").attr("id")=="pun-index",Topic=$(".punbb").attr("id")=="pun-viewtopic",Forum=$(".punbb").attr("id")=="pun-viewforum";if(Guest&&IndexPage){var ListCategor=[];$("#ONcategor i").each(function(j){ListCategor[j]=$(this).text()});$("#pun-main .category h2 span").not("[class]").each(function(){var Lcat=$(this).parents(".category");Lcat.addClass("Hide");for(var i in ListCategor){if(ListCategor[i]==$(this).text()){Lcat.removeClass("Hide");Lcat.addClass("Nohide");ListCategor.splice(i,1);break;}}});$("#pun-main .category.Hide").hide()};if(Guest&&(Topic||Forum)){var Fid=$("html head:first link[rel='up']");var FidRSS=$("html head:first link[rel='alternate']");if(Fid.html()!=null){Fid=Fid.attr("href")}else{Fid=FidRSS.attr("href").replace(/export\.php\?type=rss&f/img,'viewforum.php?')}Dostyp=false;$("#ONforums a").each(function(j){if($(this).attr("href")==Fid){Dostyp=true}})};if(!Dostyp){document.getElementById("pun-main").innerHTML="<div id=\"pun-main\" class=\"main\" style=\"margin-top: -25px!important;\"><h1><span>Информация</span></h1><div class=\"info\"><div class=\"container\">"+textguest+"</div></div></div>"}</script><!-- End// Закрытие Доступа гостям   -->

Cиним в тегах <i> прописываем  названия нескрываемых категорий;
Красным - адреса ссылок и названия нескрываемых форумов.
Зеленым - HTML-контент вашего сообщения( или просто текст)

0

10

Скрипт скрытого присутствия на форуме

Пояснения:
Для работы скрипта необходимо заполнить строку-функцию для конкретного юзера и вставить в скрипт.
Пример:

UserOff(1,"Сегодня 14:03:27",22787, "Deff")

Первая цифра синим - скрытие включено или выключено - 1 - включено - 0 - выключено
Красным - якобы дата-время последнего присутствия( *думалось, в принципе,  сделать список-массив из 20-30 значений рандомно перебирать его в зависимости от текущего  дня месяца -  пока оставил так, - вручную
Зеленым -id юзера - (можно подсмотреть при клике на профиль в Адресном окне браузера, -> это цифра,- идущая после id=
И последнее, розовым - Ник.

Строку подобную этой (синим):

UserOff(1,"Сегодня 15:15:04",14444, "rps")

Можно размножать для нескольких пользователей, не особо увлекаясь количеством, - скрипт достаточно длинный, для каждого НИка, прокручивается несколько этапов (Если скрываем только одного юзера - оставляем только одну строку - с вышеуказанными данными, - именно для него.

Код:
<script type="text/javascript"><!-- Cкрипт Скрытия Присутствия -->
        var first = true;
  $(document).ready(function(){
        UserOff(1,"Сегодня 15:15:04",14444, "rps")
        UserOff(1,"Сегодня 14:03:27",22787, "Deff")

       
     function UserOff(off,last_visit,IDUser,NIK){
        if(off!==0) {
        var t9="Последний визит:<br/>"
        var p =",",p2='<span class=pt>,</span>'
        var s;
        var ss0=0;
        var ss000;
     var NIKprov = "/profile.php?id="+IDUser;
function removeNicKandZpt(selekt){
var Changes=false;
        if(first){first = false;
	selekt.html(selekt.html().substring(0).replace(/,/img,p2));}
	selekt.find("a[href$='"+NIKprov+"']").each(function(){Changes=true;
        $(this).next('span.pt').remove();$(this).remove();
        var ptlast = selekt.find('a:last').next('span.pt');
        if(ptlast.length)ptlast.remove()
        }); return Changes;
}
// Проверяем на Главной
	selekt=$("#pun-index #onlinelist>div a[title$='кто чем занимается на форуме.']").parent()
        ss0=selekt.html()
        if (ss0!==null){//Ищем и убираем Ник и запятушку
 	if(removeNicKandZpt(selekt)){
        ss0=selekt.find("strong:eq(1)").html();//alert(ss0)
        s=ss0-1; // Уменьшаем кол-во пользователей

        selekt.find("strong:eq(1)").html(s)
}} // конец проверки на Главной

//Проверка в Топике
        var ss = "Тему просматривают"
        selekt=$("#pun-viewtopic div.modmenu p.container:contains('"+ss+"')")
        ss0=selekt.html();

        if (ss0!==null){ //Ищем и убираем Ник и запятушку
 	if(removeNicKandZpt(selekt)){ss000=selekt.html();
	for(var i=0;i<ss000.length;i++){
        if (ss000.substring(0,i).indexOf("Пользователей: ")!=-1){ //Ищем на стр. кол-во Пользователей
        var j=i;
        break;}}

        for(var i=j;i<ss000.length;i++){
        if (ss000.substring(j,i).indexOf(")")!=-1){
	var y=i;
        break;}}
        
        s=ss000.substring(j,y-1)-1
	ss000=ss000.substring(0,j)+s+ss000.substring(y-1)
        ss0=selekt.html(ss000); //Вставили измененую строку юзеров внизу Tопика

}}; // конец проверки строки присутствия в топике

//проверки активности Аватара в топике
        ss0=$("#pun-viewtopic li.pl-email a[href$='"+NIKprov+"'],#pun-messages li.pa-author a[href$='"+NIKprov+"']").parents("div.container").find("div.post-author.online ul").html()
        if (ss0!==null){

        $("li.pl-email a[href$='"+NIKprov+"'],#pun-messages li.pa-author a[href$='"+NIKprov+"']").parents("div.container").find("div.post-author.online ul").each(function(i){
        $(this).find("li.pa-online").addClass("pa-last-visit").removeClass("pa-online").html(t9+last_visit)
	$(this).parent("div.post-author.online").removeClass("online")
   });
}// конец -проверки активности Аввы в топике

// Проверка и cкрытие при просмотре: ссылки(с главной) "Активны"
        ss0=$("#pun-online td.tcl a[href$='"+NIKprov+"']").parent("td.tcl").parent("tr").hide()
       }
    }
});
</script><!-- End//Cкрытие Присутствия -->

Дополнения: - Если Мы хотим, чтобы скрипт работал корректно совместно со скриптами "Картинки Оффлайн - Онлайн" и скриптом скрытия - развертывания Инфы под Аватаром - Скрипт должен стоять Выше этих скриптов
*Ставим его или  в самый низ HTML верх или  в самый верх HTML низ, обязательно чтобы он был  выше скрипта последние 10/20 сообщений (иначе кол-во ников - может меняется прямо на глазах у изумлённого юзера.

0

11

Скрипт открытой на запись, но закрытой для чтения всеми темы.
К примеру:
"ЖАЛОБЫ И ПРЕТЕНЗИИ К АДМИНИСТРАЦИИ"

кроме Глав.админа, - всем доступна только запись в тему, без возможности прочитать сообщения.

В HTML - верх:

<!--Тема со скрытым от всех контентом, с возможностью написания сообщений--><style id="offtopic2" type="text/css">.post,.pagelink a{display:none}</style>
<script type="text/javascript">var s=document.URL;if(GroupID==3){UserID= -1};
var id_topic=433;     // id ТЕМЫ /число после "id=" при клике на Тему  в адресном окне браузера
if((UserID==2)||(s.indexOf("viewtopic.php?id="+id_topic)==-1)&&(s.indexOf("edit.php?id="+id_topic)==-1)&&(s.indexOf("post.php?tid="+id_topic)==-1)&&(s.indexOf("search.php?search_id")==-1)){$("style.#offtopic2").replaceWith("");}
</script><!--Конец скрытия Темы-->

Красным: id темы.

0

12

Снабжаем форум защитой от отключения ява-Скрипт пользователем во время пребывания

Зачем это нужно -?
Да многие элементы дизайна и приватного пребываниях в форумах - разделах-темах основаны на применении ява скрипт,- если Вы желаете в неизменности сохранить лицо дизайна форума и избежать взлома приватности(если конечно она у Вас установлена скриптами, например: скрипт установки пароля на раздел от Duku, или "Допуск к темам, форумам, категориям строго по списку", различные скрытия от гостя..) возможно имеет смысл применить данный скрипт...

В HTML - верх. В самый верх:

Код:
<div id="pircs"><!----><link rel="stylesheet" type="text/css" href="http://hostjs-mybb2011.narod.ru/css/pun-main.css" /><div id="msg-n">У Вас 
отключён javascript.<br>В данном режиме, отображение ресурса<br/>браузером не поддерживается <br/></div></div><script>$("style.#style_st,div.#pircs").replaceWith("");</script>
<!-- html_header -->

0