News: Anzeigemodus für Bilder in Artikeln einer bestimmten Kategorie ändern

TYPO3-Version: 9.5

Das hatte ich nötig, weil die Darstellung in einer Kategorie unterschiedlich war. Analog würde das auch für Tags oder die Datensätze auf einer pid gehen. Oder auch andere Spalten, z.B. die Bildgröße. Oder auch Datensätz einer anderen Erweiterung!

Erstmal alle Bilder in den Artikeln der Kategorie anzeigen

-- Anzeige
SELECT `tx_news_domain_model_news`.`uid`, `tx_news_domain_model_news`.`title`, `sys_file_reference`.`showinpreview`, `tx_news_domain_model_news`.`deleted`, `tx_news_domain_model_news`.`hidden`, `sys_file_reference`.`title`
  -- Tabelle (1) mit den Datensätzen
  FROM `tx_news_domain_model_news`
  -- Tabelle (2), in der die Kategorien (1) zugeordnet werden
  INNER JOIN `sys_category_record_mm`
  -- verknüpfende Spalten
  ON `tx_news_domain_model_news`.`uid`=`sys_category_record_mm`.`uid_foreign`
  -- Tabelle (3), in der die Bilder den Artikeln (1) zugeordnet werden
  INNER JOIN `sys_file_reference`
  -- verknüpfende Spalten
  ON `tx_news_domain_model_news`.`uid`=`sys_file_reference`.`uid_foreign`
  -- Bedingung: Kategorie
  WHERE `sys_category_record_mm`.`uid_local`= 3;

 

Dann den Vorschaumodus ändern

-- zu aktualisierende Tabelle (1)
UPDATE `sys_file_reference`
  -- verknüpft mit Tabelle der Datensätze (2)
  INNER JOIN `tx_news_domain_model_news`
  -- verknüpfende Spalten
  ON `tx_news_domain_model_news`.`uid`=`sys_file_reference`.`uid_foreign`
  -- (2) verknüpft mit Tabelle, in der die Kategorien zugeordnet werden (3)
  INNER JOIN `sys_category_record_mm`
  -- verknüpfende Spalten
  ON `tx_news_domain_model_news`.`uid`=`sys_category_record_mm`.`uid_foreign`
  -- neuer Wert in (1)
  SET `sys_file_reference`.`showinpreview` = 2
  -- Einschränkungen: nur für diese Datensätze:
  -- (wichtig; sonst werden alle Datensätze geändert)
  WHERE `sys_file_reference`.`showinpreview` = 1
    AND `sys_category_record_mm`.`uid_local`= 3;

Der Wert 2 für showinpreview ("Nur in Vorschau anzeigen") ist irgendwann dazu gekommen.