img HTML Tag ohne widht und height Attribute
QUIQQER generiert ziemlich oft <img>
Tag ohne widht und height Attribute. Es wird mit einer roten Meldung bestraft. Ich habe entdeckt, woran es liegt, dass QUIQQER die Attribute im HTML Code nicht generiert. Es liegt primär an dieser Zeile:
https://dev.quiqqer.com/quiqqer/quiqqer/-/blob/master/lib/QUI/Projects/Media/Utils.php#L564
Wenn $attributes['width']
oder $attributes['height']
vom Typ string ist, dann ist alles super. Wird das aber ein Integer, kommt man in continue
, wodruch die Attribute nicht generiert werden.
Woran liegt es, dass manchmal die 2 Attribute vom Typ Int sind? Die Antwort liegt hier: https://dev.quiqqer.com/quiqqer/package-smarty/-/blob/master/Quiqqer/Engine/plugins_qui/function.image.php#L248. Und genauer gesagt hier: https://dev.quiqqer.com/quiqqer/quiqqer/-/blob/master/lib/QUI/Projects/Media/Image.php#L99
Wenn man im Smarty ein Wert für widht
angbit, was größer ist, als das Bild wird, wird der Wert von \QUI\Projects\Media\Image::getWidth gesetzt. Die Funktion gibt Int zurück. Dadurch kommt man in den continue
an dieser Stelle: https://dev.quiqqer.com/quiqqer/quiqqer/-/blob/master/lib/QUI/Projects/Media/Utils.php#L564...
Lösung
- In Smarty
$maxWidth
und$maxHeight
zu String convertieren
- in
quiqqer/quiqqer
zusätzlich prüfen, ob es kein Int ist.
Eigentlich relativ kleine Änderung. Ich kann das gerne einspielen. Aber bitte schau das vorerst kurz an und überlege, ob das keine negative Auswirkung haben kann. Meiner Meinung nach weder Lösung 1 noch von 2 sollte was kaputt machen, aber mir fehlt noch deine 20-Jahre-Erfahrung um das korrekt einzuschätzen