Upload Image Size Chain
Verfasst: Mi 17. Jul 2019, 13:41
Ich habe hier eine Chain, die Bilder vor dem Hochladen in die Dateiverwaltung automatisch skaliert.
Grund der Chain ist der, dass viele User eine Webseite keine Bildbearbeitung vor dem Hochladen machen, sondern Bilder direkt aus der hochauflösenden Kamera ins Web hochladen. Wenn das nicht wirklich nötig ist, weil das Bild so groß sein sollte, schmiert man ansonsten den Webspace zu und hat zudem auf der Webseite scheinbar kleine Bildchen, die aber lediglich klein dargestellt werden, in Wirklichkeit aber locker 24 oder 32 Megapixel groß sein können. Wer braucht ein 8000 x 4000 Pixel großes Bild in der Webseite? Vermutlich die wenigsten.
Darum diese Chain, die skaliert Bilder, wenn sie größer sind als der eingestellte Wert.
Die Chain wird über System-, Mandante- oder Usereinstellungen eingestellt.
Sofern es mit den Usereinstellungen klappt, kann man sogar je User die Chain verschieden einstellen.
Bei Bedarf auch auschalten, um mal ein großes Bild hochladen zu können.
Die Chain benützt Contenido Funktionen, könnte somit mit den neuesten Bilddatei-Formaten noch nicht klar kommen.
Es gibt natürliche Restriktionen durch den Server und die PHP Einstellungen, wie Upload-Max-Filesize oder erlaubte Dateiendungen.
Da ist der Download: https://dfabig.de/de/download/contenido ... chain.html
Mit 4.10 habe ich es noch nicht getestet.
Ok, als Nachtrag die Anleitung zum Installieren dazu:
https://docs.contenido.org/display/CONDEVE/Chain
Das wird vielleicht nicht gleich jeder verstehen, darum nochmal kurz:
1. Speicherort
Das Chain-Programm wird in /contenido/includes/chains/ abgelegt. 2. Die Chain in Contenido "bekannt" zu machen
Damit die Chain überhaupt von Contenido geladen wird, muss sie noch in eine Config-Datei eingetragen werden.
Die befindet sich üblicherweise in /data/production/ und nennt sich config.chains.load.php Hier gibt es 2 Einträge zu tätigen: 1. die Chain-Datei und 2. den Eintrag bei welchem Hook die Chain geladen werden soll.
In diesem Fall ist des die cec-Hook "Contenido.Upload.UploadPostprocess", die selbst schon erklärt, dass sie für die Upload-Nachbearbeitung greift. Diese ist bereits in Contenido eingebaut, sonst könnten wir sie nicht nutzen. Ja, und daran anschließend einen griffigen Namen für diese Chain. Das ist zugleich der Name der Funktion in der Chain. Das muss überein stimmen.
3. Konfiguration
Die Chain ist konfigurierbar, trotzdem eine Chain eigentlich kein Userinterface hat. Aber die System-, Mandanten- oder User-Einstellungen greifen.
Hier hilft das Bildchen zu den Einstellungen schneller als man es beschrieben hat. In den Bildanhängen sieht man die Installation auch noch anschaulich.
Noch einen Nachtrag zum Nachtrag:
Wenn man ein Update macht und die config.chains.load.php dabei auch neu hoch lädt, ist die eigene Chain natürlich wieder raus.
Grund der Chain ist der, dass viele User eine Webseite keine Bildbearbeitung vor dem Hochladen machen, sondern Bilder direkt aus der hochauflösenden Kamera ins Web hochladen. Wenn das nicht wirklich nötig ist, weil das Bild so groß sein sollte, schmiert man ansonsten den Webspace zu und hat zudem auf der Webseite scheinbar kleine Bildchen, die aber lediglich klein dargestellt werden, in Wirklichkeit aber locker 24 oder 32 Megapixel groß sein können. Wer braucht ein 8000 x 4000 Pixel großes Bild in der Webseite? Vermutlich die wenigsten.
Darum diese Chain, die skaliert Bilder, wenn sie größer sind als der eingestellte Wert.
Die Chain wird über System-, Mandante- oder Usereinstellungen eingestellt.
Sofern es mit den Usereinstellungen klappt, kann man sogar je User die Chain verschieden einstellen.
Bei Bedarf auch auschalten, um mal ein großes Bild hochladen zu können.
Die Chain benützt Contenido Funktionen, könnte somit mit den neuesten Bilddatei-Formaten noch nicht klar kommen.
Es gibt natürliche Restriktionen durch den Server und die PHP Einstellungen, wie Upload-Max-Filesize oder erlaubte Dateiendungen.
Da ist der Download: https://dfabig.de/de/download/contenido ... chain.html
Mit 4.10 habe ich es noch nicht getestet.
Ok, als Nachtrag die Anleitung zum Installieren dazu:
https://docs.contenido.org/display/CONDEVE/Chain
Das wird vielleicht nicht gleich jeder verstehen, darum nochmal kurz:
1. Speicherort
Das Chain-Programm wird in /contenido/includes/chains/ abgelegt. 2. Die Chain in Contenido "bekannt" zu machen
Damit die Chain überhaupt von Contenido geladen wird, muss sie noch in eine Config-Datei eingetragen werden.
Die befindet sich üblicherweise in /data/production/ und nennt sich config.chains.load.php Hier gibt es 2 Einträge zu tätigen: 1. die Chain-Datei und 2. den Eintrag bei welchem Hook die Chain geladen werden soll.
In diesem Fall ist des die cec-Hook "Contenido.Upload.UploadPostprocess", die selbst schon erklärt, dass sie für die Upload-Nachbearbeitung greift. Diese ist bereits in Contenido eingebaut, sonst könnten wir sie nicht nutzen. Ja, und daran anschließend einen griffigen Namen für diese Chain. Das ist zugleich der Name der Funktion in der Chain. Das muss überein stimmen.
3. Konfiguration
Die Chain ist konfigurierbar, trotzdem eine Chain eigentlich kein Userinterface hat. Aber die System-, Mandanten- oder User-Einstellungen greifen.
Hier hilft das Bildchen zu den Einstellungen schneller als man es beschrieben hat. In den Bildanhängen sieht man die Installation auch noch anschaulich.
Noch einen Nachtrag zum Nachtrag:
Wenn man ein Update macht und die config.chains.load.php dabei auch neu hoch lädt, ist die eigene Chain natürlich wieder raus.