Frage zur Einbindung von eigenem BBCode

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.
MrAnes
Mitglied
Beiträge: 9
Registriert: 08.04.2009 16:53
Wohnort: Bietigheim-Bissingen
Kontaktdaten:

Re: Frage zur Einbindung von eigenem BBCode

Beitrag von MrAnes »

Hi,

bin auch ein Stück weiter gekommen.
habe jetzt deine Test-Funktion

Code: Alles auswählen

function do_something($input) {
   return ($input == '1') ? 'Eins' : 'was anderes';
}
in die includes/bbcode.php eingebaut und erhalte einen Rückgabewert, der zumindest erahnen lässt, dass er die Funktion aufruft ... nämlich folgenden:

Code: Alles auswählen

[was andereswas andereswas andereswas andereswas andereswas andereswas andereswas andereswas andereswas andereswas anderesh]
interessanter Weise fügt er "[" und "h]" hinzu ... wobei "h" bei jedem Aufruf ein anderer Buchstabe ist.

Im Post hab ich folgendes stehen:

Code: Alles auswählen

[kb]HALLO WELT Das ist ein Test[/kb]
Wenn dir noch ne Idee im Kopf rumswebt ... immer her damit ich bin für jeden Tipp dankbar ! :grin:
Don´t fear the penguin
MrAnes
Mitglied
Beiträge: 9
Registriert: 08.04.2009 16:53
Wohnort: Bietigheim-Bissingen
Kontaktdaten:

Re: Frage zur Einbindung von eigenem BBCode

Beitrag von MrAnes »

So, noch ein letzter Zwischenstand für heute ...
Meine DB sieht momentan so aus

Code: Alles auswählen

mysql> select * from phpbb_bbcodes \G;
*************************** 1. row ***************************
          bbcode_id: 13
         bbcode_tag: kb
    bbcode_helpline: MyHelp
 display_on_posting: 1
       bbcode_match: [kb]{TEXT}[/kb]
         bbcode_tpl: {TEXT}
   first_pass_match: !\[kb\](.*?)\[/kb\]!ies
 first_pass_replace: '[kb:$uid]'.str_replace(array("\r\n", '\"', '\'', '(', ')'), array("\n", '"', ''', '(', ')'), trim('${1}')).'[/kb:$uid]'
  second_pass_match: !\[kb:$uid\](.*?)\[/kb:$uid\]!se
second_pass_replace: do_something('${2}')
1 row in set (0.00 sec)
Die Funktion hab ich nun in die includes/bbcode.php eingebaut:

Code: Alles auswählen

include ('gwbbcode.php');

function do_something($input)
{
        $myGW = new GWEnCode(false);
        $myBuild = $myGW->encode("OwQDQjzPH3JlnUmhUe4LfA");
        return $myBuild;
}
Erfreulicher Weise kommt hier auch die korrekte Ausgabe.

Also bleibt noch ein Punkt offen, an dem es noch hakt.
Der VorlagenCode soll von den User selsbt in Form von

Code: Alles auswählen

[build]OwQDQjzPH3JlnUmhUe4LfA[/build]
eingebgeben werden und nicht fest im Code hinterlegt sein.

Zum Test habe ich folgende Funktion eingebaut:

Code: Alles auswählen

function do_something($input)
{
        return $input;
}
Diese Funktion sollte den String, der innerhalb meiner BB-Tags steht zurückgeben.
Leider ist die RÜckgabe ein leerer String.
d. h. Was innerhalb der BB-Tags steht wird noch nicht an die Funktion übergeben.

Wenn hier noch jemand eine Idee hat müsste es eigentlich funktionieren und mein Dank wäre allen Helfern sicher ! :wink:

So, dann allen mal eine gute Nacht und bis morgen in alter Frische.

Gruß
Anes
Don´t fear the penguin
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Frage zur Einbindung von eigenem BBCode

Beitrag von Pyramide »

Du verwendest als second_pass_replace do_something('${2}'). ${2} ist die zweite "capturing group" - du willst aber die erste (second_pass_match enthält nur eine Gruppe).
KB:knigge
MrAnes
Mitglied
Beiträge: 9
Registriert: 08.04.2009 16:53
Wohnort: Bietigheim-Bissingen
Kontaktdaten:

Re: Frage zur Einbindung von eigenem BBCode

Beitrag von MrAnes »

Muss ich dafür irgendwelche Einstellungen an dem Webserver vornehmen?
Auf dem einen führt er das PHP aus auf dem anderen nicht.

ein diff auf die Config-File von php ergibt eine 100 %ige übereinstimmung.

Ich muss zu geben ich verstehs grad nicht.
Don´t fear the penguin
Antworten

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