Eine neue Kampagne kann man einfach auf Grundlage einer bestehenden anlegen. Einfach im folgenden Feld "Kampagne" den zu kopierenden Namen eintragen, kopieren und anschließend Bild-Daten, Priorität sowie Zeit-Daten anpassen oder neu erstellen...
Eine neue Aktion kann man auf Grundlage einer bestehenden anlegen. Einfach im folgenden Feld "Aktion" die zu kopierende eintragen und kopieren. Anschließend SQL-Daten anpassen ...
Funktionsweise und Prinzip
Dieses System fragt aktuelle Zeitwerte auf dem Server ab. Wenn der aktuell gültige Zeitwert aktiv ist, aktualisert es content in einer temporäre Tabelle. Diese wiederum aktualisiert dann den Content auf der einem Updateziel, welches eine Werbefläche ist, aber auch eine Aktion auslösen kann. Dazu läuft eine Funktion im phpmyadmin. Diese Funktion kombiniert die zulässigen Zeitwerte, so dass das System funktioniert. Das System ist ausgeklügelt. So laufen z.B. zeitunabhängige Standardkampagnen nur, wenn alle Felder auf NULL sind. Sollten Zeitwerte enthalten sein, müssten diese geleert werden, wofür die Funktion automaisch sorgt. Die Aktualisierung der Zeitwerte läuft im Hintergrund. Diese wird manuell oder per Cronjob aufgerufen.
Die jeweils höhere ID bestimmt des Contents bestimmt, welche Kampagne läuft.
Entwicklung der Selects
Nutzt man Gambio, so kann man die Skripte über den Minisql anpassen. Nutzt man bootstrap so braucht nur dann Zugang zum Phpmyadmin, wenn man mehr als die hier eingetragenen Standardwerbeflächen ansprechen möchte.
SELECT YEAR (now()) Union ALL SELECT MONTH (now()) Union ALL SELECT DAYOFMONTH (now()) Union ALL SELECT WEEK (now()) Union ALL SELECT DAYOFWEEK (now()) Union ALL SELECT HOUR (now())
SELECT YEAR (now()) Union ALL
SELECT MONTH (now()) Union ALL
SELECT DAYOFMONTH (now()) Union ALL
SELECT HOUR (now()) SELECT MONTH (now()) Union ALL
SELECT DAYOFMONTH (now()) Union ALL
SELECT HOUR (now()) SELECT DAYOFMONTH (now()) Union ALL
SELECT HOUR (now()) SELECT WEEK (now()) Union ALL
SELECT DAYOFWEEK (now()) Union ALL
SELECT HOUR (now()) SELECT DAYOFWEEK (now()) Union ALL
SELECT HOUR (now())
-- BEISPIELCODE SELECT UND UPDATE NEWSTABELLE Select z.gm_value, q.`text_source` FROM `gm_contents` z LEFT JOIN ( SELECT `text_source` FROM `plusinfo_zeitkampagne` WHERE YEAR IS NOT NULL AND YEAR = YEAR(now()) AND MONTH IS NOT NULL AND MONTH = MONTH(now()) AND MONTH IS NOT NULL IS NOT NULL AND DAYOFMONTH = DAYOFMONTH(now()) AND WEEK IS NULL AND DAYOFWEEK IS NULL AND campaign = 'startseitentext' ) q on 1 = 1 WHERE z.languages_id=2 AND z.gm_key = 'GM_SCROLLER_CONTENT' -- BEISPIEL CONTENTMANAGER -- 1 year, month, dayofmonth - ok Select z.content_text, q.`text_source` FROM `content_manager` z LEFT JOIN ( SELECT `text_source` FROM `plusinfo_zeitkampagne` WHERE YEAR = YEAR(now()) AND YEAR IS NOT NULL AND MONTH = MONTH(now()) AND MONTH IS NOT NULL AND DAYOFMONTH = DAYOFMONTH(now()) AND DAYOFMONTH IS NOT NULL AND WEEK IS NULL AND DAYOFWEEK IS NULL AND campaign = 'startseitentext' AND table_id = 'content_manager_news' ) q on 1 = 1 WHERE z.languages_id=2 AND z.content_id = 10 ; Update `content_manager` z LEFT JOIN ( SELECT `text_source` FROM `plusinfo_zeitkampagne` WHERE YEAR = YEAR(now()) AND YEAR IS NOT NULL AND MONTH = MONTH(now()) AND MONTH IS NOT NULL AND DAYOFMONTH = DAYOFMONTH(now()) AND DAYOFMONTH IS NOT NULL AND WEEK IS NULL AND DAYOFWEEK IS NULL AND campaign = 'startseitentext' AND table_id = 'content_manager_news' AND language_id = 2 ) q on 1 = 1 SET z.content_text = q.`text_source` WHERE z.languages_id=2 AND z.content_id = 10
Checkliste bei Fehlern: