Персональные статусы - пользователь сам может выбирать
Такое изменение кода позволит пользователям, с Вашего разрешения, прописывать себе персональные статусы.
Есть три возможности:
1) не разрешать самовольно писать персональные статусы
2) разрешить только модераторам
3) разрешить всем пользователям, но с определенного числа постов.
Поехали...
Открываем setmembertitles.cgi и после
Код: <form action="$thisprog" method="post"> <input type=hidden name="action" value="process"> |
вставляем
Код: <tr> <td bgcolor=#FFFFFF valign=middle align=center colspan=2> <font face=verdana color=#990000 size=3><b>Персональные статусы</b> </font></td> </tr> ~; $tempoutput = "<select name=\"persstatus\">\n<option value=\"n\">не разрешать\n<option value=\"m\">модераторам\n<option value=\"u\">пользователям\n</ select>\n"; $tempoutput =~ s/value=\"$persstatus\"/value=\"$persstatus\" selected/; print qq~ <tr> <td bgcolor=#FFFFFF valign=middle align=left width=40%> <font face=verdana color=#333333 size=1><b>Кому можно использовать персональные статусы?</b><br></font></td> <td bgcolor=#FFFFFF valign=middle align=left> $tempoutput</td> </tr> <tr> <td bgcolor=#FFFFFF valign=middle align=left width=40%> <font face=verdana color=#333333 size=1>Если было выбрано "пользователям", то укажите число постов с которого будет доступен персональный статус.</font></td> <td bgcolor=#FFFFFF valign=middle align=left> <input type=text size=18 name="persstatuspost" value="$persstatuspost"></td> </tr> |
Сохраняем и закрываем setmembertitles.cgi.
Далее открываем profile.cgi.
после
Код: require "ikon.lib"; # Require ikonboard () require "data/progs.cgi"; # Require prog names require "data/boardinfo.cgi";# Require board info require "data/styles.cgi"; # Require styles info require "ikonmail.lib"; # Require styles info |
дописываем
Код: require "data/membertitles.cgi"; #читаем статусы |
в
Код:
после
Код: <tr> <td bgcolor=$miscbackone><font face="$font" color=$fontcolormisc size=$dfontsize1><b>$ibtxt{'1838'}</b><br>$ibtxt{'1839'}:</td> <td bgcolor=$miscbackone><font face="$font" color=$fontcolormisc size=$dfontsize1>$tempoutput</font></td> </tr> |
вставляем
Код: ~; #persstatus if (($persstatus eq "m" && $membercode eq "mo") || ($persstatus eq "u" && (($numberofposts >= $persstatuspost) || ($membercode eq "mo")))) {$output .= qq~ <tr><td bgcolor=$miscbackone><font face="$font" color=$fontcolormisc size=$dfontsize1><b>Персональный статус:</b></td> <td bgcolor=$miscbackone><input type=text size=20 name="newmembertitle" value="$membertitle"></td> </tr>~;} #persstatus end $output .= qq~ |
в
Код:
это
Код: $newpassword = $query -> param('newpassword'); $newshowemail = $query -> param('newshowemail'); $newhomepage = $query -> param('newhomepage'); $newaolname = $query -> param('newaolname'); $newicqnumber = $query -> param('newicqnumber'); $newlocation = $query -> param('newlocation'); $newinterests = $query -> param('newinterests'); $newtimedifference = $query -> param('newtimedifference'); $newemailaddress = $query -> param('newemailaddress'); $newsignature = $query -> param('newsignature'); $inuseravatar = $query -> param('useravatar'); $newsignature = &unHTML("$newsignature"); $inuseravatar = &cleaninput("$inuseravatar"); $newpassword = &cleanarea("$newpassword"); $newshowemail = &cleanarea("$newshowemail"); $newhomepage = &cleanarea("$newhomepage"); $newaolname = &cleanarea("$newaolname"); $newicqnumber = &cleanarea("$newicqnumber"); $newlocation = &cleanarea("$newlocation"); $newinterests = &cleanarea("$newinterests"); $newtimedifference = &cleanarea("$newtimedifference"); $newemailaddress = &cleanarea("$newemailaddress"); |
меняем на
Код: $newpassword = $query -> param('newpassword'); $newshowemail = $query -> param('newshowemail'); $newhomepage = $query -> param('newhomepage'); $newaolname = $query -> param('newaolname'); $newicqnumber = $query -> param('newicqnumber'); $newlocation = $query -> param('newlocation'); $newinterests = $query -> param('newinterests'); $newtimedifference = $query -> param('newtimedifference'); $newemailaddress = $query -> param('newemailaddress'); $newsignature = $query -> param('newsignature'); $inuseravatar = $query -> param('useravatar'); $newmembertitle = $query -> param('newmembertitle'); $newsignature = &unHTML("$newsignature"); $inuseravatar = &cleaninput("$inuseravatar"); $newpassword = &cleanarea("$newpassword"); $newshowemail = &cleanarea("$newshowemail"); $newhomepage = &cleanarea("$newhomepage"); $newaolname = &cleanarea("$newaolname"); $newicqnumber = &cleanarea("$newicqnumber"); $newlocation = &cleanarea("$newlocation"); $newinterests = &cleanarea("$newinterests"); $newtimedifference = &cleanarea("$newtimedifference"); $newemailaddress = &cleanarea("$newemailaddress"); $newmembertitle = &cleanarea("$newmembertitle"); if ($newmembertitle eq ""){$newmembertitle = $membertitle} |
чуть ниже
Код: "$inmembername|$newpassword|$membertitle|$membercode|$numberofposts|$newemailaddress|$newshowemail|$ipaddress|$newhomepage|$newaolname|$newicqnumber|$newlocation|$newinterests|$joineddate|$lastpostdate|$newsignature|$newtimedifference|$privateforums|$inuseravatar|$misc1|$misc2|$misc3" |
меняем на (пробелов быть не должно!)
Код: "$inmembername|$newpassword|$newmembertitle|$membercode|$numberofposts|$newemailaddress|$newshowemail|$ipaddress|$newhomepage|$newaolname|$newicqnumber|$newlocation|$newinterests|$joineddate|$lastpostdate|$newsignature|$newtimedifference|$privateforums|$inuseravatar|$misc1|$misc2|$misc3" |
Вот и всё Теперь следуем в АЦ => "настройка статуса пользователей" и делаем необходимые настройки.
Если заметили какие-либо ошибки и недочёты, сразу сообщайте!