Seite 1 von 2
Klammer anstatt (
Verfasst: 05.06.2012 15:46
von Link275
Hi,
Ich experimentiere gerade mit den BBCodes und bin dabei, mir selbst welche zusammenzubasteln. Es würde eigentlich auch alles funktionieren, aber auf ein Problem bin Ich dabei gestoßen: Bei Klammern, also ) und ( werden diese nach dem posten im HTML-QuellCode als ( und ) angezeigt. Im normalen Beitrag sehe Ich zwar die Klammern wie sie sein sollen, aber sie müssen unbedingt im Quellcode genau so stehen, und nicht dieser kodierte Kram. Das ist wichtig. An welcher Stelle im Code muss ich das umstellen, damit das funktioniert? Bisher habe ich in der acp_bbcodes.php in /includes/acp bei Zeile 352 folgendes verändert:
Vorher:
Code: Alles auswählen
'TEXT' => array('!(.*?)!es' => "str_replace(array(\"\\r\\n\", '\\\"', '\\'', '(', ')'), array(\"\\n\", '\"', ''', '(', ')'), trim('\$1'))"),
Nachher:
Code: Alles auswählen
'TEXT' => array('!(.*?)!es' => "str_replace(array(\"\\r\\n\", '\\\"', '\\'', '(', ')'), array(\"\\n\", '\"', ''', '(', ')'), trim('\$1'))"),
Jetzt ist es immerhin schonmal so, dass nachdem ich meinen BBCode abspeichere das auch in der Datenbank ohne die #40; und #41; übernommen wird, aber irgendwo scheint der das, wenn der Beitrag geladen wird, nochmal zu überprüfen / konvertieren. Nur wo ist die Frage...
Hoffe jemand hat eine Antwort für mich :3
Grüße
Link
Re: Klammer anstatt (
Verfasst: 05.06.2012 23:48
von Miriam
Link275 hat geschrieben:...Im normalen Beitrag sehe Ich zwar die Klammern wie sie sein sollen, aber sie müssen unbedingt im Quellcode genau so stehen, und nicht dieser kodierte Kram.
Wie sehen denn Deine Umsetzungen der im ACP selbsterstellten BBCodes aus und was möchtest Du genau erreichen?
Re: Klammer anstatt (
Verfasst: 06.06.2012 09:28
von Link275
Wie sehen denn Deine Umsetzungen der im ACP selbsterstellten BBCodes aus und was möchtest Du genau erreichen?
Ok, ich möchte erreichen dass im HTML-Code der Seite runde Klammern anstatt ( oder ) angezeigt werden. Hintergrund ist der, dass der eingegebene Text zwischen den BBCodes der Quellcode für ein Applet ist. Beispiel:
[myapplet]Quellcode in dem auch Klammern vorkommen[/myapplet]
In der Ersetzung wird das entsprechend verarbeitet, würden die Klammern angezeigt, hätte es auch längst funktioniert. Wenn Ich als Ziel für den Quellcode eine Datei in der Form angebe:
[myapplet file="Pfad, also URL zur Datei in der der Quellcode steht"][/myapplet]
funktioniert es ja, da gibt's dann auch kein Problem mit den Klammern weil die Datei ja gar nicht durch phpbb verarbeitet wird.
Ich hoffe es kommt einigermaßen verständlich rüber was ich hier erreichen will
Grüße
Link
Re: Klammer anstatt (
Verfasst: 06.06.2012 13:11
von Miriam
Ich verstehe immer noch nicht, wieso der Code im HTML Code nicht erstzt werden soll? Das entscheidende ist doch die Anzeige des Codes, die dann kopiert werden kann. Und da sind Klammern auch wie gewünscht Klammern und keine HTML Ersetzung.
Wie gehst Du denn vor, um den gepostetn Code zu übernehmen? (An Hand eines Bsp. wäre schön.)
Und welche Ersetzungen hast Du im ACP vorgenommen, um zum gewünschten Ergebnis zu gelangen?
Re: Klammer anstatt (
Verfasst: 06.06.2012 13:49
von Link275
Wie gesagt, die Klammern dürfen auch im Code nicht ersetzt werden, weil sie von dort aus direkt Quellcode für ein Applet sind. Beispielsweise ein Funktionsaufruf, den ich mit beispiel(); aufrufe benötigt klammer.
Das hab ich gemacht:
- ACP->Beiträge->Nachrichten->BBCodes
- Dort auf BBCode hinzufügen geklickt
- Bei "BBCode-Benutzung das eingegeben:
- Und bei HTML-Ersetzung das hier:
Code: Alles auswählen
<script src="http://marius-gerum.de/processing.js"></script>
<script type="text/processing" data-processing-target="mycanvas">{TEXT1}</script>
<canvas id="mycanvas"></canvas>
Und wenn das mit den Klammern eben klappen würde, würde das Applet im Beitrag angezeigt werden
Link
Re: Klammer anstatt (
Verfasst: 06.06.2012 15:32
von Pyramide
Genau soetwas (vom Benutzer eingebenen Text direkt als HTML oder gar (Java-)script ausgeben) ist in phpBB3 absichtlich nicht mehr möglich, da dies
XSS Tür und Tor öffnen würde und somit eine riesige Sicherheitslücke wäre. Du solltest stattdessen den Benutzer nur einzelne Werte eingeben lassen und diese dann als {SIMPLETEXT} o.ä. verarbeiten. Also z.B:
BBCode:
Ersetzung:
Code: Alles auswählen
<script type="text/javascript">alert('{SIMPLETEXT}');</script>
Re: Klammer anstatt (
Verfasst: 06.06.2012 16:00
von Link275
Ja, allerdings geht es ja hier nicht um JavaScript, dieser würde ja gar nicht interpretiert werden. Deshalb brauch ich die Klammern, nur so kann der Quellcode ausgeführt werden. Und da müsste ich eben wissen wo der das noch umstellt und in ( bzw. ) konvertiert, damit ich die Stelle entsprechend umschreiben kann.
Link
Re: Klammer anstatt (
Verfasst: 06.06.2012 21:46
von BNa
Klingt alles etwas nebulös. Erkläre doch mal genau, was das für ein Script ist, was Du genau erreichen möchtest und ob hier js, php oder eine andere Sprache interpretiert werden soll. Möglicherweise gibt es eine ganz einfache, sicherere Lösung, die nicht global die BBCode Engine aushebelt

Re: Klammer anstatt (
Verfasst: 06.06.2012 23:05
von Miriam
Also ich habe den Code in der /includes/acp/acp_bbcodes.php so geändert:
Code: Alles auswählen
'TEXT' => array(
'!(.*?)!es' => "str_replace(array(\"\\r\\n\", '\\\"', '\\''), array(\"\\n\", '\"', '''), trim('\$1'))"
),
Und dann den benutzerdefinierten BBCode Tag nochmal gelöscht und neu eingepflegt. Dann werden die Klammern im HTML-Code des Beitragstextes als Klammmern angezeigt.
Du mußt auch den Cache leeren (in ACP).
Re: Klammer anstatt (
Verfasst: 07.06.2012 13:50
von BNa
Genau, das replacement komplett rausnehmen, statt nur neu zu triggern
