Раз уж этот скрипт с периодичностью раз в 1-2 недели спрашивают, вывешу его здесь.
Скрипт позволяет установить пароль на форум (скрипт будет спрашивать пароль при переходе в запароленный форум или тему данного форума).
<script>
var forumlink = 'http://sadhaka.rusff.me';
var forbidden = 3;
var entry = 'пароль';function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function pass() {
if (readCookie('forumpass') == entry ) return true;
else if (prompt('Администратор установил пароль на этот форум', '') == entry) {
alert('Пароль принят. Нажмите "ОК" для редиректа');
createCookie('forumpass', entry, 1);
location.href = loc;
}
else {
alert('Введенный пароль неверен');
location.href = forumlink;
}
}
if (location.href.indexOf("viewforum.php?id=" + forbidden) != -1 || (location.href.indexOf("viewtopic.php") != -1 && FORUM.topic.forum_id == forbidden) ) {
var loc = location.href;
pass (loc);
}</script>
Советую отредактировать скрипт, как Вам надо, положить в файл с расширением js, залить в админку и подключить так:
<script type="text/javascript" src="ссылка_на_скрипт"></script>
потому что никто не мешает посмотреть пароль в исходном коде, а так - это будет не столь очевидно.
Настройки:
var forumlink = 'http://sadhaka.rusff.me'; //Куда редиректить, если пароль неверный
var forbidden = 3; //ID закрытого форума
var entry = 'пароль'; //пароль
Как узнать id форума - можно почитать тут Иконки сообщений, разделов, тем.
Более интересный вариант Доступ к Теме-Форуму по Коду в Статусе
Если надо сразу много форумов запаролить
<script>
var forumlink = 'http://sadhaka.rusff.me';
var forbidden = {
//id форума : "пароль"
3: "entry",
1: "done"
}function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function getUrlDate() {
var param = {};
var getURL = location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(t,key,value) {
param[key] = value;
});
return param;
}
function pass(url, id) {
if (readCookie('forumpass'+id) == forbidden[id] ) return true;
else { $("body").css("display","none");
if (prompt('Администратор установил пароль на этот форум', '') == forbidden[id]) {
alert('Пароль принят. Нажмите "ОК" для редиректа');
$("body").css("display","block");
createCookie('forumpass'+id, forbidden[id], 1);
location.href = url;
}
else {
alert('Введенный пароль неверен');
location.href = forumlink;
}
}}
if (location.href.indexOf("viewforum.php") != -1) {
var fID = getUrlDate()["id"];
}
else if (location.href.indexOf("viewtopic.php") != -1) {
var fID = FORUM.topic.forum_id;
}
if (fID in forbidden) {
var loc = location.href;
pass (loc, fID);
}
</script>
Настройки чуть меняются
var forumlink = 'http://sadhaka.rusff.me';
var forbidden = {
//id форума : "пароль"
3: "entry",
1: "done" //после последнего запятая не нужна
}
var forumlink - ссылка для редиректа (1 раз)
var forbidden - заполняете согласно схеме id форума : "пароль"
Теги: доступ по паролю, пароль на форум