Этой статьей я продолжаю серию заметок Печального о дизайне ikonboard 2.x. В ней я опишу дизайн forums.cgi - списка топиков (тем) в конференции.
Изменение дизайна будет рассматриваться на примере Ikonboard 2.1.9rus_plus2. Её вы можете взять в файловом архиве Ru-board. Для редактирования рекомендую использовать Aditor.
Внимание! Перед редактированием файлов не забудьте сделать бэкап!
Итак, поехали...
Открываем forums.cgi
Начнём сверху, сразу скажу, что эту часть :
pechalny описывал в своей статье, поэтому начинаем ниже...
Находим этот комментарий:
# Print the header
после него, между
$output .= qq~
и
~;
(в дальнейшем я не буду указывать, что выводимые html коды расположены между ними) идёт html код :
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr>
<td width=30% rowspan=2>$forumgraphic</td>
<td align=left valign=top>
<font face="$font" color=$fontcolormisc size=$dfontsize2>
<img src="$imagesurl/images/closedfold.gif" border=0>
<a href="$forumsummaryprog"> $boardname</a>
<br>
<img src="$imagesurl/images/bar.gif" border=0>
<img src="$imagesurl/images/openfold.gif" border=0> $forumname
</td>
</tr>
$uservisitdata
</td>
</tr>
</table>
<br>
который отвечает за вывод этой части:
На нём подробно останавливаться не буду, скажу лишь, что переменная $uservisitdata образуется в ikon.lib в sub title, там же вы её сможете отредактировать, вот её код:
$uservisitdata= qq~
<tr>
<td valign=bottom align=right>
<font face=$font color=$menufontcolor size=$dfontsize1>
<a href="$forumsprog?forum=$inforum&action;=resetposts">
$ibtxt{'0118'}</a> &;nbsp;
<a href="javascript:openScript('$helpprog?helpon=$helptype',500,400)">
[ $ibtxt{'0114'} ]</a><br>» $lastvisitdata «
</font>
</td>
</tr>
~;
отвечает эта переменная за вывод этой части:
спускаемся ниже...
следующая часть кода находится после комментария:
# Print the forum top bar
Вот она:
<table cellpadding=0 cellspacing=1 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr>
<td>
<table cellpadding=6 cellspacing=0 border=0 width=100%>
<tr>
<td valign=middle align=left width="100%" bgcolor="$menubackground" nowrap>$toptopicpages</td>
<td valign=middle align=right bgcolor="$menubackground" nowrap>
<font face="$font" color=$fontcolormisc size=$dfontsize1>
<b>$ibtxt{'0604'}</b> $modoutput
</td>
</tr>
</table>
</tr>
</td>
</table>
<br>
этот код выводит вот это:
Так-с, тут остановимся поподробнее, первая переменная $toptopicpages пишется в этом же файле, в forums.cgi в двух видах:
$topicpages = qq~<font face="$font" color=$menufontcolor size=$dfontsize1>$ibtxt{'0602'}</font>~;
и
$toptopicpages = qq~<font face="$font" color=$menufontcolor size=$dfontsize1><b>$ibtxt{'0603'}</b> [ $ibtxt{'0620'} ]~;
Если количество топиков меньше заданного числа деления на страницы, то выполняется первый код, который выводит: "Единственная страница форума", если же больше, тогда выполняется второй, который выводит: "Все страницы форума [ номера страниц ]"
А переменная $modoutput выводит список модераторов, она прописывается в ikon.lib также в двух вариантах (в зависимости от количества модераторов). Прописывается она либо так:
$modoutput .= qq~<a href="$profileprog?action=show&member;=$cleanedmodname">$name</a>, ~;
либо так:
$modoutput .= qq~<a href="$profileprog?action=show&member;=$cleanedmodname">$name</a>~;
Первый вариант отвечает за вывод имён модераторов через запятую, если их больше одного, второй - если модератор один.
Спускаемся дальше по коду.
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr>
<td>
<table cellpadding=3 cellspacing=1 border=0 width=100%>
<tr>
<td bgcolor=$titlecolor width=50% colspan=2>
<font face="$font" color=$titlefontcolor size=$dfontsize1><b>$newthreadbutton</b></td>
<td bgcolor=$titlecolor align=left width=25%>
<font face="$font" color=$titlefontcolor size=$dfontsize1>
<b>$ibtxt{'0621'}</b></td>
<td bgcolor=$titlecolor width=25%>
<font face="$font" color=$titlefontcolor size=1><b>$ibtxt{'0013'}</b>
</td>
</tr>
отвечает за вывод этой части:
Тут с переменными, я думаю, всё понятно.
Идём дальше.
<tr>
<td bgcolor=$forumcolortwo width=5% align=center>
<font face="$font" color=$forumfontcolor size=$dfontsize2>$topicicon</td>
<td bgcolor=$forumcolortwo width=5%>
<font face="$font" color=$forumfontcolor size=$dfontsize2><b>$topictitle</b>
$pagestoshow<br>
<font size=$dfontsize1>$topicdescription</font></td>
<td bgcolor=$forumcolortwo align=left valign=middle>
<font face="$font" color=$forumfontcolor size=$dfontsize1>
<b>$threadposts</b> $ibtxt{'0011'}, $ibtxt{'0601'} <b>$threadviews</b> $ibtxt{'0614'}
<br>$ibtxt{'0615'} <a href="$profileprog?action=show&member;=$startedbyfilename">
<b>$startedby</b></a></td>
<td bgcolor=$forumcolorone>
<font face="$font" color=$forumfontcolor size=$dfontsize2>$lastpostdate
<br>$ibtxt{'0616'} <b>$lastposter</b>
</td>
</tr>
он выводит :
Вот описание переменных в этой части:
$topicicon - выводит иконку данной темы (открытая, закрытая и т.д.)
$topictitle - выводит заголовок темы со ссылкой во внутрь
$pagestoshow - выводит переход на по страницам темы если их больше одной
$topicdescription - выводит описание темы
$threadposts - выводит кол-во записей в теме
$threadviews - выводит кол-во просмотров темы
$startedby - вывод имени пользователя, начавшего тему.
В данном случае код выглядит так:
<a href="$profileprog?action=show&member;=$startedbyfilename"><b>$startedby</b></a>
т.е. сразу идёт ссылка на просмотр профиля пользователя.
$lastpostdate - дата последней записи в теме
$lastposter - вывод имени последнего писавшего в теме
Следующий код выглядит так:
<tr>
<td bgcolor=$titlecolor colspan=4>
<font face="$font" color=$titlefontcolor size=$dfontsize1>
<b>$newthreadbutton</b></td>
</tr></table></td>
</tr></table>
<table align=center width=$tablewidth bgcolor=$menubackground>
<tr>
<td align=left>$topicpages</td><td align=right>$jumphtml</td></tr></table>
выводит этот кусок:
Переменная $jumphtml в данном случае выводит переход по форумам. Пишется она в ikon.lib.
Следующий код :
<table align=center width=$tablewidth>
<tr>
<td align=right>
<font face="$font" color=$menufontcolor size=$dfontsize1>
$ibtxt{'0623'}
<a href="$forumoptionsprog?action=prune&forum;=$inforum">$ibtxt{'0622'}</a>
</td>
</tr>
</table>
Он выводится в том случае, если смотрящий - администратор или модератор. Код выводит: "Опции форума: Сократить Форум".
Осталось немного :)
$output .= qq~
<table align=center width=$tablewidth>
<tr>
<td align=left>
<img src="$imagesurl/images/$topiclocked" border="0"></td>
<td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0606'}</font></td>
</tr>
<tr>
<td align=left><img src="$imagesurl/images/$topicnonew" border="0"></td>
<td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0607'}</font></td>
</tr>
~;
if ($inmembername ne "$ibtxt{'0043'}") {
$output .= qq~
<tr>
<td align=left>
<img src="$imagesurl/images/$topicnew" border="0"></td>
<td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0608'}</font></td>
</tr>
<tr>
<td align=left valign=middle>
<img src="$imagesurl/images/$topichot" border="0">
<img src="$imagesurl/images/$topichotnonew" border="0"></td>
<td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0609'}
$hottopicmark $ibtxt{'0011'}</font></td>
</tr>
~;
В этом коде идёт проверка на гостя. Если смотрящий человек - гость, то скрипт выводит на экран только то, что выше:
if ($inmembername ne "$ibtxt{'0043'}") {
Если смотрящий - зарегистрированный пользователь, на экран выводится то, что до и после вышенаписанного кода.
Значит, если пользователь гость, то выводится вот это:
А если не гость, то:
Практически всё, вот последний код:
<form action="$thisprog" method=POST>
<input type=hidden name="forum" value="$inforum">
<input type=hidden name="action" value="accessrequired">
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth
bgcolor=$tablebordercolor align=center>
<tr>
<td>
<table cellpadding=3 cellspacing=1 border=0 width=100%>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=4 align=center>
<font face="$font" color=$fontcolormisc size=$dfontsize2>
<b>$ibtxt{'0611'}</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle colspan=4>
<font face="$font" color=$fontcolormisc size=$dfontsize1>
<br>$ibtxt{'0612'}<br>
$ibtxt{'0613'}<p></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle colspan=2>
<font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0306'}</font></td>
<td bgcolor=$miscbackone valign=middle colspan=2>
<input type=text name="membername" value="$inmembername" size=20>
<a href="$registerprog">
<font face="$font" color=$fontcolormisc size=$dfontsize1>
$ibtxt{'1417'}</font></a></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle colspan=2>
<font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0307'}</font></td>
<td bgcolor=$miscbackone valign=middle colspan=2>
<input type=password name="password" value="$inpassword" size=20>
<font face="$font" color=$fontcolormisc size=$dfontsize1><a href="$profileprog?action=lostpass">$ibtxt{'2411'}</a>
</font></td></tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=4 align=center>
<input type=submit name="submit" value="$ibtxt{'0104'}"></td></tr></table></td></tr></table>
</form>
Этот код выводит форму входа в приватный форум, по умолчанию она выглядит так:
Это всё. Разрешите раскланяться. Спасибо за внимание.
См. также Обзор форума IkonBoard V. 2 (карта форума) » Статьи, хаки - вся IkonBoard V. 2 в одной теме
|