Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Запрещаем модерам править посты админов.

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5

Открыть новую тему     Написать ответ в эту тему

Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Стандартно модераторы могут исправлять постинги администраторов, однако это не всегда есть гуд.
 
Посты могут править:  
1. участник  - только свой по дефолту
2. Гость не может править( установленно в последней версии) по дефолту
3. Забаненый не может править(утановленно в последней версии) по дефолту
4. Модератор  - только в своем форуме по дефолту
5. Администратор везде по дефолту
6. Модератор в своем форуме посты админа ( убираем с помощью этого хака)

Удалением постов.
1. участник  - не может по дефолту
2. Гость не может ( установленно в последней версии) по дефолту
3. Забаненый не может (утановленно в последней версии) по дефолту
4. Модератор  - только в своем форуме по дефолту
5. Администратор везде по дефолту
6. Модератор в своем форуме  даже посты админа ( убираем с помощью этого хака)

 
Предлагаю решение вопроса #1:
Открываем postings.cgi
Ищем:

Код:
 
sub processedit {
 

Опускаемся ниже, находим:

Код:
 
if ($inmembername eq "$ibtxt{'0043'}"){$cleartoedit = "no"}
 

Т.е. строчку запрещающую анрегам редактировать посты.
И ниже добавляем:

Код:
 
&getmember("$postermembername");
$postermembercodesec = $membercode;
&getmember("$inmembername");
if (($postermembercodesec eq "ad") && ($inmembmod eq "yes") && ($membercode ne "ad")) {
$cleartoedit = "no";
&error("Редактирование сообщения&Модераторы не могут изменять сообщения администраторов");
}
 

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

 
Вариант №2 (альтернатива первому варианту, то есть вариант №1 не ставим)
Редактируем postings.cgi
Вот так выгледеть должно: sub processedit {

Код:
&getmember("$inmembername");  
            &moderator;  
 
            &getforum("$inforum");  
             
            if ($allowedentry{$inforum} eq "yes") { $allowed = "yes"; }  
 
            if (($privateforum eq "yes") && ($allowed ne "yes")) {  
                &error("$ibtxt{'1406'}&$ibtxt{'1407'}");  
                }    
 
            $cleartoedit = "no";  
 
            if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
            if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
            if (($inmembername eq $postermembername) && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
 
            if ($inmembername eq "$ibtxt{'0043'}"){$cleartoedit = "no"}  
####Запрет модерам посты админа править start#####    
            &getmember("$postermembername");    
            $postermembercodesec = $membercode;    
            &error("Редактирование сообщения&Модераторы не могут редактировать сообщения администратора") if (($postermembercodesec eq "ad") && ($inmembmod eq "yes"));    
            ###Запрет модерам посты админа править end
 
 
        unless ($cleartoedit eq "yes") { $cleartoedit eq "no"; }  

 
Убираем возможность удалять посты админа модератором в своем форуме.
(привожу целый кусок и красным что отличается от дефолтного):

Код:
sub deletepost {  
 
    $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";  
    open(FILE, "$filetoopen");  
    @allthreads = <FILE>;  
    close(FILE);  
     
    $posttodelete = $inpostno;  
    $posttodelete--;  
    $postcountcheck = 0;  
    $totalposts = @allthreads;  
     
 
($postername,$trash)=split(/\|/,@allthreads[$posttodelete]);  
    &getmember("$postername");  
    $postercode = $membercode;
     
&getmember("$inmembername");  
    &moderator;  
 
    $cleartoedit = "no";  
 
 
    if ($membername eq "$ibtxt{'0043'}") { &error("Posting&Внимание, Гостю запрещено править сообщения"); }  
    if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
    if (($inmembmod eq "yes") && ($inpassword eq $password) && ($postercode ne "ad")) { $cleartoedit = "yes"; }  
    unless ($cleartoedit eq "yes") { $cleartoedit = "no"; }  
     
        if ($cleartoedit eq "no" && $checked eq "yes") { &error("$ibtxt{'1529'}&$ibtxt{'0504'}"); }    
        if ($cleartoedit eq "yes") {  
             
            if ($posttodelete == 0) { &error("$ibtxt{'1530'}&$ibtxt{'1531'}"); }  
             
            ### First off, lets delete the post in the thread.  
 
 
 
 
 

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 19:58 03-01-2002 | Исправлено: trew, 05:43 15-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_Wесли у тебя конфа не на локалке, дай в ПМ  ссылку на нее, плз.

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 12:35 05-09-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Смотри ПМ.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 10:07 06-09-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Запрещаем модерам править посты админов.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru