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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки

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

lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В стандартной IB2 внизу сообщения каждого  пользователя пишется "Всего записей" и "Дата регистрации". Это хорошо, но только когда дело не касается гостя. Гостю выводится в первом случае "N/A", во втором - "Never", что, на мой взгляд, не очень красиво. Лучше не выводить ничего, впрочем,это дело вкуса.
 
Для тех, кто со мной согласен, предлагается готовый вариант правки кода, после которого внизу сообщения гостя не будет писаться ничего, кроме даты собщения.
 
Файл для правки - topic.cgi, не забудьте сделать бэкап.
 
Меняем:
 

Код:
 
 &getmember("$membername");
        $mname=$membername;  
        $m_membername = $membername;
        $m_membername =~ y! !_!; &set_up_guest() unless (-e $ikondir . 'members/'.$m_membername.'.cgi');
         
        if ($membername eq "$ibtxt{'0043'}") { $joineddate = "Never"; }
elsif ($joineddate) {
            $joineddate = $joineddate + ($timedifferencevalue*3600) + ($timezone*3600);
            $joineddate = &joineddate("$joineddate");
            }
            else { $joineddate = "$ibtxt{'3009'}"; }
 
        if (!$numberofposts) { $numberofposts = "$ibtxt{'3009'}"; }
        if ($membername eq "$ibtxt{'0043'}") { $numberofposts = "$ibtxt{'3009'}"; }
         

         
        На:
         

Код:
 
   &getmember("$membername");
        $mname=$membername;  
        $m_membername = $membername;
  $memberfilename = $membername;
        $memberfilename =~ y/ /_/;

 
        $m_membername =~ y! !_!; &set_up_guest() unless (-e $ikondir . 'members/'.$m_membername.'.cgi');
       if ($membername eq "$ibtxt{'0043'}") {  
        #$joineddate = "Never";
        undef $datareg;
         }
else {
            $joineddate = $joineddate + ($timedifferencevalue*3600) + ($timezone*3600);
            $joineddate = &joineddate("$joineddate");
            $datareg=qq(Зарегистр.: <b>$joineddate</b>&#160;|);
            }
            #else {  
            #$joineddate = "$ibtxt{'3009'}";  
            #}
 
        if (!$numberofposts) {  
        $numberofposts = "$ibtxt{'3009'}";  
        undef $kolvomes;
        }
        else{
        $kolvomes=qq(Всего записей: <b>$numberofposts</b>&#160;|);
        }
        if ($membername eq "$ibtxt{'0043'}") {  
        #$numberofposts = "$ibtxt{'3009'}";  
        undef $kolvomes;
        }
     
 
 
 
Старый вариант вывода просто закомментирован, можете убрать его.
 
Далее просто выводим эти переменныеэ.
Меняем:
 

Код:
 
<td class="bottomline" bgcolor="$postbackcolor">
<hr size=1 width=100% color=$tablebordercolor>
                    <font face="$font" color=$postfontcolor size=$dfontsize1>$ibtxt{'0212'} <b>$numberofposts</b> | $ibtxt{'3012'} <b>$joineddate</b> | $ibtxt{'0319'}: <b>$postdate</b>$view_ip</font>
        </td>
         
         

         
На:
 

Код:
 
 
<td class="bottomline" bgcolor="$postbackcolor">
<hr size=1 width=100% color=$tablebordercolor>
                    <font face="$font" color=$postfontcolor size=$dfontsize1>$kolvomes $datareg $ibtxt{'0319'}: <b>$postdate</b>$view_ip</font>
        </td>
 
 
       
 
 
 
Немножко поясню, хотя, не знаю, для кого, кто в коде разбирется, и так все понятно, кто не разбирается, все равно не поймет, ну, да поясню.
 

Код:
       
       if ($membername eq "$ibtxt{'0043'}") {  
        #$joineddate = "Never";
        undef $datareg;
         }
 
         
         Если юзер - Гость, переменная, хранящая вывод даты регистрации, неопределена.
 
 
Код:
 
 else {
            $joineddate = $joineddate + ($timedifferencevalue*3600) + ($timezone*3600);
            $joineddate = &joineddate("$joineddate");
            $datareg=qq(Зарегистр.: <b>$joineddate</b>&#160;|);
            }
 

 В другом случае - получаем дату регистрации и формируем ее вывод, который присваиваем переменной $datareg.
 
 С датой все, пошло количество постов.
 
Код:
 
    if (!$numberofposts) {  
        $numberofposts = "$ibtxt{'3009'}";  
        undef $kolvomes;
        }
        else{
        $kolvomes=qq(Всего записей: <b>$numberofposts</b>&#160;|);
        }
       
 
       
Если количество постов определить не удалось, его оставляем "N/A", а переменную $kolvomes не определяем. В другом случае переменной $kolvomes присваиваем вывод информации о количестве постов.
       
Код:
 
        if ($membername eq "$ibtxt{'0043'}") {  
        #$numberofposts = "$ibtxt{'3009'}";  
        undef $kolvomes;
        }
         

         
 Если юзер - Гость, переменную $kolvomes не определяем.
 
 
 
С датой и количеством постов покончено
 
Теперь у Гостя в посте убираем ссылку на профиль (зачем она у гостя?) и на "Сообщение" - ибо зачем же гостям получать персональные мессаги.
 
В том же файле меняем:
 

Код:
 
        if ($text_menu ne "yes"){        
            $privatemessagegraphic = qq~<a href="javascript:openScript('$messengerprog?action=new&touser=$memberfilename',600,400)"><img src="$imagesurl/images/$message" border=0></a>~;
         
            $profilegraphic = qq~<a href="$profileprog?action=show&member=$memberfilename"><img src="$imagesurl/images/$profile" border=0></a>~;
            $editgraphic    = qq~<a href="$postingsprog?action=edit&forum=$inforum&topic=$intopic&postno=$editpostnumber"><img src="$imagesurl/images/$edit" border=0></a>~;
            $partition      = qq~<img src="$imagesurl/images/$part" border=0>~;
        } else  {
             
            $privatemessagegraphic = qq~ | <a href="javascript:openScript('$messengerprog?action=new&touser=$memberfilename',600,400)">Сообщение</a>~;
            $profilegraphic = qq~ | <a href="$profileprog?action=show&member=$memberfilename">Профиль</a>~;
            $editgraphic    = qq~<a href="$postingsprog?action=edit&forum=$inforum&topic=$intopic&postno=$editpostnumber">Правка</a>~;
          }  
 

 
На:
 

Код:
 
 
   if (($text_menu ne "yes")&&($membername ne "$ibtxt{'0043'}")){        
   $privatemessagegraphic = qq~<a href="javascript:openScript('$messengerprog?action=new&touser=$memberfilename',600,400)"><img src="$imagesurl/images/$message" border=0></a>~;
   $profilegraphic = qq~<a href="$profileprog?action=show&member=$memberfilename"><img src="$imagesurl/images/$profile" border=0></a>~;
   $editgraphic    = qq~<a href="$postingsprog?action=edit&forum=$inforum&topic=$intopic&postno=$editpostnumber"><img src="$imagesurl/images/$edit" border=0></a>~;
   $partition      = qq~<img src="$imagesurl/images/$part" border=0>~;
     #Что это за переменная, я не знаю.... Ее можно просто убрать.
        }  
   
   elsif($membername eq "$ibtxt{'0043'}"){
  undef $privatemessagegraphic;
  undef $profilegraphic;
  $editgraphic    = qq~<a href="$postingsprog?action=edit&forum=$inforum&topic=$intopic&postno=$editpostnumber"><img src="$imagesurl/images/$edit" border=0></a>~;
  undef $partition;  #Повторяю, я не знаю, что это... Это можно убрать.
      }
         
        else  {
 $privatemessagegraphic = qq~ | <a href="javascript:openScript('$messengerprog?action=new&touser=$memberfilename',600,400)">Сообщение</a>~;
 $profilegraphic = qq~ | <a href="$profileprog?action=show&member=$memberfilename">Профиль</a>~;
 $editgraphic    = qq~<a href="$postingsprog?action=edit&forum=$inforum&topic=$intopic&postno=$editpostnumber">Правка</a>~;
     }    
 
 

 
В этом куске просто идет дополнительная проверка на гостя, и переменные, отвечающие за вывод соответсвующих картинок не определяются, если юзер - гость.
 
 
Все потестено на стандартной ИБ2, все работает, на оптимальность кода не претендую, пожелания что-то еще исправить при выводе постов принимаются.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 21:04 25-11-2002 | Исправлено: lynx, 04:24 01-12-2002
Xnom



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

Цитата:
Гостю выводится в первом случае "N/A", во втором - "Never"

Это убрать можно так:
в topic.cgi это

Код:
<tr>
<td class="bottomline" bgcolor="$postbackcolor">
<hr size=1 width=100% color=$tablebordercolor>
 <font face="$font" color=$postfontcolor size=$dfontsize1>$ibtxt{'0212'} <b>$numberofposts</b> | $ibtxt{'3012'} <b>$joineddate</b> | $ibtxt{'0319'}: <b>$postdate</b>$view_ip</font>
       </td>
             </tr>

меняем на  

Код:
 
 <tr>
<td class="bottomline" bgcolor="$postbackcolor">
<hr size=1 width=100% color=$tablebordercolor>
                    <font face="$font" color=$postfontcolor size=$dfontsize1>~;
                    if ($membername ne "$ibtxt{'0043'}") {$output .= qq~
                    $ibtxt{'0212'} <b>$numberofposts</b> | $ibtxt{'3012'} <b>$joineddate</b> |~;}
                    $output .= qq~ $ibtxt{'0319'}:</a> <b>$postdate</b>$view_ip</font>
       </td>
             </tr>

Проще получается

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 03:02 28-11-2002
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сори, был баг в моем коде, все пофиксено в первом посте.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 04:25 01-12-2002
DDfans



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

Код:
       $memberfilename = $membername;  
       $memberfilename =~ y/ /_/;

А какую роль играют эти дополения? У меня все и без них нормально работает...странно...
 

Код:
       $partition      = qq~<img src="$imagesurl/images/$part" border=0>~; #Что это за переменная, я не знаю.... Ее можно просто убрать.
       undef $partition;  #Повторяю, я не знаю, что это... Это можно убрать.

Эта $partition команда выводит картинку графический-разделитель.
Если на борде используется не текстовое меню, а графическое, то установка между графическими кнопками просто знака "|" будет выглядеть не слишком красиво по размерам. Поэтому, разработчики видать решили нарисовать картинку-разделитель размеров графических кнопок. В принципе знак один и тот же, но разница - в текстовом и графическом
 
Кстати по поводу вывода менюшек у гостя. Если ты не видишь смысла в выводе приватного сообщения и профиля у гостя, какой же тогда смысл в выводе для него - правки сообщения? По сути дела она тоже не нужна... Этож получится беспредел - любой зайдет и изменит текст
Я ее так же проигнорировал для гостя.
 
Помоги, plz, как разобрать строки установленного gender'a, чтобы так же не выводился он у гостя?
В topic.cgi только такие строки:

Код:
      if ($gender eq "male" ) {
        $gendergraphic = qq~<img src="$imagesurl/images/male.gif" border=0>~; }
       elsif ($gender eq "female" ) {
        $gendergraphic = qq~<img src="$imagesurl/images/female.gif" border=0>~; }
       else { $gendergraphic = qq~<img
src="$imagesurl/images/unknown_gender.gif" border=0>~; }
 
        $genderico = qq~$gendergraphic~;
 

Ну и соответственно команда $genderico, которая вывечивает результат пола юзера из его профайла, вставляется у меня под аватаром.
 
А как убрать у гостя пипы, если включено их использование?
...и как сделать, чтобы у гостя не выводилась строка для ввода пароля при посылки сообщения?

Всего записей: 59 | Зарегистр. 24-11-2002 | Отправлено: 20:04 16-12-2002
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DDfans
попробуй так
 

Код:
 
if($membername ne "Guest"){  
if ($gender eq "male" ) {  
        $gendergraphic = qq~<img src="$imagesurl/images/male.gif" border=0>~; }  
       elsif ($gender eq "female" ) {  
        $gendergraphic = qq~<img src="$imagesurl/images/female.gif" border=0>~; }  
       else { $gendergraphic = qq~<img  
src="$imagesurl/images/unknown_gender.gif" border=0>~; }  
}

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 20:54 16-12-2002
DDfans



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Xnom
О! Отличное решение до которого я так и не додумался
Но помогло не совсем...в некоторых топиках всеравно почему то оставались неопределенные полы для гостей, как я заметил именно в нечетных топиках почему то
Убил глюк вот чем:
       else { undef $gendergraphic; }
поставив его после последней скобки вашего кода и до
       $genderico = qq~$gendergraphic~;
В итоге получился идеально-безглючный код.

Код:
     if ($membername ne "Guest") {
      if ($gender eq "male") {
        $gendergraphic = qq~<img src="$imagesurl/images/male.gif" border=0>~; }
       elsif ($gender eq "female") {
        $gendergraphic = qq~<img src="$imagesurl/images/female.gif" border=0>~; }
       else { $gendergraphic = qq~<img src="$imagesurl/images/unknown_gender.gif" border=0>~; }
     }
       else { undef $gendergraphic; }
        $genderico = qq~$gendergraphic~;

Очень сильно благодарен!!! Заценил - работает как надо
Спасибище!
 
lynx
Оставшиеся вопросы в силе...выручай, plz...

Всего записей: 59 | Зарегистр. 24-11-2002 | Отправлено: 00:42 17-12-2002
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DDfans
Так и все остальные вопросы решаются проверкой на имя пользователя

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 00:50 17-12-2002
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DDfans
 
 
Цитата:
Оставшиеся вопросы в силе...выручай, plz...
 
 
Сформули их еще раз, если не сложно, плз.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 03:34 25-12-2002
DDfans



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

Код:
$memberfilename = $membername;
$memberfilename =~ y/ /_/;

 
Ты сказала, что баг был и он поправлен. Изменения заметил только те, что сюда в коде снес. А какую роль играют эти дополения хотелось бы знать? У меня все и без них нормально работает...странно...  
 
В силе уже остался только один вопрос: Как сделать, чтобы у гостя не выводилась строка для ввода пароля в форме при написании сообщения? Мне не нужны ошибки юзеров в подборе пароля при постингах. Пусть уж лучше авторизуются по нормальному и постятся хоть весь день, а вот Гостю пароль вообще ни к чему.
 
Остальные вопросы, по поводу пипов у гостя и иконки указания пола - уже решил при помощи подсказки Xnom'a.

Всего записей: 59 | Зарегистр. 24-11-2002 | Отправлено: 16:00 26-12-2002
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DDfans
 
 
Цитата:
Изменения заметил только те, что сюда в коде снес. А какую роль играют эти дополения хотелось бы знать? У меня все и без них нормально работает...странно...  
 
 
Э.. я не помню, там порядок кода не тот был, у меня моя конфа отличается от дефолтной, я сначала на своей делаю. а потомн а дефолтной, потому могу ошибиться, код немного разный.
 
 
Цитата:
Как сделать, чтобы у гостя не выводилась строка для ввода пароля в форме при написании сообщения?
 
 
Счас
 
Добавлено
topic.cgi
 
Меняем код:
 

Код:
 
  </tr><tr>
                   <td bgcolor=$postbackcolor valign=middle><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'0727'}</b></font></td>  
                   <td bgcolor=$miscbackone valign=middle><input type=text size=20 name="membername" value="$inmembername"><font face="$font" color=$fontcolormisc size=1> &nbsp; <a href="$registerprog">$ibtxt{'1417'}</a></font></td>  
               </tr><tr>  
                   <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'0728'}</b></font></td>  
                   <td bgcolor=$miscbackone valign=middle><input type=password size=20 name="password" value="$inpassword">  
                   <font face="$font" color=$fontcolormisc size=1> &nbsp; <a href="$profileprog?action=lostpass">$ibtxt{'2411'}</a></font></td>  
               </tr><tr>  
                   <td bgcolor=$miscbackone valign=top><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'1421'}</b><br>  
               <br>  
               <A href="javascript:openScript('misc.cgi?action=showsmilies',300,350)">Поддержка кодов смайликов включена</A><br><br>Для вставки имени, кликните на нем.<br>  
<SCRIPT language=JavaScript>  
if (navigator.appVersion.indexOf("MSIE")!= -1) document.writeln("Для вставки цитаты, выделите её и <a href='VBScript:paste2(document.selection.createRange().Text)'>нажмите эту ссылку</a><br></span>")  
</SCRIPT></font>  
</td>  
   
 

 
На код:
 

Код:
 
  </tr><tr>
                   <td bgcolor=$postbackcolor valign=middle><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'0727'}</b></font></td>  
                   <td bgcolor=$miscbackone valign=middle><input type=text size=20 name="membername" value="$inmembername"><font face="$font" color=$fontcolormisc size=1> &nbsp; <a href="$registerprog">$ibtxt{'1417'}</a></font></td>  
               </tr>
               ~;
               ##Гостю убираем пароль
               
               unless ($inmembername eq "Guest"){
               $output.=qq~
               <tr>  
                   <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'0728'}</b></font></td>  
                   <td bgcolor=$miscbackone valign=middle><input type=password size=20 name="password" value="$inpassword">  
                   <font face="$font" color=$fontcolormisc size=1> &nbsp; <a href="$profileprog?action=lostpass">$ibtxt{'2411'}</a></font></td>  
               </tr>
               ~;
               }
               $output.=qq~
               
               <tr>  
                   <td bgcolor=$miscbackone valign=top><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'1421'}</b><br>  
               <br>  
               <A href="javascript:openScript('misc.cgi?action=showsmilies',300,350)">Поддержка кодов смайликов включена</A><br><br>Для вставки имени, кликните на нем.<br>  
<SCRIPT language=JavaScript>  
if (navigator.appVersion.indexOf("MSIE")!= -1) document.writeln("Для вставки цитаты, выделите её и <a href='VBScript:paste2(document.selection.createRange().Text)'>нажмите эту ссылку</a><br></span>")  
</SCRIPT></font>  
</td>  
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 02:53 27-12-2002
Открыть новую тему     Написать ответ в эту тему

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