Zeilen in CODE-Blöcken nummerieren

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Zeilen in CODE-Blöcken nummerieren

Beitrag von oxpus »

Dieses Snippet nummeriert die Code-Blöcke, die mit dem BBCode CODE erstellt wurden, durch:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/bbcode.php

#
#-----[ FIND ]------------------------------------------
#
		$str_to_match = "[code:1:$uid]" . $before_replace . "[/code:1:$uid]";

#
#-----[ BEFORE, ADD ]------------------------------------------
#
		$temp_text = str_replace('[', '[', $after_replace);
		$temp_text = str_replace(']', ']', $temp_text);
		if (!preg_match("/\[s=([0-9]+)\]/", $temp_text))
		{
			$line_number = 1;
		}
		else
		{
			$line_number = substr($temp_text, 3, strpos($temp_text, "]") - 3);
			$after_replace = str_replace('[s='.$line_number.']', '', $temp_text);
		}

		$lines = preg_split("/\n/", $after_replace);
		$after_replace = '<ol start="'.$line_number.'">';

		for ($j = 0; $j < sizeof($lines); $j++)
		{
			$lines[$j] = preg_replace("/\n/", "", $lines[$j]);
			$after_replace .= '<li>'.$lines[$j].'</li>';
		}

		$after_replace .= '</ol></td></tr></table>';


#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
-- Code geändert, damit der Inhalt besser auswählbar ist --
-- Code erneut geändert, um Zeilennummern angeben zu können --
-- Code wieder erneuert, um unschöne HTML-Formatierungen zu umgehen --


Dieses Snippet ist hier nur bei CODE vorgesehen, liese sich aber auch für BBCode PHP / C oder andere Sprachen einsetzen.
Dazu wird der Post-Text selber nicht verändert, nur die Anzeige!

ERGÄNZUNG
Auf dem ezPortal werden diese Code-Blöcke mit zusätzlichen Leerzeilen dargestellt. Hierzu in der Datei fetchposts.php die Zeile

Code: Alles auswählen

			$posts[$i]['post_text'] = nl2br($posts[$i]['post_text']);
gegen

Code: Alles auswählen

			$posts[$i]['post_text'] = str_replace("\n", "<br />", $posts[$i]['post_text']);
austauschen, damit es auch dort stimmt.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Nina3Jungs
Beiträge: 112
Registriert: Sa 10.Jul, 2004 14:17
Kontaktdaten:

Beitrag von Nina3Jungs »

Jaaaaaaaaaaaaaaa :-) Das suchte ich doch letztens :ok

Frage: Wäre es nicht möglich, dem ganzen ne Startzeilennummer zu übergeben?
Zuletzt geändert von Nina3Jungs am Mi 12.Jan, 2005 01:38, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Sowas wie [code=20]?
Theoretisch ja. Muss ich mir mal anschauen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
volker58
Beiträge: 724
Registriert: Mo 27.Dez, 2004 19:22
Wohnort: Annaberg-Buchholz
Kontaktdaten:

Beitrag von volker58 »

ich habe das hier gesehen und da wird es auch nicht mit ausgewählt. da ich fast kein englisch kann, konnte ich da och net fragen was das für ein mod ist.
Gruss Volker

http://www.fuchsienfreunde.de
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Man muss nur drauf kommen:
Ich habe mein Snippet angepasst.
Nun ist auch damit der Code ohne Zeilennummern auswählbar.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
volker58
Beiträge: 724
Registriert: Mo 27.Dez, 2004 19:22
Wohnort: Annaberg-Buchholz
Kontaktdaten:

Beitrag von volker58 »

wie immer vom feinsten, danke
Gruss Volker

http://www.fuchsienfreunde.de
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

@Nina3Jungs
Ich habe hier zum Testen bereits Deinen Vorschlag installiert:
Zeilennummern ab X beginnen lassen.
Das klappt auch ganz gut, aber die Zeilennummer, die im Text hinterlegt werden muss, kann ich noch nicht so ganz löschen (störrisches Script).
Ihr könnt es testen, indem Ihr [code][s=100] als Beispiel eingebt. "100" wäre hierbei die erste Zeilennummer.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

wie immer genial gecodet...

saubere Arbeit Lieber Oxpus!!!
Du und Cback gehört sicherlich zu den ganz :respect: GROSSEN :respect:

liebe grüsse
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Naja, ist ja noch nicht ganz fertig, aber bald :)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

hoffnungsvoll und modsüchtig warten wir doch gerne... ^u
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So, der Code ist nun nochmal geändert. Ab sofort kann mit diesem Code der Start der Nummerierung vorgegeben werden.
Dazu nach [code] noch ein [s=X] anhängen, wobei X die erste Zeilennummer ist.
Was jetzt noch stört, ist eine kleine Inkompatibilität mit Firefox (mal wieder):
Es werden beim Kopieren die Zeilennummern mit kopiert :(
Zur Not kann man ja den Beitrag auch downloaden, so daß der Code-Block sauber im Texteditor dargestellt wird ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

Eine Frage,
ich hab das drinnen allerdings ist bei mir der Code Text Grün und das bei meinen Board mit Roten Hintergrund schwer lesbar...Wie kann ich den Text in Schwarz ändern Oxpus...

Lieben Gruss
Benutzeravatar
cback
Beiträge: 1391
Registriert: Sa 15.Mai, 2004 15:32
Wohnort: Saarland
Kontaktdaten:

Beitrag von cback »

BUG BUG!
In Firefox sind die Scrollbars wech!
Benutzeravatar
Nina3Jungs
Beiträge: 112
Registriert: Sa 10.Jul, 2004 14:17
Kontaktdaten:

Beitrag von Nina3Jungs »

Im Mozilla passt es :-) Danke Oxpus :-)
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Also bei mir stimmt die Darstellung, hier bei oxpus, im Firefox (auch Scrollbars sind da)!
Nur auf AmigaLink.de nicht. Da werden Zeilenummern und inhalt versetzt angezeigt. Ich verwende dort aber auch nicht den "Div Expand 2" sondern den "Select Expand BBcodes".
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
cback
Beiträge: 1391
Registriert: Sa 15.Mai, 2004 15:32
Wohnort: Saarland
Kontaktdaten:

Beitrag von cback »

Drückt mal in Oxpus ersten Beitrag auf den Button "Erweitern" und schon sind die Scrollbars wech!
Mann kann durch markieren allerdings trotzdem noch ein paar zeilen hin und her scrollen.
Zuletzt geändert von cback am Mi 12.Jan, 2005 22:21, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Wenn ich auf erweitern klicke, dann bekomme ich den kompletten Code angezeigt! :)
Dann brauch ich keine Scrollbalken mehr. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Nina3Jungs
Beiträge: 112
Registriert: Sa 10.Jul, 2004 14:17
Kontaktdaten:

Beitrag von Nina3Jungs »

[quote="cback - Mi 12.Jan, 2005 21:21";p="20355"]Drückt mal in Oxpus ersten Beitrag auf den Button "Erweitern" und schon sind die Scrollbars wech!
Mann kann durch markieren allerdings trotzdem noch ein paar zeilen hin und her scrollen.[/quote]

Bei mir wird nach Erweitern alles angezeigt ohne, dass noch was zu scrollen wäre.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also die Code-Box selber ist die alte geblieben. Nur der Inhalt ist ein anderer ;)
Und mit meinem Firefox sowie IE habe ich keine Fehler mehr feststellen können...

@AmigaLink
Baue nochmal den jetzt aktuellen Code ein. Ich hatte das Layout-Problem von Dir zunächst auch und selbiges dann sofort korrigiert. Warst wohl in der Zeit dann gerade am einbauen ;)

@All
Die Nummerierung wird wie ja angegeben in der bbcode.php durchgeführt, ist also unabhängig von irgendwelchen Code-Boxen!
Wenn da etwas inkompatibel ist (hier habe ich den "Anti Harvester Mod" deinstallieren müssen), beruht daß auf dir Darstellung diverser Verkettungen von Javascript-Links. Ansonsten 100% HTML-konform ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

Mist da biste mir zu vor gekommen gerade wollte ich den umproggen ^^ *schade* Naja aber cooler Snippet!!!!! *einbau*
Nur ein Informatik Student. ^^
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

:cool:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

die Funktion funktioniert net...

Warum nicht hier der Scrennshot... die verzerrt alles und ich kann nimmer auf den Beitrag antworten
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Häng mal Deine bbcode.php und bbcode.tpl an. Da scheint irgend eine Tabellendefinition durcheinander zu geraten.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

mhm ich such mich bei sowas immer blöde ~.~
Benutzeravatar
volker58
Beiträge: 724
Registriert: Mo 27.Dez, 2004 19:22
Wohnort: Annaberg-Buchholz
Kontaktdaten:

Beitrag von volker58 »

das ganze sieht zwar schön aus aber ich habe gemerkt das es kein zeilenumbruch mehr gibt, also wenn ich das ganz oben im ersten topic kopiere und bei mir einsetze steht alles in einer zeile und das ist nicht so gut denk ich mal

ist aber nicht in jedem programm
$temp_text = html_entity_decode($after_replace); if (!preg_match("/\[s=([0-9]+)\]/", $temp_text)) { $line_number = 1; } else { $line_number = substr($temp_text, 3, strpos($temp_text, "]") - 3); $after_replace = htmlspecialchars(str_replace('[s='.$line_number.']', '', $temp_text)); } $lines = preg_split("/\n/", $after_replace); $after_replace = '<ol start="'.$line_number.'">'; for ($j = 0; $j < sizeof($lines); $j++) { $lines[$j] = preg_replace("/\n/", "", $lines[$j]); $after_replace .= '<li>'.$lines[$j].'</li>'; } $after_replace .= '</ol></td></tr></table>';
so sieht das dann bei mir aus
Antworten