Hallo,
ich hab vor, GeSHi in das MyBB einzubauen und hab keine Ahnung, in welcher Datei ich dieses bekanntgeben muss:
PHP-Code:
include_once('geshi.php');
Weiß jemand, welche Datei dafür zuständig ist - wo sowas reingehört?
Das wäre fein...
Documentation zu GeShi
Ich weiß. Aber das Thema hatten wir schonmal. Dieses Plugin verfügt über keine Zeilennummern und setzt den Code konsequent linksbündig. Also keine Einrückungen möglich. Oder hat sich etwas daran geändert? Schön wäre es ja...
Edit: Nein, hat sich nicht geändert... Schade.
Da alle Beiträge durch die inc/class_parser.php laufen wäre es sinnvoll hier anzusetzen. Ich weiß aber nicht ob es evtl. einfacher ist das vorhandene Plugin anzupassen/zu erweitern.
Das mit dem Anpassen hat ja schon seinen Reiz, hab ich auch schon jemanden probieren lassen, der sich in PHP besser auskennt als ich. Nur wird es da urheberrechtliche Schwierigkeiten geben.
Siehe folgende Diskussion:
https://www.mybb.de/forum/showthread.php?tid=19874
Falls deine Zeit ausreicht, sich damit mal zu befassen, würdest du allen, die es benötigen, einen riesen Gefallen tun. So wie es jetzt ist, ist es unbrauchbar. Die Zeilennummern sind nicht soooo wichtig - aber das Einrücken sollte IMHO schon funktionieren. Wie soll man einen 1000-Zeiler lesen und begreifen ohne übersichtliches Einrücken?
Edit:
class_parser.php <- Okay - da setze ich mal an. Danke
Du kannst das Plugin für deine Bedürfnisse umschreiben, du darfst deine Version nur nicht anderen anbieten. Erst dann gibt es Konflikte mit dem Autor.
Versuche mal folgendes wegen dem Einrücken. Füge in die Box für zusätzliches CSS in den Einstellungen deines Themes ganz unten folgendes ein:
Code:
code {
white-space: pre;
}
Danke. Mit pre haben wir es schon probiert (in der geshi.php selbst). Der Effekt ist der Gleiche, wie mit deinem Vorschlag:
Der Code wird ordnungsgemäß eingerückt, nur befindet sich zwischen den Code-Zeilen immer eine Leerzeile. Wie bekommt man die weg?
Schau selbst:
http://lese-welt.de/code.png
Versuchs mal so. Öffne die Plugindatei und suche nach:
PHP-Code:
return "<div class=\"code_header\">Code ".strtoupper($glang)." :<br /></div>\n<div class=\"code_body\"><div dir=\"ltr\"><code>".$hl_parse."</code></div></div>\n";;
Ersetzen durch:
PHP-Code:
return "<div class=\"code_header\">Code ".strtoupper($glang)." :<br /></div>\n<div class=\"code_body\"><div dir=\"ltr\"><code>".str_replace("<br />", "", $hl_parse)."</code></div></div>\n";
Ändert nichts. Leerzeile ist immernoch vorhanden (dazwischen). Schade.
Hast du einen Link zu der Seite mit dem Problem? Ohne den Code der ausgegeben wird, kann man nur schlecht helfen.