F.A.Q. - style i grafika - Puste linie przed tabelą html
ollie - 13-11-2008, 02:55 Temat postu: Puste linie przed tabelą html Witam,
mam pytanie dotyczące umieszczania tabel html w treści postów.
Napisałam tabelę i pojawiło mi się mnóstwo pustych linii przed tabelą.
Na phpbb.com (cały temat tutaj) znalazłam takie rozwiązanie:
W pliku viewtopic.php znaleźć linijkę
Kod: | include($phpbb_root_path . 'includes/bbcode.'.$phpEx); |
i wstawić po niej
Kod: |
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
} |
a następnie znaleźć linijkę
Kod: | $message = $postrow[$i]['post_text']; |
i wstawić po niej
Kod: |
$tmp_message = get_string_between($message,"<table","</table>");
$modstring = "<table".str_replace("\n", "", $tmp_message)."</table>";
$origstring = "<table".$tmp_message."</table>";
$message = str_replace($origstring,$modstring, $message); |
Zadziałało, post wygląda świetnie - tabelka jest na samej górze.
Chciałabym, aby ten temat był wyświetlany w środkowej kolumnie portalu (tak jak newsy).
Niestety po wpisaniu w adres przeglądarki
Kod: | ...../portal.php?s=forum_id |
w środkowej kolumnie pojawia się moja tabela a przed nią znów duuużo pustych linijek.
Chciałabym prosić o wskazówki co i w jakim pliku jeszcze należy dopisać.
Z góry dziękuję za pomoc.
ollie
SIWY DYM - 13-11-2008, 10:34
Podaj kod tej tabeli.
ollie - 13-11-2008, 10:59
Kod: | <table cellpadding="0px" cellspacing="0px" border="1px" style="width:470px; empty-cells:show;">
<thead style="font-weight:bolder;">
<tr style="height:25px; background-color:#000000;">
<td style="width:100px;">Nick</td>
<td style="width:120px;">Job</td>
<td style="width:30px;">Lvl</td>
<td style="width:100px;">Honor Rank</td>
<td style="width:120px;">Guild Position</td>
</tr>
</thead>
<tbody>
<tr style="height:20px; background-color:#5B1616;">
<td class="nick">Tralalaa</td>
<td class="job">lalala</td>
<td class="lvl">67</td>
<td class="honor">-</td>
<td class="guild">Chief</td>
</tr>
</tbody>
</table>
</center> |
Tabela ma ok. 60 wierszy.
joli - 13-11-2008, 11:22
Pelno smeici w tym kodzie
Wstaw tak:
Kod: | <table cellpadding="0" cellspacing="0" border="1px" style="width:470px; empty-cells:show;">
<thead style="font-weight:bolder;">
<tr>
<td style="width:100px;">Nick</td>
<td style="width:120px;">Job</td>
<td style="width:30px;">Lvl</td>
<td style="width:100px;">Honor Rank</td>
<td style="width:120px;">Guild Position</td>
</tr>
<tr style="height:20px; background-color:#5B1616;">
<td class="nick">Tralalaa</td>
<td class="job">lalala</td>
<td class="lvl">67</td>
<td class="honor">-</td>
<td class="guild">Chief</td>
</tr>
</table> |
ollie - 13-11-2008, 11:28
@joli nie pomogło
Problem nie leży w samej tabeli, tylko w tym jak skrypt forum tą tabelę odczyta.
Jest to wyjaśnione TUTAJ.
SIWY DYM - 13-11-2008, 11:38
Kod podany przez joli jest prawidłowy (sprawdzono)
co do wyświetlania to pewnie nie masz nawet wpisanych tagów (dla usherów bo admin nie ma tego ograniczenia)
PA - Ogólne - Konfiguracja - [zakładka] Pisania tematu - [opcja] Dozwolone tagi HTML
joli - 13-11-2008, 11:49
jak nie pomoglo, skoro sprawdzilam u siebie.
W poscie ejst w porzadku, bez zadnych poprawek
tylko w portalu dalej zle.
http://modders.pl/forum/portal.php
przyjrze sie temu
ollie - 13-11-2008, 11:50
Ja wiem że kod podany przez joli jest prawidłowy, ale nie rozwiązał mojego problemu. Dozwolone tagi html też mam dodane w PA. Ta tabelka się wyświetla prawidłowo, tylko przed nią pojawia się multum pustych linii.
TAK TO WYGLĄDA
joli - 13-11-2008, 12:27
znajde chwile, to pomysle.
ollie - 14-11-2008, 22:02
Uzyskałam już pomoc w innym źródle i chciałam się podzielić rozwiązaniem tego problemu:
W pliku portal.php należy:
znaleźć
Kod: | $fp_text = preg_replace("#\[mod\](.*?)\[/mod\]#si", "", $fetchposts[$i]['post_text']);
$fp_text = preg_replace("#\[hide(.*?)\[\/hide#si","", $fp_text); |
pod tymi linijkami dopisac:
Kod: | $fp_text = str_replace("<br />", "", $fp_text); |
znaleźć
Kod: | $i = intval($HTTP_GET_VARS['article']); |
pod tą linijką dopisać
Kod: | $fp_text = str_replace("<br />", "", $fetchposts[$i]['post_text']); |
Znaleźć
Kod: | $template->assign_block_vars('fetchpost_row', array(
'TITLE' => $fetchposts[$i]['topic_title'],
'POSTER' => $fetchposts[$i]['username'],
'TIME' => $fetchposts[$i]['topic_time'],
'TEXT' => $fetchposts[$i]['post_text'],
'TEXT' => $fp_text,
'REPLIES' => $fetchposts[$i]['topic_replies'],
'U_VIEW_COMMENTS' => append_sid('viewtopic.'.$phpEx.'?t=' . $fetchposts[$i]['topic_id']),
'U_POST_COMMENT' => append_sid('posting.'.$phpEx.'?mode=reply&t=' . $fetchposts[$i]['topic_id']))
); |
zamienić linijkę
Kod: | 'TEXT' => $fetchposts[$i]['post_text'], |
na
Kod: | /* 'TEXT' => $fetchposts[$i]['post_text'],*/ |
Po tych modyfikacjach znikają puste pola przed tabelą w dziale newsów.
Dziekuję za konsultacje.
joli - 15-11-2008, 00:08
Fajnie, dodamy do faq
Ale zamiast <br /> lepiej dodac <br>
walidator nie lubi takich kodow
|
|
|