Eine immerwährende Bildkampagne für Pfingsten

Pfingsten kann man sich zurücklehnen. Erst recht, wenn man eine Bildsoftware hat, die einmal aufgesetzt immer aktuelle Kampagnen schaltet. Anwendungen sind unendich wie eine Himmelfahrt. Ob Sportstudio oder Onineshop, wer möchte nicht zu ausgewählten Feiertagezeigen dass seine Seite aktuell ist? Ist die Kampagne aufgesetzt, läuft wie jedes Jahr aufs neue zum richtigen Datum. Das spart Redakteur- und Agenturkosten. Im folgenden im Detail erklärt, wie man mit die SQLupdates ausführen anlegen muss, um dauerhaft automatisiert Inhalte zu Pfingsten zu schalten.

Hier erklärt, und kommentiert, wozu die einzelnen Codestücke dienen. Gemeinsam mit dem täglichen Cronjob sorgen sie Jahr für Jahr dafür dass Inhalte an der gewünschten Werbefläche geschaltet werden.

-- 4 Banner: Mittwoch bis Samstag, Pfingstsonntag, Pfingstmontag, Pfingstwoche
-- Einmaliges Anlegen der Kampagne Pfingsten
SET @prioritypfingstmittw = (select max(priority)+2 from plusinfo_zeitkampagne);
SET @prioritypfingstsonnt = (select max(priority)+3 from plusinfo_zeitkampagne);
SET @prioritypfingstmont = (select max(priority)+4 from plusinfo_zeitkampagne);

## VORwochenkampagne
-- Anlegen VORwochenkampagne ab Mittwoch vor Pfingsten (44 Tage n Ostersonntag)
INSERT IGNORE INTO plusinfo_zeitkampagne
SELECT
/* Titel */ NULL `id`, 'Pfingsten_vor_wochennr_flex' campaign,
/* Werbefläche */ 'Startseite' table_id,
2 `language_id`, NULL `domains_id`, NULL `date`,
NULl YEAR, NULL MONTH, NULL `DAYOFMONTH`,
EXTRACT(WEEK FROM (SELECT TIMESTAMPADD(DAY,44,easter(YEAR(NOW()))))) WEEK,
NULL `DAYOFWEEK`, NULL `HOUR`, ' Freuen Sie sich mit uns auf Pfingsten!' update_source,
NULL `update_code`, NULL `enabled`, @prioritypfingstmittw `priority`;
-- Woche aktualisieren
UPDATE plusinfo_zeitkampagne SET
WEEK = EXTRACT(WEEK FROM (SELECT TIMESTAMPADD(DAY,44,easter(YEAR(NOW()))))),
priority = @prioritypfingstmittw
WHERE campaign = 'Pfingsten_vor_wochennr_flex';

## Aktiv, wenn Priorität v Tageskampagnen höherer als Wochenkampagne
## PFINGSTSONNTAG
INSERT IGNORE INTO plusinfo_zeitkampagne
SELECT
/* Titel */ NULL `id`, 'Pfingsten_Sonntag_flex' campaign,
/* Werbefläche */ 'Startseite' table_id,
2 `language_id`, NULL `domains_id`, NULL `date`,
EXTRACT(YEAR FROM (SELECT TIMESTAMPADD(DAY,49,easter(YEAR(NOW()))))) YEAR,
EXTRACT(MONTH FROM (SELECT TIMESTAMPADD(DAY,49,easter(YEAR(NOW()))))) MONTH,
EXTRACT(DAY FROM (SELECT TIMESTAMPADD(DAY,49,easter(YEAR(NOW()))))) `DAYOFMONTH`,
NULL `WEEK`, NULL `DAYOFWEEK`, NULL `HOUR`, NULL `text_source`, NULL `update_code`,
NULL `enabled`, @prioritypfingstsonnt priority;
-- jährliches Aktualisieren
UPDATE plusinfo_zeitkampagne SET
YEAR = EXTRACT(YEAR FROM (SELECT TIMESTAMPADD(DAY,49,easter(YEAR(NOW()))))) ,
MONTH = EXTRACT(MONTH FROM (SELECT TIMESTAMPADD(DAY,49,easter(YEAR(NOW()))))) ,
DAYOFMONTH = EXTRACT(DAY FROM (SELECT TIMESTAMPADD(DAY,49,easter(YEAR(NOW()))))),
priority = @prioritypfingstsonnt
WHERE campaign = 'Pfingsten_Sonntag_flex';

## PFINGSTMONTAG
INSERT IGNORE INTO plusinfo_zeitkampagne
SELECT
/* Titel */ NULL `id`, 'Pfingsten_Montag_flex' campaign,
/* Werbefläche */ 'Startseite' table_id,
2 `language_id`, NULL `domains_id`, NULL `date`,
EXTRACT(YEAR FROM (SELECT TIMESTAMPADD(DAY,50,easter(YEAR(NOW()))))) YEAR,
EXTRACT(MONTH FROM (SELECT TIMESTAMPADD(DAY,50,easter(YEAR(NOW()))))) MONTH,
EXTRACT(DAY FROM (SELECT TIMESTAMPADD(DAY,50,easter(YEAR(NOW()))))) `DAYOFMONTH`,
NULL `WEEK`, NULL `DAYOFWEEK`, NULL `HOUR`, NULL `text_source`, NULL `update_code`,
NULL `enabled`, @prioritypfingstmont priority;
-- Testen, ob angelegt
SELECT * FROM plusinfo_zeitkampagne WHERE campaign = 'Pfingsten_Montag_flex' ;
-- jährliches Aktualisieren
UPDATE plusinfo_zeitkampagne SET
YEAR = EXTRACT(YEAR FROM (SELECT TIMESTAMPADD(DAY,50,easter(YEAR(NOW()))))) ,
MONTH = EXTRACT(MONTH FROM (SELECT TIMESTAMPADD(DAY,50,easter(YEAR(NOW()))))) ,
DAYOFMONTH = EXTRACT(DAY FROM (SELECT TIMESTAMPADD(DAY,50,easter(YEAR(NOW()))))),
priority = @prioritypfingstmont
WHERE campaign = 'Pfingsten_Montag_flex';

-- Woche der Aktion ermitteln.
SELECT EXTRACT(WEEK FROM (SELECT TIMESTAMPADD(DAY,50,easter(YEAR(NOW()))))) WEEK;

## FOLGEWOCHE PFINGSTEN
-- einmaliges Anlegen einer Folgewochenkampagne
INSERT IGNORE INTO plusinfo_zeitkampagne
SELECT
/* Titel */ NULL `id`, 'Pfingsten_folge_wochennr_flex' campaign,
/* Werbefläche */ 'Startseite' table_id,
2 `language_id`, NULL `domains_id`, NULL `date`,
NULl YEAR, NULL MONTH, NULL `DAYOFMONTH`,
EXTRACT(WEEK FROM (SELECT TIMESTAMPADD(DAY,51,easter(YEAR(NOW()))))) WEEK,
NULL `DAYOFWEEK`, NULL `HOUR`, 'Frohe Pfingstwoche!' update_source,
NULL `update_code`, NULL `enabled`, @prioritypfingstmont priority;
-- Woche aktualisieren
UPDATE plusinfo_zeitkampagne SET
WEEK = EXTRACT(WEEK FROM (SELECT TIMESTAMPADD(DAY,51,easter(YEAR(NOW()))))),
priority = @prioritypfingstmont
WHERE campaign = 'Pfingsten_folge_wochennr_flex'

>