Was ist daran nicht zu verstehen?
Der Text wird zur Anzeige formatiert, d. h. es werden die Links umgesetzt und die BBCodes ausgeführt.
Sofern an den Portal-Dateien auch nichts geändert wurde (ich hatte eben nochmal nachgeschaut), kürzt das Portal
als erstes den Text und formatiert dann, bei Dir
muss es anders herum sein, denn es wird ja ein Link abgeschnitten, also ein formatierter Link!
So ist es in der fetchposts.php korrekt:
Code: Alles auswählen
//
// do a little magic
// note: part of this comes from mds' news script and some additional magics from Smartor
//
stripslashes($posts[$i]['post_text']);
if (($text_length == 0) or (strlen($posts[$i]['post_text']) <= $text_length))
{
$posts[$i]['post_text'] = bbencode_second_pass($posts[$i]['post_text'], $posts[$i]['bbcode_uid']);
$posts[$i]['striped'] = 0;
}
else // strip text for news
{
$posts[$i]['post_text'] = bbencode_strip($posts[$i]['post_text'], $posts[$i]['bbcode_uid']);
$posts[$i]['post_text'] = substr($posts[$i]['post_text'], 0, $text_length) . '...';
$posts[$i]['striped'] = 1;
}
//
// Smilies
//
if ($posts[$i]['enable_smilies'] == 1)
{
$posts[$i]['post_text'] = smilies_pass($posts[$i]['post_text']);
}
$posts[$i]['post_text'] = make_clickable($posts[$i]['post_text']);
//
// define censored word matches
//
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
//
// censor text and title
//
if (count($orig_word))
{
$posts[$i]['topic_title'] = preg_replace($orig_word, $replacement_word, $posts[$i]['topic_title']);
$posts[$i]['post_text'] = preg_replace($orig_word, $replacement_word, $posts[$i]['post_text']);
}
$posts[$i]['post_text'] = nl2br($posts[$i]['post_text']);
Die Reihenfolge:
- Abschneiden (sofern nötig)
- BBcodes dabei gleich ausführen
- Smilies einsetzen
- Links umsetzen/formatieren
- Wortzensur ausführen
- Zeilenumbrüche umsetzen
Bei Dir muss da was durcheinander sein, denn es wird eben erst formatiert und dann abgeschnitten!