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
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Zeilen in CODE-Blöcken nummerieren

Beitrag von oxpus » Mi 12.Jan, 2005 01:23

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
Nina3Jungs
User
User
Beiträge: 160
Registriert: Sa 10.Jul, 2004 13:17
Kontaktdaten:

Beitrag von Nina3Jungs » Mi 12.Jan, 2005 01:36

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
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mi 12.Jan, 2005 07:51

Sowas wie [code=20]?
Theoretisch ja. Muss ich mir mal anschauen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
volker58
User
User
Beiträge: 765
Registriert: Mo 27.Dez, 2004 19:22
Wohnort: Annaberg-Buchholz
Kontaktdaten:

Beitrag von volker58 » Mi 12.Jan, 2005 08:55

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
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mi 12.Jan, 2005 09:57

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
volker58
User
User
Beiträge: 765
Registriert: Mo 27.Dez, 2004 19:22
Wohnort: Annaberg-Buchholz
Kontaktdaten:

Beitrag von volker58 » Mi 12.Jan, 2005 12:18

wie immer vom feinsten, danke
Gruss Volker

http://www.fuchsienfreunde.de

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mi 12.Jan, 2005 15:50

@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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
blondi
User
User
Beiträge: 1091
Registriert: Do 30.Sep, 2004 13:36

Beitrag von blondi » Mi 12.Jan, 2005 16:11

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
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mi 12.Jan, 2005 16:32

Naja, ist ja noch nicht ganz fertig, aber bald :)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
blondi
User
User
Beiträge: 1091
Registriert: Do 30.Sep, 2004 13:36

Beitrag von blondi » Mi 12.Jan, 2005 18:54

hoffnungsvoll und modsüchtig warten wir doch gerne... ^u

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mi 12.Jan, 2005 21:02

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
blondi
User
User
Beiträge: 1091
Registriert: Do 30.Sep, 2004 13:36

Beitrag von blondi » Mi 12.Jan, 2005 21:30

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
Moderator
Moderator
Beiträge: 1556
Registriert: Sa 15.Mai, 2004 14:32
Wohnort: Saarland
Kontaktdaten:

Beitrag von cback » Mi 12.Jan, 2005 21:45

BUG BUG!
In Firefox sind die Scrollbars wech!

Benutzeravatar
Nina3Jungs
User
User
Beiträge: 160
Registriert: Sa 10.Jul, 2004 13:17
Kontaktdaten:

Beitrag von Nina3Jungs » Mi 12.Jan, 2005 22:00

Im Mozilla passt es :-) Danke Oxpus :-)

Benutzeravatar
AmigaLink
Moderator
Moderator
Beiträge: 6211
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink » Mi 12.Jan, 2005 22:04

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
Moderator
Moderator
Beiträge: 1556
Registriert: Sa 15.Mai, 2004 14:32
Wohnort: Saarland
Kontaktdaten:

Beitrag von cback » Mi 12.Jan, 2005 22:21

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
Moderator
Moderator
Beiträge: 6211
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink » Mi 12.Jan, 2005 22:35

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
User
User
Beiträge: 160
Registriert: Sa 10.Jul, 2004 13:17
Kontaktdaten:

Beitrag von Nina3Jungs » Do 13.Jan, 2005 00:24

[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
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Do 13.Jan, 2005 01:02

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
Bootenks
Developer
Developer
Beiträge: 2034
Registriert: Sa 29.Mai, 2004 22:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)
Kontaktdaten:

Beitrag von Bootenks » Do 13.Jan, 2005 01:07

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
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Do 13.Jan, 2005 01:08

:cool:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
Bootenks
Developer
Developer
Beiträge: 2034
Registriert: Sa 29.Mai, 2004 22:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)
Kontaktdaten:

Beitrag von Bootenks » Do 13.Jan, 2005 03:06

die Funktion funktioniert net...

Warum nicht hier der Scrennshot... die verzerrt alles und ich kann nimmer auf den Beitrag antworten

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29116
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Do 13.Jan, 2005 08:04

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
Bootenks
Developer
Developer
Beiträge: 2034
Registriert: Sa 29.Mai, 2004 22:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)
Kontaktdaten:

Beitrag von Bootenks » Do 13.Jan, 2005 11:05

mhm ich such mich bei sowas immer blöde ~.~

Benutzeravatar
volker58
User
User
Beiträge: 765
Registriert: Mo 27.Dez, 2004 19:22
Wohnort: Annaberg-Buchholz
Kontaktdaten:

Beitrag von volker58 » Do 13.Jan, 2005 11:55

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