Klammer anstatt (

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Link275
Mitglied
Beiträge: 5
Registriert: 05.06.2012 15:30

Klammer anstatt (

Beitrag 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
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Klammer anstatt (

Beitrag 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?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Link275
Mitglied
Beiträge: 5
Registriert: 05.06.2012 15:30

Re: Klammer anstatt (

Beitrag 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
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Klammer anstatt (

Beitrag 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?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Link275
Mitglied
Beiträge: 5
Registriert: 05.06.2012 15:30

Re: Klammer anstatt (

Beitrag 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:

Code: Alles auswählen

[sketch]{TEXT1}[/sketch]
- 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Klammer anstatt &#40;

Beitrag 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:

Code: Alles auswählen

[test]{SIMPLETEXT}[/test]
Ersetzung:

Code: Alles auswählen

<script type="text/javascript">alert('{SIMPLETEXT}');</script>
KB:knigge
Link275
Mitglied
Beiträge: 5
Registriert: 05.06.2012 15:30

Re: Klammer anstatt &#40;

Beitrag 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 &#40; bzw. &#41; konvertiert, damit ich die Stelle entsprechend umschreiben kann.


Link
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Klammer anstatt &#40;

Beitrag 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 :wink:
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Klammer anstatt &#40;

Beitrag 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).
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Klammer anstatt &#40;

Beitrag von BNa »

Genau, das replacement komplett rausnehmen, statt nur neu zu triggern :wink:
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“