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

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

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

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

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

ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Первым делом создаёте диру cgi-bin/ikonboard/cusomviews, и вешаете на неё права 777.
 
Затме открывате ikonboard.cgi, и находите там нечто вроде:
Код:
### Open up the allforums file.
 
$filetoopen = "$ikondir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen") or die "Вы создавали форумы?";
  flock FILE,1;
@forums = <FILE>;
close(FILE);
 
foreach $forum (@forums) { #start foreach @forums
        chomp $forum;
        ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);
        $rearrange = ("$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$forumid");
        push (@rearrangedforums, $rearrange);
 
} # end foreach (@forums)
@finalsortedforums = sort numerically(@rearrangedforums);

И меняете всё это дело на:
Код:
$filetoopen = "$ikondir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen") or die "Вы создавали форумы?";
  flock FILE,1;
@forums = <FILE>;
close(FILE);
 
if( -e "${ikondir}customviews/$inmembername.cgi" )
{
        %id2data = ();
        foreach $forum( @forums )
        {
                ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);
                $id2data{$forumid} = $forum;
        }
 
        open( CV, "${ikondir}customviews/$inmembername.cgi" );
        @cv = <CV>;
        close( CV );
 
        $output .= '';
        $categoryplace = 1;
        $category = 'Непонятно какая категория';
@sortedforums = ();
 
        foreach $cur( @cv )
        {
                if( $cur =~ /category=(.+)/i )
                {
                        $category = $1;
                        ++$categoryplace;
                }
                elsif( $cur =~ /(\d+)(=(.*))?/ )
                {
                        #getting info about forum
                        ($forumid, $dummy, $dummy, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$id2data{$1});
                        if( $2 )
                        {
                                $forumdescription = $3;
                        }
                        push( @finalsortedforums, "$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$1" );
                }
        }
}
else
{
        foreach $forum (@forums) { #start foreach @forums
                chomp $forum;
                ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);
                $rearrange = ("$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$forumid");
                push (@rearrangedforums, $rearrange);
 
        } # end foreach (@forums)
@finalsortedforums = sort numerically(@rearrangedforums);
}

Это всё в board.cgi. В общем-то это весь хак Только надо ещё добавить поле в профиль для редактирование custom-вида, ну и помошь...
 
Открываете profile.cgi, ищете?
Код:
            $avatarhtml = qq~
            <script language="javascript">
            function showimage()
            {
            //alert("$imagesurl/avatars/"+document.creator.useravatar.options[document.creator.useravatar.selectedIndex].value+".gif");
                document.images.useravatars.src="$imagesurl/avatars/"+document.creator.useravatar.options[document.creator.useravatar.selectedIndex].value+".gif";
                }
            </script>
            <tr>
                <td class=bgc1 bgcolor=#EBEFF5 valign=top><b>&#192;&#226;&#224;&#242;&#240;:</b><br>&#194;&#251; &#236;&#238;&#230;&#229;&#242;&#229; &#226;&#251;&#225;&#232;&#240;&#224;&#242;&#252; &#234;&#224;&#240;&#242;&#232;&#237;&#234;&#243;, &#234;&#238;&#242;&#238;&#240;&#224;&#255; &#225;&#243;&#228;&#229;&#242; &#239;&#238;&#234;&#224;&#231;&#224;&#237;&#224; &#239;&#238;&#228; &#194;&#224;&#248;&#232;&#236; &#232;&#236;&#229;&#237;&#229;&#236;, &#234;&#238;&#227;&#228;&#224; &#194;&#251; &#238;&#242;&#239;&#240;&#224;&#226;&#232;&#242;&#229; &#241;&#238;&#238;&#225;&#249;&#229;&#237;&#232;&#229;</td>
                <td class=bgc1 bgcolor=#EBEFF5>
                    <select name="useravatar" size=6 onChange="showimage()">
                    $selecthtml
                    </select>
                    <img src="$imagesurl/avatars/$currentface.gif" name="useravatars" width="64" height="64" border=0 hspace=15>
                </td>
            </tr>
            ~;
            } # end avatar if

И за ним добавляете:
Код:
if( ! -e "${ikondir}customviews/$inmembername.cgi" )
{
$has_customview = '';
$customview = '';
 
$filetoopen = "$ikondir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen") or die "&#194;&#251; &#241;&#238;&#231;&#228;&#224;&#226;&#224;&#235;&#232; &#244;&#238;&#240;&#243;&#236;&#251;?";
 flock FILE,1;
@forums = <FILE>;
close(FILE);
foreach $forum (@forums)
{
chomp $forum;
($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);
$dummy_value = $categoryplace*100+$forumid;
$rearrange = ("$dummy_value|$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$forumid");
push (@rearrangedforums, $rearrange);
 
}
@finalsortedforums = sort numerically(@rearrangedforums);
$prev_cat = 0;
foreach $sortedforums (@finalsortedforums)
{
   ($dummy_value,$categoryplace, $category, $forumname, $forumdescription, $forummoderator, $htmlstate, $idmbcodestate, $privateforum, $startnewthreads, $lastposter, $lastposttime, $threads, $posts, $forumgraphic, $forumid) = split(/\|/,$sortedforums);
if( $prev_cat ne $categoryplace )
{
$customview .= "\n&nbsp;\n"."category=$category\n";
$prev_cat = $categoryplace;
}
$customview .= "$forumid\n";
}
}
else
{
$has_customview = 'checked';
$filetoopen = "${ikondir}customviews/$inmembername.cgi";
open( FILE, $filetoopen );
@cv_lines = <FILE>;
close( FILE );
$customview = '';
foreach $cv( @cv_lines )
{
$customview .= "$cv\n";
}
}
 

 
После
Код:
<tr>
<td class=bgc1 bgcolor=#EBEFF5><b>Подпись:</b><br>Введите Вашу подпись. Можно ввести только 3 строки.
<br>Вы можете использовать тэги IkonCode:<br>
Выделенный, Наклонный и http://www.yourdomain.com<p>Не используйте HTML</td>
<td class=bgc1 bgcolor=#EBEFF5><textarea size=20 name="newsignature" cols="40" rows="4">$signature</textarea></td>
</tr>

 
И после добавляете:

Код:
<tr>
<td class=bgc1 bgcolor=#EBEFF5><b>Настраиваемый вид форума.</b><br>Справку и номера форумов можно найти <a href="misc.cgi?action=customview">здесь</a>.</td>
<td class=bgc1 bgcolor=#EBEFF5><input type=checkbox name="has_customview" $has_customview>Собственный вид форума.<br><textarea size=20 name="customview" cols="40" rows="15">$customview</textarea></td>
</tr>

 
Ищете:
Код:
     $newpassword            = $query -> param('newpassword');
   $newshowemail           = $query -> param('newshowemail');
   $newhomepage            = $query -> param('newhomepage');
   $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');

 
И после добавляете:
Код:
$has_customview        = $query -> param('has_customview');
$customview             = $query -> param('customview');

 
После:
Код:
        $newsignature           = &unHTML("$newsignature");
        $inuseravatar           = &cleaninput("$inuseravatar");
   $newpassword            = &cleanarea("$newpassword");
   $newshowemail           = &cleanarea("$newshowemail");
   $newhomepage            = &cleanarea("$newhomepage");
   $newicqnumber           = &cleanarea("$newicqnumber");
   $newlocation            = &cleanarea("$newlocation");
   $newinterests           = &cleanarea("$newinterests");
   $newtimedifference      = &cleanarea("$newtimedifference");
   $newemailaddress        = &cleanarea("$newemailaddress");

 
Добавляете:
Код:
if( $has_customview ne 'on' )
{
if( -e "${ikondir}customviews/$inmembername.cgi" )
{
unlink "${ikondir}customviews/$inmembername.cgi";
}
}
else
{
$filetoopen = ">${ikondir}customviews/$inmembername.cgi";
$customview =~ s/\n/\n\n/;
open( FILE, $filetoopen );
print FILE $customview;
close( FILE );
}

 
С profile.cgi закончили.
 
Теперь открываете misc.cgi, и после
Код:
if (!$inmembername) { $inmembername = "Guest"; }
Добавляете:
Код:
### customview ###
if( $action eq 'customview' ) { &customview; }

 
В самом конце файла дописываете:
Код:
sub customview
{
    $filetoopen = "$ikondir" . "data/allforums.cgi";
    $filetoopen = &stripMETA($filetoopen);
    open(FILE, "$filetoopen") or die "Вы создавали форумы?";
      flock FILE,1;
    @forums = <FILE>;
    close(FILE);
 
    foreach $forum (@forums)
    {
        chomp $forum;
        ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);
        $dummy_value = $categoryplace*100+$forumid;
        $rearrange = ("$dummy_value|$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$forumid");
        push (@rearrangedforums, $rearrange);
 
    }
 
    @finalsortedforums = sort numerically(@rearrangedforums);
    $forums_list = '';
 
    $prev_cat = 0;
    foreach $sortedforums (@finalsortedforums)
    {
        ($dummy_value,$categoryplace, $category, $forumname, $forumdescription, $forummoderator, $htmlstate, $idmbcodestate, $privateforum, $startnewthreads, $lastposter, $lastposttime, $threads, $posts, $forumgraphic, $forumid) = split(/\|/,$sortedforums);
        if( $prev_cat ne $categoryplace )
        {
            $prev_cat = $categoryplace;
            $forums_list .= "&nbsp;\n$category\n";
        }
        if( length( $forumid ) < 2 ) { $forumid = "&nbsp;$forumid"; }
        $forums_list .= "&nbsp;&nbsp;&nbsp;&nbsp;$forumid $forumname\n";
    }
 
    &title;
 
    $output .= qq~
<center><table width-"98%"><tr><td>
    Справки по настройке главной страницы пока нет... Ждите, ждите, ждите...
    <br><br><br><pre>$forums_list</pre>
</td></tr></table></center>
~;
 
    print header('text/html; charset=windows-1251');
 
    &output(
        -Title   => "$boardname",  
        -ToPrint => $output,  
        -Version => $versionnumber  
        );
}

 
Это всё.
 
 
 
 
оффтоп: Ипп говорил у кого-то есть хак фильтра на форумс.цги... Не поделиться ли он. Влом самому писать (А надо...)
 
Добавлено
Половина форматирования съехала. Батва, сделай пожалуйста табуляцию равной четырём пробелам, а то нервирует...

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 19:31 02-06-2002
StasM



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а что это ты всё написал, я имею ввиду что это будет менять?

Всего записей: 844 | Зарегистр. 03-05-2002 | Отправлено: 19:45 02-06-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
StasM
Позволяет пользователю самому задавать порядок форумов и "создавать новые категории". Разумеется все эти изменения будет видеть лишь он один. Я до краша та-а-акое сообщение откатал о том как этим пользоваться... А ща как-то лень всё эту многокилобайтную байду перепечатывать

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 19:59 02-06-2002
StasM



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Значит стоящая вещь?! Ну что ж, попробую установить!

Всего записей: 844 | Зарегистр. 03-05-2002 | Отправлено: 20:32 02-06-2002
ivank



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

Цитата:
Значит стоящая вещь?!

Это каждый решает сам -- пока нормальную документацию к нему никто не напишет (нет у меня к "писательству" таланту), то никто пользоваться этим не будет-с... Я лично считаю подобную весчь очень даже удобной... (Иначе б не писал )
 

Цитата:
 Ну что ж, попробую установить!
Вот с этим могут быть проблеммы -- Я делал это неделю назад, так что мог не всё что надо сделать описать.

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 20:36 02-06-2002
Grey2002



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

Цитата:
и "создавать новые категории".  

что это знaчит ?

----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 08:35 03-06-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Grey2002
Ну например, у меня на форуме мой конфиг таков:
Код:
category=Модерируем-с...
18
25
 
category=Любимые
16
14
13
22
27
20
17
28
 
category=Microsoft Windows  
1
3
4
5
 
category=Linux
6
8
 
category=Компьютеры
9
10
18
22
28
 
category=Интернет
17
20
27
 
category=Общий
13
14
16
24
 
category=Зона тестирования
25

Табличку Номер форума <-> Его название можно посмотреть с помощью фичи прикрученой в misc.cgi.
 
Таким образом я "добавил" две категории, которые вижу только я. И форумы туда можно засунуть любые...

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 09:35 03-06-2002
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ivank
ага, спасибо, что объяснил и ещё, что такое "недохак"?

----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 11:21 03-06-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Grey2002
Это значит, что как хак оно не планировалось и поэтому инструкции по установке написаны очень сумбурно и беспорядочно. Да и документации как им пользоваться нет-с...

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 12:51 03-06-2002
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ivank
и ещё вопрос, как я понял по коду, то эти настройки настраиваются в профиле, а можно всё это вынести отдельным скриптом, как сдесь? как?

----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 12:55 03-06-2002
ivank



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

Цитата:
, а можно всё это вынести отдельным скриптом, как сдесь?
Не понял... Как здесь?
 
А вынести настройки в отдельный скрипт можно легко -- только на фиг?

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 17:11 03-06-2002
suslik_s_gitaroy



Хомяк под кайфом
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ivank
недохак не работает...

Всего записей: 1791 | Зарегистр. 23-12-2001 | Отправлено: 17:30 03-06-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
suslik_s_gitaroy
Дык надо говоить что не работает. Ты установил всё так как я сказал? (хинт: поиск по этим кускам скорее всего работать не будет -- всё чуть-чуть по меняно по сравнению со стандартным вариантом).

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 18:01 03-06-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ivank
Спасибо!
Класс!
Наконец-то толковый народ в конфу пошёл.
Ща пошёл ставить.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 19:43 04-06-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexander Ipp
Ещё не факт что встанет...

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 19:59 04-06-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ivank
Постаааавим.
Главное идея.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 20:56 04-06-2002
N_Vova



Местный панк
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
так оно пашет или нет?

Всего записей: 765 | Зарегистр. 24-10-2001 | Отправлено: 00:38 29-06-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
N_Vova
У меня и Иппа вполне себе работает.

----------
ivank
http://ivank.oszone.net

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 13:29 29-06-2002
N_Vova



Местный панк
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ivank
ну у вас с ипп все работать будет
а я могу и налажать
 
 
Добавлено
Все вроде пашет!!!!
еще бы кнопочка была "set defaults"  
ну да ладно
спасибо за хак!
 
Добавлено
а там есть даже "Собственный вид форума."

а нет жилания апгрейдить, чтоы пользователь сам выбирал, как разделять тему?
 
Добавлено
хех, рано я радовался
хак то не пашет
в профиле все меняю, а когда выхожу к списку, все по старому.
а когда возврощаюсь в профиль, там тоже старые установки!
где я налажал?

Всего записей: 765 | Зарегистр. 24-10-2001 | Отправлено: 19:02 29-06-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ivank
Вообще тут одналажа есть. Вместо в путях к файлам надо юзать то же, но с поряезанными пробелами:
Код:
 
$cleaninmembername = $inmembername;
$cleaninmembername =~ s/ /_/g;

И открывать уже:
$cleaninmembername.cgi
Иначе в никах с пробелами м.б. байда.
А так вроде всё должно пахать. Хотя у меня кусок
Код:
foreach $forum (@forums)  
{  
chomp $forum;  
($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);  
$dummy_value = $categoryplace*100+$forumid;  
$rearrange = ("$dummy_value|$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$forumid");  
push (@rearrangedforums, $rearrange);  
 
}  
@finalsortedforums = sort numerically(@rearrangedforums);  

Иначе сделан. Не так странно...
N_Vova

Цитата:
еще бы кнопочка была "set defaults"

Ну сделай на JS...

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 20:33 29-06-2002
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум 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