Hallo,
ich klinke mich da jetzt auch mal ein, weil ich mir so einen Mod selbst vor ein paar Wochen installiert habe. Ich glaube das war aber ein ganz einfacher und etwas - oder besser gesagt "sehr" - unsauber programmierter Mod, weil die Vorschau (mittels titel-tag) dadurch funktionierte indem der auszugebende Inhalt mit dem kompletten Postings vollgeschrieben wurde. D.h. im Klartext bei der Übertragung der Forenseite wurden alle(!) angezeigten Beiträge gleich noch mitübertragen. Nunja, das habe ich dann erstmal ab einer bestimmten Länge abschneiden lassen.
Dann hatte ich aber immer noch das hier ...
Also der Mod läuft soweit prima - mir ist nur aufgefallen das in dem Hoverfenster die Sonderzeichen oder Doppelpunkte als ||||| Striche dargestellt werden - kann man daran was machen .... ?
... und das kommt (zumindest bei mir) durch den BBCode genauer gesagt durch den
bbcode_uid (sieht man sehr schön, wenn man sich mal die Beiträge direkt in der Datenbank ansieht).
Öhm, tja wenn ich jetzt aber erzähle, wie ich das gelöst habe, dann werde ich wahrscheinlich von php-Kennern und -Könnern gerädert...
Kurz und gut: Ich habe eine Schleife programmiert in der einfach alles was zwischen
[ und
] steht (für die Anzeige) entfernt wird.
Ich kopiere mal den ganzen Code-Schrott von mir hier rein, ich blicke zwar selbst nicht mehr 100%ig durch, aber es funktioniert zumindest so einigermaßen:
Code: Alles auswählen
$row = $db->sql_fetchrow($result);
$first_post = $row['post_text'];
$first_post = str_replace('"', "''", $first_post);
$first_post = strip_tags($first_post);
$first_post = preg_replace('/\r\n|\r|\n/', ' ', $first_post);
$first_post = ' ' . $first_post; // (Schleife funzt nur mit führendem Leerzeichen *hüstl*)
$first_post_cache = '';
$counter = 0;
while ($counter<5) // Durchlaufe Schleife fünfmal (sollte für die Vorschau reichen um alle bbcodes auszublenden)
{
$poss = strpos($first_post, "["); // Suche die Start-Position mit [
if ($poss != false)
{
$pose = strpos($first_post, "]"); //Suche die End-Postion mit ]
$counter++;
if ($pose != false)
{
if ($pose > $poss) // vergewissern dass [ vor ] kommt
{
// Lösche alles zwischen [ und ] raus
$first_post_cache .= substr($first_post, 0, $poss);
$first_post = ' ' . substr($first_post, $pose+1);
}
}
}
else { $counter = 5; } // wenn keine [ gefunden wurde, brich ab
}
$first_post = $first_post_cache . $first_post;
$first_post = str_replace(' ', ' ', $first_post);
$first_post = preg_replace('/[^a-z A-Z0-9,.=\-äöüÄÖÜß?!():;]/', '', $first_post);
if (strlen($first_post) > 85) // Schneide den Vorschautext zu
{
$first_post = substr($first_post, 0, 85) . '...';
}
Eine bitte: Besser nicht nachmachen

und lieber auf jemanden warten, der was besseres vorschlagen kann.
Wie das ganze funktioniert, könnt ihr hier anschauen:
http://www.ahnenforschung-benz.de/forum ... um.php?f=1
So, und ich flüchte jetzt besser, bevor die Leute mit dem Rad kommen ...
Gruß,
Chris
Edit/Nachtrag:
Da ich die Vorschau-Funktion auf meiner Seite wieder ausgebaut habe, funktioniert die Demo nicht mehr!