Beiträge: 1.184
Themen: 14
Registriert seit: Oct 2009
23.07.2011, 12:51
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2011, 15:14 von Stefan Pochmann.)
(23.07.2011, 01:29)Felk schrieb: Ich musste es wieder deaktivieren, weil es alle Spoiler-Ausklapp-Knöpfe hat verschwinden lassen O_o
Nanu... war das mit deiner vorigen Version auch schon so, oder ist das erst mit meiner passiert? Irgendeine Ahnung, woran es liegt? Zeig bitte mal den html-code eines Beitrags mit Spoiler, einmal mit unserem Plugin aktiviert und einmal deaktiviert. Bin ja mal gespannt, was das fuer einen Unterschied macht...
Beiträge: 2.570
Themen: 126
Registriert seit: Apr 2009
23.07.2011, 17:54
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2011, 18:01 von Felk.)
Erstmal...
Ohne Plugin:
Code:
<div>
<div class="spoiler_header">
Test
<a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='<button>Ausklappen</button>';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='<button>Einklappen</button>';}"><button>Ausklappen</button></a>
</div>
<div class="spoiler_body" style="display: none;">Lorem ipsum</div>
</div>
Mit Plugin:
Code:
<div>
<div class="spoiler_header">
Test
<a href="http://alg.garron.us/?alg=&animtype=solve¬ation=WCA" target="_blank"></a>
</div>
<div class="spoiler_body" style="display: none;">Lorem ipsum</div>
</div>
Scheint einfach den gesamten A-Tag zu ersetzen.
EDIT: Okay, der Ausdruck ersetzt alle <a>'s und [url]'s.
Wenn ich mir den ausdruck angucke, sieht das auch komisch aus:
#\[alg(?:=([2-7]))?](.*?)\[/alg]|($move(?: $move){2,})
|(\[url.*?/url]|<a .*?/a>)#eis
Beiträge: 1.184
Themen: 14
Registriert seit: Oct 2009
Die matche ich mit voller Absicht, um sie dann eben zu ueberspringen. Dafuer diese Zeile:
PHP-Code:
'"$4" ? stripslashes("$4") : garron("$2$3","$1")',
$1 ist gegebenenfalls die Groesse
$2 oder $3 ist gegebenenfalls der Algorithmus
$4 ist gegebenenfalls das a oder url
In letzterem Fall sollte das a/url nicht durch garron ersetzt werden, sondern durch sich selbst.
Beiträge: 1.184
Themen: 14
Registriert seit: Oct 2009
Grad mal so getestet:
PHP-Code:
$message = <<<MESSAGE
<div>
<div class="spoiler_header">
Test
<a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='<button>Ausklappen</button>';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='<button>Einklappen</button>';}"><button>Ausklappen</button></a>
</div>
<div class="spoiler_body" style="display: none;">Lorem ipsum</div>
</div>
MESSAGE;
echo alglinker_run( $message );
Ausgabe:
Code:
<div>
<div class="spoiler_header">
Test
<a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='<button>Ausklappen</button>';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='<button>Einklappen</button>';}"><button>Ausklappen</button></a>
</div>
<div class="spoiler_body" style="display: none;">Lorem ipsum</div>
</div>
Beiträge: 1.184
Themen: 14
Registriert seit: Oct 2009
(23.07.2011, 18:27)Stefan schrieb: Die matche ich mit voller Absicht, um sie dann eben zu ueberspringen. Dafuer diese Zeile:
PHP-Code:
'"$4" ? stripslashes("$4") : garron("$2$3","$1")',
Probier's mal stattdessen hiermit:
PHP-Code:
'(\'$4\'!=\'\' ? stripslashes(\'$4\') : garron(\'$2$3\',\'$1\'))',
Beiträge: 2.570
Themen: 126
Registriert seit: Apr 2009
23.07.2011, 19:45
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2011, 19:53 von Felk.)
Ich war schuld. Nehm ich mein (w?) aus dem $move, dann geht es. Ich schätze ich denke da zu einfach.
$move funktioniert so, erkennt aber kein Lw, Dw' Uw2 usw.
Code:
$move = "\b[UDFBLRudfblrMESxyz](?:'|2|\b)";
EDIT: Das ist ja doof. alg.garron.us schluckt w's nur im WCA Modus und w's nur im WCA-Modus
Beiträge: 1.184
Themen: 14
Registriert seit: Oct 2009
23.07.2011, 20:08
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2011, 20:30 von Stefan Pochmann.)
(23.07.2011, 19:45)Felk schrieb: Ich war schuld. Nehm ich mein (w?) aus dem $move, dann geht es. Ich schätze ich denke da zu einfach.
Boah, ja, das darfst du natuerlich nicht machen. Einfach mal Klammern hinzufuegen und so die Nummerierung veraendern. Nimm die einfach mal weg, also nur "w?". Wieso willst du das ueberhaupt klammern?
(23.07.2011, 19:45)Felk schrieb: EDIT: Das ist ja doof. alg.garron.us schluckt
w's nur im WCA Modus und
w's nur im WCA-Modus
Hast du dich da verschrieben?
Beiträge: 1.184
Themen: 14
Registriert seit: Oct 2009
23.07.2011, 20:30
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2011, 20:33 von Stefan Pochmann.)
Und ersetz die eine Zeile durch das hier, das ist besser:
PHP-Code:
'\'$4\' ? str_replace(\'\\"\', \'"\', \'$4\') : garron(\'$2$3\',\'$1\')',
Hab ne Idee, wie a/url noch sauberer echt uebersprungen werden koennen (ohne Ersetzen), probier ich vielleicht noch.