xDefaults feat. DatenbankabfrageStandardisierte Bildgrößen in Contao
Auf diese Frage kann xDefaults keine Antwort geben. Ich versuchte zunächst in Contao durch "Mehrere bearbeiten" zumindest die Bildgrößen in den News anzugleichen, aber dies scheiterte mit einem PHP-Fehler.
Außerdem hätte ich so in jede Newskatagorie per Hand hinein gehen müssen.
Also habe ich mich entschieden manuelle Datenbankabfragen einzusetzen.
Bitte beachte: Vorher die Datenbank bzw. die Datenbank-Tabelle sichern, falls etwas schief läuft!
1. News
Die folgende Abfrage ersetzt die Bildgrößen (size), Bildausrichtung (float) und Großansicht in allen News in denen Bilder sind:
UPDATE `tl_news`
SET size = 'a:3:{i:0;s:3:"210";i:1;s:3:"120";i:2;s:4:"crop";}',
fullsize = 1,
floating = 'left'
WHERE size != ''
Auf gut Deutsch... Ich möchte folgende Einstellungen:
- Breite 210 Pixel (size)
- Höhe 120 Pixel (size)
- Skalierungsmodus Exaktes Format (size / crop)
- Groß-Ansicht (fullsize)
- Bildausrichtung linksbündig (floating)
2. Artikel/Inhaltselemente
Um sicher zu gehen nichts falsches zu überschreiben, frage ich alle Bilder von Texten (type=text) ab in denen Bilder sind:
SELECT ID,TYPE AS Elementtyp, singleSRC AS Einzelbild, size, alt, floating, imagemargin, fullsize, FROM_UNIXTIME( tstamp, '%d.%m %Y %h:%i' ) AS datum, TEXT
FROM `tl_content`
WHERE size != ''
AND TYPE = 'text'
ORDER BY ID DESC
LIMIT 0 , 100
In meinem Fall kann ich leider nicht automatisch alles ersetzen lassen, weil auf einigen Seiten meine Bildgrößen deutlich abweichend sind (Beispiel). Diese Bilder sind 300 x 104 Pixel. Diese möchte ich z.B. nicht ändern.
Es geht nun darum herauszufinden welche gemeinsamen "falschen" Bildgrößen es gibt. Nach der Datenbankabfrage entdecke ich etliche Texte mit Bildern in den Größen 180 x 115 oder 190 x 130. Bei einigen fehlt die Angabe fullsize.
Ich ersetze jetzt alle diese Bildformate:
UPDATE `tl_content`
SET size = 'a:3:{i:0;s:3:"210";i:1;s:3:"120";i:2;s:4:"crop";}',
fullsize = 1
WHERE type = 'text' AND
(size = 'a:3:{i:0;s:3:"180";i:1;s:3:"115";i:2;s:4:"crop";}' OR
size = 'a:3:{i:0;s:3:"190";i:1;s:3:"130";i:2;s:4:"crop";}')
Das war es auch schon. Ich habe so einiges an Arbeit gespart. Die natürlich durch diesen Blogpost wieder drauf gegangen ist :P
Nein Quatsch, es hätte bei über 100 Artikeln ewig gedauert alles anzugleichen und dann entstehen ja trotzdem Flüchtigkeitsfehler... Außerdem ist diese stupide Arbeit unndlich nervig.
Ich freue mich über jeden Kommentar.
*Werbung - Empfehlungslink für Amazon. Mehr Informationen Siehe Impressum