recent v.2.2.3 - Anpassung der Anzeige der letzten Posts

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
yy
Mitglied
Beiträge: 23
Registriert: 07.08.2005 05:51

recent v.2.2.3 - Anpassung der Anzeige der letzten Posts

Beitrag von yy »

Hallo zusammen!

ich nutze seit kurzem phpBB und finde es super, Lob an dieser Stelle.

Zu meinem Anliegen:
Ich habe folgenden mod installiert: http://www.phpbb.de/moddb/mod.php?id=48 (recent v.2.2.3)

Läuft prima, alles kein Problem, schnell installiert.

Aber...

Mit folgenden Tag´s wird auf der Page, an der entsprechenden Stelle wo man ihn einbaut, der Text des letzten Posts angezeigt (inkl. Link, Autor, etc...):

Code: Alles auswählen

<td class="{recent.ROW_CLASS}" width="25%" nowrap="nowrap"><span class="postbody">{recent.POST_TEXT}</span><br />
<span class="gensmall"> {recent.LAST_URL} {recent.LAST_TIME}&nbsp;&nbsp;{recent.LAST_AUTHOR}</span></td>
Funktioniert auch prima, mein Problem ist allerdings der Tag:

Code: Alles auswählen

{recent.POST_TEXT}
Er funktioniert zwar und zeigt auch den Text des letzten Posters im Forum an, allerdings auch wirklich so wie der letzte Poster ihn geposted hat ;(

Das heisst:

Wenn jemand z.B. folgenden Text postet (inkl. Umbrüche):
Hallo zusammen,
wie geht es euch heute?

Geniales Wetter heute, oder? Na machts mal gut...
Ciao
Euer Blubb
... dann wird er auch genau wie eben im Beispiel gezeigt angezeigt.
Ich habe den mod an einer Stelle eingebaut, wo ich nur für 2 Zeilen á 30 Zeichen Platz habe. Man kann zwar über die config des mod´s einstellen, wieviel Zeichen des letzten Posts man anzeigen lassen möchte:

Code: Alles auswählen

$content = '60';	// length of displayed text
... aber da er den Text so anzeigt wie ihn der Poster geposted hat, würde (bei content=60) auf meiner Page an der entsprechenden Stelle dann folgendes stehen:
Hallo zusammen,
wie geht es euch heute?

Geniales Wetter he....
Es wäre jedoch wünschenswert, da ich nur 2 Textzeilen Platz habe, dass er folgendes anzeigt:
Hallo zusammen, wie geht es
euch heute?Geniales Wetter he....
Kurz gesagt:

Ich bräuchte eine entsprechende Anpassung, in der Richtung, dass Zeilenumbrüche entfernt werden und Smilies aus dem Postertext nicht mit angezeigt werden. Es soll nur der reine Text angezeigt werden, in 2 Reihen á xx Zeichen, ohne Smilies, Umbrüche und Fotos etc.

Absolut leienhaft ausgedrückt, etwas wie:

Code: Alles auswählen

$contentlines = '2';   // number of textlines where text will be displayed
$contentline1 = '30';   // length of displayed text in first textline
$contentline2 = '30';   // length of displayed text in second textline
So wäre es mir dann möglich, an einer relativ engen Stelle im Board, den Text des letzten Posters in 2 Zeilen á 30 Textzeichen ohne Umbrüche, Smilies und Bilder anzeigen zu lassen, die mir sonst das komplette Layout der Seite zerreißen (Tabelle in der der Letzte-Poster-Text angezeigt wird, wird größer als vorgesehen, etc).


Wäre supergenial wenn wir da jemand helfen könnte, da ich nicht wirklich so die Ahnung vom coden habe. Vielleicht kann mir ja sogar Acid helfen, der den mod geproggt hat. Vielleicht ist es ja auch eine Idee für folgende Versionsnummern des mods (wenn geplant).

Ich hoffe mir kann jemand helfen und zeigen wie ich das Problem lösen könnte, und bedanke mich recht herzlich im Voraus!

(Hoffe ich habe mein Problem ausführlich und verständlich rüber gebracht :-? )

Gruß
yy
Benutzeravatar
Enano
Mitglied
Beiträge: 107
Registriert: 24.11.2004 16:45
Wohnort: Dömitz
Kontaktdaten:

Beitrag von Enano »

Versuche das mal:
finde in der recent.php

Code: Alles auswählen

	include_once($phpbb_root_path . 'includes/bbcode.'.$phpEx);
	$post_text = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $post_text);
	$post_text = $line[$i]['post_text'];
	$word_censor = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $post_text) : $post_text;
	$post_text = ( strlen($post_text) < $content ) ? $word_censor : substr(stripslashes($word_censor), 0, $content) .'...';
	$post_text = preg_replace('#(<)([\/]?.*?)(>)#is', '', $post_text);
	$pattern = array ('/\[quote:=\'/', '/\'\]/', '/\[quote:\]/', '/\[\/quote:\]/', '/\[code:(.*?)\]/', '/\[\/code:\]/', '/\[(.*?)\]/si');
	$replace = array ('', '<b>', '</b>:: ', '<b>Zitat: </b>', '</br>', '<b>Code: </b>', '</br>', '');
	$post_text = preg_replace($pattern, $replace, $post_text);
	$post_text = ( $include == '1' ) ? $post_text : smilies_pass($post_text);
	$post_text = str_replace("\n", "\n<br />\n", $post_text);
	$post_text = make_clickable($post_text); 
und ersetze mit:

Code: Alles auswählen

//	include_once($phpbb_root_path . 'includes/bbcode.'.$phpEx);
	$post_text = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $post_text);
	$post_text = $line[$i]['post_text'];
	$word_censor = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $post_text) : $post_text;
	$post_text = ( strlen($post_text) < $content ) ? $word_censor : substr(stripslashes($word_censor), 0, $content) .'...';
	$post_text = preg_replace('#(<)([\/]?.*?)(>)#is', '', $post_text);
	$pattern = array ('/\[quote:=\'/', '/\'\]/', '/\[quote:\]/', '/\[\/quote:\]/', '/\[code:(.*?)\]/', '/\[\/code:\]/', '/\[(.*?)\]/si');
	$replace = array ('', '<b>', '</b>:: ', '<b>Zitat: </b>', '</br>', '<b>Code: </b>', '</br>', '');
	$post_text = preg_replace($pattern, $replace, $post_text);
//	$post_text = ( $include == '1' ) ? $post_text : smilies_pass($post_text);
//	$post_text = str_replace("\n", "\n<br />\n", $post_text);
	$post_text = make_clickable($post_text); 
... habe es für eine externe Seite so gemacht und es funzt.
° warum haben eigentlich alle Mädchen im Internet den Nachnamen "JPG"???
yy
Mitglied
Beiträge: 23
Registriert: 07.08.2005 05:51

Beitrag von yy »

Hi Enano,

danke für deinen Tipp bzw. Hilfe.

Ich versteh zwar noch nicht ganz was du vor hast, da du ja eigentlich nur 3 Zeilen ausklammerst, aber ich werde es nachher mal probieren (hab jetzt leider keine Zeit) und melde mich aber nachdem ich es getestet habe.

Also vorerst einmal danke und Rückmeldung kommt in Kürze ;)
yy
Mitglied
Beiträge: 23
Registriert: 07.08.2005 05:51

Beitrag von yy »

So, nochmals danke für deine Hilfe, aber ich habe mich dazu entschieden ein Portal einzusetzen ... und da werden die letzten Posts ja angezeigt. Trotzdem danke für deine Hife!
webazubi
Mitglied
Beiträge: 96
Registriert: 30.07.2005 01:13

Beitrag von webazubi »

Enano hat geschrieben:Versuche das mal: ...
und ersetze mit: ...
Das Thema ist zwar schon 1 Jahr alt, aber dennoch: Der Code oben klappt bei mir, nur in meiner Textvorschau wird der BBCode nicht übersetzt.

Bevor ich den Code angeglichen habe, stand in der Textvorschau, sofern die erste Zeile des Beitrages mit BBCode formatiert wurde, der Code an sich, also beispielsweise so etwas wie

Code: Alles auswählen

[color=red][size=24]Hier die eigentliche Textzeile[/size][/color]
.
Die Änderung des Codes wie oben beschrieben hat bei mir nun den Nebeneffekt, dass der BBCode zwar nicht mehr angezeigt wird, dafür aber eine Leerzeile wo sonst der Code stand.

Daher meine Frage: Gibt es einen Trick, wie die BBCode-Übersetzung überprüft oder notfalls per Hand vor dem enstprechendem Aufruf erneut erzwungen werden kann?
J.C.
Mitglied
Beiträge: 7
Registriert: 22.02.2005 13:38
Wohnort: c:\>
Kontaktdaten:

Beitrag von J.C. »

Nunja, leider funktioniert bei mir der Modd nicht. Er sagt immer "Fehler in Zeile 222"
o.0 hab es aber so gemacht wie in der Beschreibung.
Antworten

Zurück zu „phpBB 2.0: Mod Support“