Ralf H. wrote: ↑Mon Nov 22, 2021 3:55 pm
Ich bin inzwischen der Meinung, dass das Puzzel-Bugfixen für euch (und mich), aber insbesondere für den Entwickler möglicherweise zur Verwirrung führen kann.
Ja, das Puzzel-Bugfixen ist definitiv ein Problem, allein schon, weil man sich nachher durch einen langen Thread wühlen muss. Nun gibt es leider kein öffentliches Repo, wo man einzelne Bugs melden, und vielleicht auch gleich Pull-Requests einreichen könnte. Vielleicht sollten wir unter "Addons and Plugins" einen Thread erstellen, wo wir versuchen, einen einzigen Post pro Bug (idealerweise mit Patch-Vorschlag) zu erstellen, um Jerry den Überblick zu erleichtern? Dann könnten Moderatoren das Pflegen, nachdem hier im Thread das Puzzel-Bugfixen durchgeführt wurde.
olape wrote: ↑Mon Nov 22, 2021 4:59 pm
ich bin auch nur am raten, da ich das Plugin nicht habe und entsprechend auch nie genutzt habe.
Du kannst es von
https://simplesolutions.dk/?Gallery_Col ... mage_Album herunter laden.
lck wrote: ↑Mon Nov 22, 2021 6:29 pm
Grundsätzlich sollte man aber immer nur Kleinbuchstaben, keine Umlaute, keine Leerzeichen, Zahlen, Unter- und Bindestriche verwenden.
Ist heutzutage kaum noch haltbar, und vielleicht auch nicht mehr nötig. Ab PHP 7.1 funktionieren UTF-8 kodierte Dateinamen unter Windows ganz hervorragend, und ich glaube, unter Linux in aller Regel sowieso. Einige spezielle Zeichen (wie z.B. die Wildcards * und ?) sollte man vermeiden, aber Umlaute etc. sind vermutlich kein besonderes Problem. Ein bisschen Aufpassen muss man aber wegen Groß-/Kleinschreibung, da manche Systeme case-sensitive sind (Linux), und andere case-insensitive (Windows/NTFS, u.U. auch macOS). Man kann unter Linux eben mein.txt und MEIN.TXT und Mein.Txt im gleichen Verzeichnis haben, unter Windows aber nicht.
Jedenfalls sind die einfachen Stringfunktionen von PHP (bis auf ein paar Ausnahmen) nicht für UTF-8 geeignet. Insbesondere str_ireplace(), stristr() und stripos() funktionieren nicht wie gewünscht. Statt dessen sollte man die entsprechenden MBString-Funktionen verwenden, oder CMSimple_XHs utf8_stripos(). Oder man verwendet PCRE mit dem u-Modifier und ggf.
entsprechende Zeichenklassen. Dabei ist aber zu berücksichtigen, dass MBString (und utf8_stripos()) keine Unicode-Normalisierung durchführen (bei PCRE bin ich nicht sicher). Das kann ein Problem sein, muss aber nicht. Wird die Normalisierung benötigt, dann hilft
Normalizer.
olape wrote: ↑Mon Nov 22, 2021 12:27 pm
Code: Select all
if(preg_match('/^[a-z0-9-_]+\.jpg$/i', $filename)) {
sollte das eigentlich tun (hoffe ich)
Ja, aber eben nur für lateinische Buchstaben (a-z), und auch nur, wenn der String nur ASCII-Zeichen enthält (also das entsprechende Subset von UTF-8). Allgemeiner wäre:
Code: Select all
if(preg_match('/^[\pL0-9-_]+\.jpg$/iu', $filename)) {
Vielleicht sollte CMSimple_XH da einen passenden Regex bereit stellen (oder mehrere)? Hätte zumindest den Vorteil, dass nicht zu viele Regexs im Spiel sind, da PHP diese nur bis zu einer bestimmten Anzahl in einem Cache vorhält.