Statistik |
Beiträge: 144.532 (Täglich: 19,19 )
Themen: 16.700
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 183%
Ausl. d. letzten 5 Minuten: 163%
Ausl. d. letzten 15 Minuten: 150%
Aktulle Uhrzeit: 23:39
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
BBCode: Quote - Problem |
|
Ich hab mal eine Frage, da mich das schon was länger stört.
Ich habe meinen BBCode quote etwas umgeschrieben.
Sodass man jetzt folgedes schreiben kann:
code: |
1:
|
[quote=Basti]Beispielzitat[/quote] |
|
Raus kommt dann sowas:
Nur dass dann da halt nicht "Zitat" sondern "Zitat von Basti" steht.
Ich hoffe, soweit kann man mir folgen.
Jetzt gibt es aber ein Problem, da einer User in seinem Usernamen am Ende eine eckige Klammer zu hat. Also nicht "Basti" sondern "[Basti]" als Usernamen hat.
Das ergebnis ist dann, dass da steht: "Zitat von [Basti" und als Text "]Beispielzitat"
Ist ja logisch, dass es so umgesetzt wird.
Aber wie kann ich das verhindern?
Also dass die eckige Klammer eben noch zum Usernamen gehört.
|
|
13.09.2011 14:19 |
|
|
|
Versteht ihr mein Problem nicht? Oder habt ihr auch keine Idee?
Also ich hatte mir evtl. überlegt, dass im Code der Name in Anfürhungszeichen gesetzt werden muss.
Nur weiß ich 1. nicht, wie das geht und 2. nicht, ob man das dann für alle BBCodes so ändern muss und ob sich der Aufwand lohnt.
Eine andere Möglichkeit sehe ich aber nicht, ihr?
|
|
16.09.2011 15:04 |
|
|
|
Naja im Nachhinein ok.
Aber jetzt hat der User den Namen nun mal und den deswegen jetzt zu ändern fänd ich auch doof...
Außerdem war der Name zuerste da.
Aber wenns tatsächlich zu kompliziert wäre, da was zu ändern, dann gehts wohl nur so...
|
|
16.09.2011 20:34 |
|
|
|
So sieht er aus:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
<table align="center" width="98%" cellpadding="4" cellspacing="1" class="tableinborder">
<tr>
<td align="left" class="tablecat"><span class="smallfont"><b>{$lang->items['LANG_GLOBAL_QUOTE2']} {param1}:</b></span></td>
</tr>
<tr class="normalfont">
<td class="inposttable" align="left">{param2}</td>
</tr>
</table> |
|
Und so wird er aufgerufen:
code: |
1:
|
[quote=Basti]Dies ist ein Beispiel.[/quote] |
|
|
|
16.09.2011 22:45 |
|
|
bam313 unregistriert
|
|
Es ist eigentlich verständlich, warum dies nicht funktionieren kann:
code: |
1:
|
[quote=[Basti]]Dies ist ein Beispiel.[/quote] |
|
Hänge einmal deine Datei acp/lib/class_parse.php gezipt an ...
bam
|
|
17.09.2011 11:06 |
|
|
|
Ja ist mir schon klar, warum das nicht funktioniert.
Bzw. warum es so funktioniert, wie es funktioniert.
Steht ja im ersten Post: "logisch".
Anbei mal die Datei.
|
|
17.09.2011 13:46 |
|
|
bam313 unregistriert
|
|
Versuche einmal folgendes, worauf ich aber keine Garantie geben kann, denn im schlimmsten Fall hebelst damit die gesamte bbcode-Funktion quote (Zitat) aus.
Suche in der Datei acp/lib/class_parse.php nach:
php: |
1:
2:
3:
4:
5:
|
function preg_quote($text) {
$text = preg_quote($text);
$text = str_replace("/", "\/", $text);
return $text;
} |
|
Ersetze mit (vorher Dateisicherung machen!):
php: |
1:
2:
3:
4:
5:
6:
7:
|
function preg_quote($text) {
$text = preg_quote($text);
$text = str_replace("/", "\/", $text);
$text = str_replace("[", "\[", $text);
$text = str_replace("]", "\]", $text);
return $text;
} |
|
bam
|
|
17.09.2011 14:38 |
|
|
|
Nee, da ändert sich leider gar nichts.
Ist nach wie vor die selbe Darstellung.
|
|
18.09.2011 21:13 |
|
|
bam313 unregistriert
|
|
Probier es einmal so - latürnich wieder ohne Garantie:
php: |
1:
2:
3:
4:
5:
6:
7:
|
function preg_quote($text) {
$text = preg_quote($text);
$text = str_replace("/", "\/", $text);
$text = str_replace("[", "|", $text);
$text = str_replace("]", "|", $text);
return $text;
} |
|
bam
|
|
25.09.2011 10:34 |
|
|
bam313 unregistriert
|
|
|
25.09.2011 13:23 |
|
|
|
|
Zitat: Original von bam313
Wahrscheinlich liegt es an Zweitem, denn ich wüsste nun nicht wie ich strg_repl in JavaScript schreiben sollte ...
|
|
|
Siehe meine Anpassung vom Timer-bbcode; da wird replace eingesetzt,
__________________ Gruss Mannes
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
|
25.09.2011 15:02 |
|
|
|
|
Zitat: Original von Basti89
Außerdem war der Name zuerste da.
|
|
|
Nein! Die Quote-funktionalität war bereits VOR dem User da.
__________________ Gruss Mannes
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
|
25.09.2011 15:03 |
|
|
|
|
Zitat: Original von bam313
Probier es einmal so - latürnich wieder ohne Garantie:
php: |
1:
2:
3:
4:
5:
6:
7:
|
function preg_quote($text) {
$text = preg_quote($text);
$text = str_replace("/", "\/", $text);
$text = str_replace("[", "|", $text);
$text = str_replace("]", "|", $text);
return $text;
} |
|
bam |
|
|
Funktioniert leider auch nicht.
|
|
25.09.2011 22:52 |
|
|
|
Das ist sehr schön für dich, wenns bei dir so ist.
Aber so wil ich das ja nicht, sonst hätte ich das ja kaum geändert.
Der Username soll halt im Header mit drinstehen.
|
|
26.09.2011 12:53 |
|
|
|
|
Zitat: Original von DonManfred
|
Zitat: Original von Basti89
Außerdem war der Name zuerste da.
|
|
|
Nein! Die Quote-funktionalität war bereits VOR dem User da. |
|
|
Die Quote-Funktionalität vieleicht, aber nicht so, wie ich sie umgeändert habe.
Ich hab keine Ahnung, aber die Funktion, die ich da verändern soll... kann das sein, dass die vom Username-Parameter gar nicht aufgerufen wird?
Weil dafür müsste die doch sein, oder?
|
|
27.09.2011 15:52 |
|
|
|
|
|
|