Przyjazne użytkownikom polskie wsparcie phpBB 3.0

Twoja przeglądarka jest przestarzała i nie wspiera obecnych standardów WWW.
Zalecamy instalację najnowszej wersji jednej z przeglądarek, które poprawnie obsługują obecne standardy, np:

  • Arora
  • Chrome
  • Firefox
  • Opera
  • Safari

Modyfikacja szablonu/forum

Regulamin działu

1. Zanim spytasz, użyj opcji szukaj!
2. Jeśli nic nie znajdziesz, pisząc temat z pytaniem napisz której wersji phpBB3 używasz i dokładnie opisz problem
3. Każdy problem opisz w osobnym temacie

Modyfikacja szablonu/forum

Postprzez karlkar » 20 gru 2008, o 00:25 ·

Witam. Do mojego forum phpbb 3.0.0 dodałem ajax chat ze strony startrekguide. Po jakimś czasie wpadłem na pomysł żeby dorobić do niego archiwum. Udało się, lecz nie rozumiem jednej rzeczy - dlaczego w moim archiwum czcionki są ewidentnie większe niż są w czacie? Oto screeny i kod - może coś zaradzicie.

Chat: http://img367.imageshack.us/my.php?image=sbjw9.jpg

Archiwum: http://img367.imageshack.us/my.php?image=archivehq3.jpg

Czat jest includowany w piku index_body.html z katalogu /style/NAZWA STYLU/template, natmiast archiwum jest strną, ktra otwiera się osobno, w nowym oknie.

Oto kod piku chat_body.html z tego samego katalogu co index_body.

Kod: Zaznacz cały

<!-- IF S_GET_CHAT -->
   <!-- IF S_READ or S_ADD -->
      <!-- BEGIN chatrow -->
         <div id="p{chatrow.MESSAGE_ID}">
            <table class="tablebg" cellpadding="6" cellspacing="0" width="120%">
               <tr class="row{chatrow.CLASS}">
                  <td>
                     <!-- IF U_ACP or U_MCP --><a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><img src="{T_IMAGESET_LANG_PATH}/icon_post_delete.gif" /></a> <!-- ENDIF -->
                      <b class="postauthor">{chatrow.USERNAME_FULL}</b> « {chatrow.TIME} » &nbsp; <span class="postbody">{chatrow.MESSAGE}</span>
                  </td>
               </tr>

            </table>
         </div>
      <!-- END chatrow -->---{LAST_ID}
   <!-- IF S_WHOISONLINE -->---
         <!-- BEGIN whoisrow -->
            <div><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL}</div>
         <!-- END whoisrow -->---{LAST_TIME}---{DELAY}---{LAST_POST}
      <!-- ENDIF -->
   <!-- ENDIF -->
<!-- ELSE -->
   <!-- IF S_CHAT -->
      <!-- INCLUDE overall_header.html -->
   <!-- ENDIF -->
   <script type="text/javascript">
   <!--
   var fieldname = 'chat';
   var last_time = 0;
   var xmlHttp = http_object();
   var last_id = {LAST_ID};
   var type = 'receive';
   var post_time = {TIME};
   var read_interval = 15000;
   var interval = setInterval('handle_send("read", last_id);', read_interval);

   function handle_send(mode, f)
   {
      if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
      {
         indicator_switch('on');
         type = 'receive';
         param = 'mode=' + mode;
         param += '&last_id=' + last_id;
         param += '&last_time=' + last_time;
         param += '&last_post=' + post_time;
         param += '&read_interval=' + read_interval;

         if (mode == 'add' && document.text.message.value != '')
         {
            type = 'send';
            for(var i = 0; i < f.elements.length; i++)
            {
               elem = f.elements[i];
               param += '&' + elem.name + '=' + encodeURIComponent(elem.value);
            }
            document.text.message.value = '';
         }
         else if (mode == 'delete')
         {
            type = 'delete';
            param += '&chat_id=' + f;
         }
         xmlHttp.open("POST", '{FILENAME}', true);
         xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
         xmlHttp.onreadystatechange = handle_return;
         xmlHttp.send(param);
      }
   }

   function handle_return()
   {
      if (xmlHttp.readyState == 4)
      {
         if (type != 'delete')
         {
            results = xmlHttp.responseText.split('---');
            if (results[1])
            {
               if (last_id == 0)
               {
                  document.getElementById(fieldname).innerHTML = results[0];
               }
               else
               {
                  document.getElementById(fieldname).innerHTML = results[0] + document.getElementById(fieldname).innerHTML;
               }
               last_id = results[1];
               if (results[2])
               {
                  document.getElementById('whois_online').innerHTML = results[2];
                  last_time = results[3];
                  if (results[4] != read_interval * 1000)
                  {
                     window.clearInterval(interval);
                     read_interval = results[4] * 1000;
                     interval = setInterval('handle_send("read", last_id);', read_interval);
                     document.getElementById('update_seconds').innerHTML = results[4];
                  }
                  post_time = results[5];
               }
            }
         }
         indicator_switch('off');
      }
   }

   function delete_post(chatid)
   {
      document.getElementById('p' + chatid).style.display = 'none';
      handle_send('delete', chatid);
   }

   function indicator_switch(mode)
   {
      if(document.getElementById("act_indicator"))
      {
         var img = document.getElementById("act_indicator");
         if(img.style.visibility == "hidden" && mode == 'on')
         {
            img.style.visibility = "visible";
         }
         else if (mode == 'off')
         {
            img.style.visibility = "hidden"
         }
      }
   }

   function http_object()
   {
      if (window.XMLHttpRequest)
      {
         return new XMLHttpRequest();
      }
      else if(window.ActiveXObject)
      {
         return new ActiveXObject("Microsoft.XMLHTTP");
      }
      else
      {
         document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
      }
   }
   -->
   </script>
   <style type="text/css">
   <!--
      .box
      {
         width: 110%;
         margin-left: auto;
         margin-right: auto;
      }
      .shouts {
         width: 100%;
         height:150px;
         overflow:auto;
      }
      #chat {
         width: 100%;
         text-align:left;
      }
      #message {
         width: 60%;
      }
      #whois_online{
         vertical-align:text-top;
         text-align:left;
      }
      .online_img {
         vertical-align:middle;
      }
      #act_indicator {
         visibility:shown;
      }
   -->
   </style>
   <div class="box">
      <table class="tablebg" cellspacing="1" width="91%">

         <!-- IF S_USER_LOGGED_IN -->
            <tr>
               <td align="center" class="cat nav" width="85%">
                  <form name="text" id="text" method="post" action="javascript:void(0);" onsubmit="handle_send('add', this)" autocomplete="off">{L_MESSAGE}:
                     <input type="text" tabindex="1" name="message" id="message" class="inputbox" size="28" />
                     <input class="button1" type="submit" name="submit" value="{L_SUBMIT}" />
                  </form>
               </td>
               <td align="center" class="cat nav" width="15%">{L_ONLINE_LIST}</td>
         <!-- ENDIF -->
         <tr>
            <td class="row3" style="text-align:left;" height="150">
               <div class="shouts">
                  <div id="chat">
                     <!-- BEGIN chatrow -->
                        <div id="p{chatrow.MESSAGE_ID}">
                           <table class="tablebg" cellpadding="6" cellspacing="0" width="100%">
                              <tr class="row{chatrow.CLASS}">
                                 <td>
                                    <!-- IF U_ACP or U_MCP -->
                                       <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')">
                                          <img src="{T_IMAGESET_LANG_PATH}/icon_post_delete.gif" />
                                       </a>
                                    <!-- ENDIF -->
                                    <b class="postauthor">{chatrow.USERNAME_FULL}</b> « {chatrow.TIME} » &nbsp; <span class="postbody">{chatrow.MESSAGE}</span>
                                 </td>
                              </tr>

                           </table>
                        </div>
                     <!-- END chatrow -->
                  </div>
               </div>
            </td>
            <td class="row1" nowrap="nowrap">
               <div class="shouts">
                  <div id="whois_online">
                     <!-- BEGIN whoisrow -->
                        <div><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL}</div>
                     <!-- END whoisrow -->
                  </div>
               </div>
            </td>
         </tr>
         <tr>
            <td class="cat" colspan="2" align="center">
               {L_DETAILS}
               <img src="{T_IMAGESET_PATH}/act_indicator.gif" id="act_indicator" />
               <strong>• {L_UPDATES} <span id="update_seconds">{DELAY}</span> {L_UNIT}</strong>
            </td>
         </tr>
      </table>
   </div>
   <!-- IF S_CHAT -->
      <!-- INCLUDE overall_footer.html -->
   <!-- ENDIF -->
<!-- ENDIF -->


A oto kod mojego archiwum:

Kod: Zaznacz cały

<html>
<head>
<link rel="stylesheet" href="./styles/N.Design/theme/stylesheet.css" type="text/css" />
</head>
<body class="ltr">
<font size="10">
<div id="wrapcentre">
<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);
$user->setup('chat');

$quantity=$_GET["quantity"];
$page=$_GET["page"];

if($page==NULL)
   $page=1;

// Start session management
$sql = mysql_connect (localhost, login, pass );
mysql_select_db("database") or die("NIE DZIAŁA!");

$link = mysql_query("SELECT MAX(message_id) FROM phpbb_chat");
$row = mysql_fetch_array($link);
$max=$row['MAX(message_id)'];
?>
   <style type="text/css">
   <!--
      .box
      {
         width: 110%;
         font-size: 10px;
         margin-left: auto;
         margin-right: auto;
      }
      .shouts {
         width: 100%;
         overflow:auto;
      }
   -->
   </style>
<div class="box">
<table class="tablebg" cellspacing="1" width="91%">
   <tr>
   <td align="center" class="cat nav" >
      <?php print "Napisano ".$max." wiadomosci.";?>
   </td>
   <tr>
   <td class="row3" style="text-align:left;" height="150">
      <div class="shouts">
         <div id="chat">
<?php


if ($quantity==NULL)
   $quantity=10;

$numberofpages=((int)($max/$quantity)+1);

$startfrom=($max-($page*$quantity));

if($startfrom<0)
   $startfrom=0;

$query = "SELECT * FROM phpbb_chat WHERE message_id>=".$startfrom." AND message_id<=".($startfrom + $quantity)." order by time DESC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
print "<table class=\"tablebg\" cellpadding=\"6\" cellspacing=\"0\" width=\"100%\"><tr class=\"row2\"><td>".clean_username(get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $user->lang['GUEST']))." < ".$user->format_date($row['time'])." >  ".generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options'])."</td></table>";
}
?>

         </div>
      </div>
   </td>
<tr>
   <td align="center" class="cat nav" >

<?php

if($page<=7){
   for($i=1;$i<$page+4;$i++)
      if($i!=$page) print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".($i)."\">".$i."</a>   ";
      else print $i." ";
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".($page+5)."\">...</a>  ";
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".$numberofpages."\">".$numberofpages."</a>";
}
if($page>7 && $page<$numberofpages-7){
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=1\">1</a>  ";
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".($page-5)."\">...</a>  ";
   for($i=$page-3;$i<$page+4;$i++)
      if($i!=$page) print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".$i."\">".$i."</a>   ";
      else print $i." ";
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".($page+5)."\">...</a>  ";
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".$numberofpages."\">".$numberofpages."</a>";

}
if($page>=$numberofpages-7){
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=1\">1</a>  ";
   print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".($page-5)."\">...</a>  ";
   for($i=$page-3;$i<=$numberofpages;$i++)
      if($i!=$page) print "<a href=\"chat_archive.php?quantity=".$quantity."&page=".$i."\">".$i."</a>   ";
      else print $i." ";
}

?>
<form action="chat_archive.php" method="get">
Po ile:
   <select name="quantity" onChange="this.form.submit()">
      <option value="10" <?php if ($quantity==10) print"selected"; ?> >10</option>
      <option value="20" <?php if ($quantity==20) print"selected"; ?>>20</option>
      <option value="30" <?php if ($quantity==30) print"selected"; ?>>30</option>
   </select>
<input type="hidden" name="page" value=<?php print "\"$page\""; ?> ">
</form>
</td>
</table>
<?php
function clean_username($user)
{
   if (strpos($user, '---') !== false)
   {
      $user = str_replace('---', '–––', $user);
      clean_username($user);
   }
   
   return $user;
}
?>
</div>
</body>
</html>


Co skopałem?

karlkar

Posty: 25Dołączył(a): 9 gru 2008, o 17:14

Re: Modyfikacja szablonu/forum

Postprzez Ronnie » 20 gru 2008, o 00:52 ·

możliwe, że gdzieś dodał się znak BOM
spróbuj skorzystać z tego:
Link: Błąd:Cannot_modify_header_information
Avatar użytkownika

Ronnie

Ort Hunter | Smerf GadułaPosty: 2766Dołączył(a): 10 kwi 2007, o 23:24Lokalizacja: Łódź

Re: Modyfikacja szablonu/forum

Postprzez karlkar » 20 gru 2008, o 00:58 ·

Korzystałem z Crimsona, więc pewnie dodał ten znak BOM. Wystarczy że teraz odpalę to w Notepad++, ustawię to kodowanie, zapiszę i będzie git? Czy muszę zapisywać jako nowy plik?

EDIT: Odpaliłem plik w Notepadzie ++ wziąłem Format->kodujw utf8 (bez BOM) i niestety ale to nie rozwiązało mojego problemu... Literki tak jak były wielgachne, tak nadal wielgachne są...

karlkar

Posty: 25Dołączył(a): 9 gru 2008, o 17:14

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości

Zaloguj  •  Zarejestruj