Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Benutzer Diskussion:Rene: Unterschied zwischen den Versionen

Diskussionsseite von Benutzer:Rene
Zeile 258: Zeile 258:
::Ah, stimmt, klar wird dann nach Links gesplittet. Die eckigen Klammern einfach rauszulassen scheint mir aber keine gute Lösung, die hatten ja schon ihren Grund - nur scheint die Implementierung den Zweck nicht so recht zu erfüllen. Die eckigen Klammern werden extra gesucht, weil Ausdrücke in Links allgemein ignoriert werden sollen, wahrscheinlich mit Blick auf Links wie [[Green (SGU)]], innerhalb derer sichergestellt werden soll, dass die Kürzelvorlage keinen Blödsinn macht bzw. es allgemein keinen Grund gibt, die Vorlage arbeiten zu lassen. Nur scheint der Code das nicht zu tun, es wird zwar nach Links gesplittet aber die Links werden trotzdem mit verarbeitet wie Ausdrücke in runden Klammern auch... oder verlässt sich der Code darauf, dass der Link hoffentlich unverändert durch die Kürzelvorlage zurückkommt wenn man ihn komplett übergibt und das dann am Ende erkannt werden kann? Stattdessen scheint mir sinnvoller, ähnlich wie beim "ausklammern" der geklammerten Teile beim Verarbeiten der $para-Elemente Links durch Suchen nach den eckigen Klammern rauszufiltern und einfach ohne weitere Verarbeitung unverändert zu übergeben (also <code>$output .= $para;</code>) wie bei leeren, fertig verarbeiteten Resultaten.
::Ah, stimmt, klar wird dann nach Links gesplittet. Die eckigen Klammern einfach rauszulassen scheint mir aber keine gute Lösung, die hatten ja schon ihren Grund - nur scheint die Implementierung den Zweck nicht so recht zu erfüllen. Die eckigen Klammern werden extra gesucht, weil Ausdrücke in Links allgemein ignoriert werden sollen, wahrscheinlich mit Blick auf Links wie [[Green (SGU)]], innerhalb derer sichergestellt werden soll, dass die Kürzelvorlage keinen Blödsinn macht bzw. es allgemein keinen Grund gibt, die Vorlage arbeiten zu lassen. Nur scheint der Code das nicht zu tun, es wird zwar nach Links gesplittet aber die Links werden trotzdem mit verarbeitet wie Ausdrücke in runden Klammern auch... oder verlässt sich der Code darauf, dass der Link hoffentlich unverändert durch die Kürzelvorlage zurückkommt wenn man ihn komplett übergibt und das dann am Ende erkannt werden kann? Stattdessen scheint mir sinnvoller, ähnlich wie beim "ausklammern" der geklammerten Teile beim Verarbeiten der $para-Elemente Links durch Suchen nach den eckigen Klammern rauszufiltern und einfach ohne weitere Verarbeitung unverändert zu übergeben (also <code>$output .= $para;</code>) wie bei leeren, fertig verarbeiteten Resultaten.
::Wie Du schon sagst behebt das alles aber nur einen Teil des Problems. Gut, die Infobox dürfte zerhackt worden sein, weil das öffnende span-tag zwischen den beiden Links aus der Ep-Vorlage komplett gelöscht bzw. ersetzt wurde und nur das schließende übrig blieb, wodurch die ganze Elemente-Struktur da den Bach runterging. Wenn der Text komplett ersetzt oder gelöscht wird bleibt auch kein halbes HTML-Element übrig und das Problem stellt sich nicht mehr. Trotzdem sollte der Nicht-Kürzel-Text nicht ersetzt oder gelöscht sondern unverändert erhalten bleiben. Und der k-Parameter hat im Ergebnis auch nichts zu suchen. So ist die Kürzelvorlage auch gebaut und Deine direkte Einbindung ohne recursiv-Umweg oben demonstriert auch, dass die Vorlage selbst das korrekt löst. Das müsste dann eher ein zweites (drittes) Problem in der recursive-Funktion des SGPack sein. Ich sehe mit meiner geringen PHP-Erfahrung allerdings nicht wirklich, wo genau. --{{Benutzer:Col. o'neill/sig}} 19:51, 22. Nov. 2022 (CET)
::Wie Du schon sagst behebt das alles aber nur einen Teil des Problems. Gut, die Infobox dürfte zerhackt worden sein, weil das öffnende span-tag zwischen den beiden Links aus der Ep-Vorlage komplett gelöscht bzw. ersetzt wurde und nur das schließende übrig blieb, wodurch die ganze Elemente-Struktur da den Bach runterging. Wenn der Text komplett ersetzt oder gelöscht wird bleibt auch kein halbes HTML-Element übrig und das Problem stellt sich nicht mehr. Trotzdem sollte der Nicht-Kürzel-Text nicht ersetzt oder gelöscht sondern unverändert erhalten bleiben. Und der k-Parameter hat im Ergebnis auch nichts zu suchen. So ist die Kürzelvorlage auch gebaut und Deine direkte Einbindung ohne recursiv-Umweg oben demonstriert auch, dass die Vorlage selbst das korrekt löst. Das müsste dann eher ein zweites (drittes) Problem in der recursive-Funktion des SGPack sein. Ich sehe mit meiner geringen PHP-Erfahrung allerdings nicht wirklich, wo genau. --{{Benutzer:Col. o'neill/sig}} 19:51, 22. Nov. 2022 (CET)
::: Das Problem ist tatsächlich eher, dass darauf vertraut wird, dass die Vorlage es unverändert durchschleift. Ich habe Links mal explizit vom Weiterreichen ausgeschlossen, das sorgt dann aber dafür, dass <code><nowiki>{{#recursiv:--|text [[Bild:Smile.gif]] text|}}</nowiki></code> als eine Linie, das Bild und eine Linie interpretiert wird und bringt noch einige andere Probleme mit sich, wie etwa dass <code><nowiki>text [[Link]] text</nowiki></code> aufgespalten wird in drei Teile und jeder der Teile von recursive gehandhabt wird. Die Problematik, dass die Infobox bricht kommt daher, dass die Ep-Vorlage puren HTML Code zurückgibt, der dann von der recursive Funktion aufgelöst wird. Der Input ist daher nicht <code><nowiki>{{Ep|SGA|2x02}}</nowiki></code> oder legitimer Wikitext, sondern pures HTML. --{{Benutzer:Ghost/Signatur}}  15:34, 23. Nov. 2022 (CET)