»» Сайт:
Главная
»» Программирование
Скриптовые языки (0)
Программирование (0)
»» Скрипты конференций
Ikonboard 2.x (46)
phpBB/ vBulletin/ Invision Board/ e.t.c. (PHP) (4)
UBB 5.xx/ 6.xx/ Threads (1)
Board Power/ e.t.c. (Perl) (2)
»» Идеология конференций
Обзоры (2)
Анализ (1)
»» Реклама:
Кнопка нашей конференции! Поставь себе!
»» Поиск по сайту:

По названию
По описанию
По тексту
По автору
Конференция
Различные статусы участника в разных разделах. Хак.
Категория Ikonboard 2.x (Читать могут все посетители)
Автор: AlexanderIpp (От 14:23 19-02-2005) -- Просмотров: 5301
Позволяет одному и тому же участнику иметь разные статусы в разных разделах.
Наткнулся на винчестере, писал давно но ранее не публиковал. Может кому пригодится.
Ставим...
Откройте файл topic.cgi
НАЙДИТЕ код:
Код:
if ($locations_in_topic eq 'on') { 
if ($location){

if (length($location) > $char_locat_in_topic) {
$location = substr($location, 0, $char_locat_in_topic-1);
$location .= ' ...';
}

$locat = qq~<br>Откуда: $location<p>~;
}
else {undef $locat;}
}

$membertitle =~ s/&lt;/</g; $membertitle =~ s/&gt;/>/g; $membertitle =~ s/&quot;/"/g;

ВЫШЕ ДОБАВЬТЕ:
Код:
$filewithtitlestoopen = "$ikondir" . "members/$jmembername" . "_title.ttl"; 
if (-e $filewithtitlestoopen) {
open(FILEOFTITLES,"$filewithtitlestoopen");
@membertitles = <FILEOFTITLES>;
foreach $pairofmembertitles (@membertitles) {
($forumnumberfortitle, $forumtitleformember) = split(/\<\>/, $pairofmembertitles);
if ($forumnumberfortitle eq "$inforum") {
$membertitle = $forumtitleformember;
}
}
close(FILEOFTITLES);
}

Теперь сохраните и закройте topic.cgi, откройте setmembers.cgi
НАЙДИТЕ:
Код:
&checkVALIDITY; 

НИЖЕ ДОБАВЬТЕ:
Код:
##### Custom titles in forums 
@params = $query->param;
foreach (@params) {
$theparam = $query->param($_);
$theparam =~ s/\@/\\\@/g;
$theparam = &unHTML("$theparam");
${$_} = $theparam;
if ($_ ne 'action') {
$printme .= "\$" . "$_ = \"$theparam\"\;\n";
}
}
##### End of custom titles in forums

НАЙДИТЕ:
Код:
$action          = $query -> param('action'); 
$checkaction = $query -> param('checkaction');
$inletter = $query -> param('letter');
$inmember = $query -> param('member');
$inmember = &unHTML("$inmember");
$action = &unHTML("$action");

НИЖЕ ДОБАВЬТЕ:
Код:
##### Custom titles in forums 
$StatusCount = $query->param('StatusCount');
$addstatus = $query->param('addstatus');
$howmany = $query->param('howmany');
##### End of custom titles in forums

НАЙДИТЕ:
Код:
$inmembername = cookie("adminname"); 
$inpassword = cookie("adminpass");

НИЖЕ ДОБАВЬТЕ:
Код:
##### Custom titles in forums 
for($i=1; $i<=$StatusCount; $i++) {
$forumnumber = "forumnumber_" . "$i";
$forumstatustext = "forumstatustext_" . "$i";
$forumstatusdel = "forumstatusdel_" . "$i";

$$forumnumber = $query->param("$forumnumber");
$$forumstatustext = $query->param("$forumstatustext");
$$forumstatusdel = $query->param("$forumstatusdel");
}
##### End of custom titles in forums

НАЙДИТЕ:
Код:
my %Mode = (  
'updatecount' => \&docount,
'viewletter' => \&viewletter,
'edit' => \&edit,
'deletemember' => \&deletemember,
'unban' => \&unban
);

ЗАМЕНИТЕ это на код:
Код:
my %Mode = (  
'updatecount' => \&docount,
'viewletter' => \&viewletter,
'edit' => \&edit,
'deletemember' => \&deletemember,
'unban' => \&unban,
'statusSettings' => \&statusSettings,
'submitStatusSettings' => \&submitStatusSettings
);

НАЙТИ:
Код:
</tr><tr> 
<td colspan=2 bgcolor=#EEEEEE align=center><input type=submit value=$ibtxt{'0039'} name=submit></form></td>
</tr>

ВЫШЕ ДОБАВИТЬ:
Код:
</tr><tr> 
<td colspan=2 bgcolor=#EEEEEE align=center><a href=$boardurl/$thisprog?action=statusSettings&member=$inmember><font size=2><b><<Настроить отдельные статусы для разделов>></b></font></a>
<hr width=100%>
</td>

НАЙДИТЕ:
Код:
$filetounlink = "$ikondir" . "members/$inmember.cgi"; 
unlink $filetounlink;

НИЖЕ ДОБАВЬТЕ:
Код:
$filetocheck = "$ikondir". "messages/$inmember" . "_title.ttl"; 
if (-e $filetocheck) {
$filetounlink = "$ikondir". "messages/$inmember" . "_title.ttl";
unlink $filetounlink; }

Теперь В САМЫЙ КОНЕЦ ФАЙЛА ДОБАВЬТЕp код:
Код:
### Set statuses subs by Alexander Ipp 

sub statusSettings {

$backgroundcolor = "bgcolor=\"#ffffff\"";
$StatusDB = "$ikondir" . "members/$inmember" . "_title.ttl";

$totalstatuses = 0;
@statuslines;

if (-e "$StatusDB") {
open (FILE, "<$StatusDB") or die ("Can't open file: $StatusDB!");
while(<FILE>) {
push(@statuslines,$_);
}
close(FILE);
chmod (0777, "$StatusDB");
}
else {
$DBExists = "false";
}

print <<StatusSettingsTop;
<tr>
<td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font face=verdana color=#333333 size=3><b>Настройки статусов участника $inmember в разделах</b>
</td></tr>
<tr><td>
</td></tr><tr><td>
<center>
<P>
<FORM ACTION="setmembers.cgi" METHOD="POST" NAME="THEFORM">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="submitStatusSettings">
<INPUT TYPE="HIDDEN" NAME="member" VALUE="$inmember">
<center>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<TR>
<td bgcolor="#000000">
<table border=0 cellspacing=0 width=100%>
<tr bgcolor="#EEEEEE">
<td align=center><b><FONT SIZE="1" FACE="Verdana, Arial">Убрать?</font></b></td>
<td align=center><b><FONT SIZE="2" FACE="Verdana, Arial">Номер раздела</font></b></td>
<td align=center><b><FONT SIZE="2" FACE="Verdana, Arial">Текст статуса</font></b></td>
<td align=center><b><FONT SIZE="2" FACE="Verdana, Arial">Просмотр</font></b></td>
</tr>
StatusSettingsTop

foreach $statusline (@statuslines) {
chomp($statusline);
$totalstatuses++;
unless ($DBExists eq "false") {
($forumnumber, $forumstatustext) = split(/\<\>/, $statusline);
$id = $totalstatuses;
}
else {
$forumstatustext = $statusline;
$id = $totalstatuses;
}
$forumstatustexthtml = $forumstatustext;
$forumstatustext =~ s/&lt;/</g;
$forumstatustext =~ s/&gt;/>/g;
$forumstatustext =~ s/&quot;/"/g;

print <<StatusData;
<tr $backgroundcolor>
<td align=center><input type="CHECKBOX" name="delete_$id" value="Yes"></td>
<td align=center><input type="text" name="forumnumber_$id" value="$forumnumber" size=5></td>
<td align=center><input type="text" name="forumstatustext_$id" value="$forumstatustext" size=35></td>
<td align=center><font size=$dfontsize2>$forumstatustexthtml</font></td>
</tr>
StatusData
}

for($i=1; $i<=$howmany; $i++) {
$id = $i+$totalstatuses;
print <<AddedStatuses;
<tr $backgroundcolor>
<td align=center><input type="CHECKBOX" name="delete_$id" value="Yes"></td>
<td align=center><input type="text" name="forumnumber_$id" value="" size=5></td>
<td align=center><input type="text" name="forumstatustext_$id" value="" size=35></td>
<td align=center></td>
</tr>
AddedStatuses
}

$totalstatuses = $totalstatuses + $howmany;

print <<StatusSettingsBottom;
<TR bgcolor="#EEEEEE">
<td colspan=4><b><FONT SIZE="1" FACE="Verdana, Arial"> Добавить ещё статусы участнику?</b> Если вы хотите добавить ещё статусы, пометьте это поле и укажите желаемое число добавляемых статусов.</font></td>
</tr>
<tr bgcolor="#ffffff">
<td align=center><input type="CHECKBOX" name="addstatus" value="Yes"></td>
<td align=left><INPUT TYPE="TEXT" NAME="howmany" SIZE=4 MAXLENGTH=25></td>
<td colspan=2></td>
</tr>
<TR bgcolor="#EEEEEE">
<td colspan=4><FONT SIZE="1" FACE="Verdana, Arial"><b>Примечание:</b> Возможно использование HTML. HTML отображается в колонке "Просмотр".</font></td>
</tr>
</td></tr></table>
</td></tr></table>
<P>
<INPUT TYPE="HIDDEN" NAME="StatusCount" VALUE="$totalstatuses">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Подтвердить настройки статусов">
</FORM>
</td>
</tr>
<tr><td colspan=2 bgcolor=#EEEEEE align=center><a href=$boardurl/$thisprog?action=edit&member=$inmember><font size=2><b><<Вернуться к редактированию участника>></b></font></a>
</td>
</tr>
StatusSettingsBottom

} #END INTRO SR ###

sub submitStatusSettings {

$backgroundcolor = "bgcolor=\"#ffffff\"";
$StatusDB = "$ikondir" . "members/$inmember" . "_title.ttl";

$number = 0;

open (STATUSFILE, ">$StatusDB") or die ("Can't open file: $SmilieDB!");
for($i=1; $i<=$StatusCount; $i++) {
$statusdel = "delete_$i";
if($$statusdel ne "Yes") {
$number++;
$forumnumber = "forumnumber_" . "$i";
$forumstatustext = "forumstatustext_" . "$i";
$statusline = "$$forumnumber" . "\<\>" . "$$forumstatustext\n";
unless($$forumnumber eq "" || $$forumstatustext eq "") {
print STATUSFILE ("$statusline");
}
}
}
close(STATUSFILE);
chmod (0777, "$StatusDB");
&statusSettings;
}

Сохраните, закройте setmembers.cgi
Зайдите в изменение свойств участника в Админцентре, внизу появится ссылка на настройку статусов участника в разделах. Можно пользоваться!
PS Обо всех ошибках - в форум.
PPS Хак написан криво (писалось на заре моего увлечения программированием) и переделан по-моему из чужого хака настройки смайлов, но он работоспособен. Может кому пригодится. :)
Создать тему для обсуждения статьи
Комментировать
»» Календарь:
ПнВтСрЧтПтСбВс
12345
6789101112
13141516171819
20212223242526
27282930
»» Конференция:
Главная
Регистрация
Файловый архив
Топ-лист
Поиск
Вход
Кто on-line:
Участники: 1
Гости: 7
Статистика:
Тем: 28570
Сообщений: 1922
Участников: 14077
»» Популярные:
Склейка ... (10144)
Быстрая ... (5490)
Различны... (5301)
Самостоя... (2603)
Просмотр... (2569)
Сортиров... (2485)
Обзор ко... (2326)
Мой бан ... (2237)
Нумераци... (2069)
Настройк... (2046)


Humorist.RU - Развлекательные страницы



На базе скрипта RFBoard | Разработка скрипта: AlexanderIpp | Сделано в России  
© 2001-2005 AlexanderIpp & FAF/RFBoard team | О защите личной информации | Правила конференции