Hallo zusammen!
Wir haben eine Rubrik in der wir immer die Geburstage unserer Mitglieder auf der Seite anzeigen, und zwar immer ein kleiner Text und ein Bild des Geburststagskinds.
Als Publikationszeitraum ist immer der Geburtstag von 00:01 - 23:59 Uhr eingegeben. Problematik an der Sache ist, das sich der Geburtstag ja jedes Jahr wiederholt und ich deshalb immer, so alle drei Monate, die vergangenen Geburtstage überarbeite und die neue Jahreszahl eingebe.....ganz ehrlich: das ist ziemlich nervig. Nun stellt sich mir die Frage, ob es möglich ist, da irgendwas zu ändern, so das ich nur den Tag ohne Eingabe der Jahreszahl eintragen kann - und der Artikel somit jedes Jahr automatisch an dem Tag online geht.... geht das? Und wenn ja, wie?
Vielen Dank schon mal vorab,
Silke
Publikationszeitraum ohne Angabe einer Jahreszahl möglich?
- MarkusR
- Handbuchversteher
- Beiträge: 7369
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 112 Mal
- Danksagung erhalten: 936 Mal
- Kontaktdaten:
Nein, das geht nicht.
Es ist auch schlecht möglich ConPresso dazu zu überreden.
Das einfachste wäre ein cronjob auf dem Server, der entweder eine SQL-Abfrage ausführt, die alle Datumswerte, die mindestens einen Tag in der Vergangenheit liegen, um ein Jahr nach vorne datiert.
Alternativ kann der cronjob auch ein PHP-Script ausführen, das die Daten ausliest, umwandelt und dann updatet, falls komplexe SQL-Ausdrücke nicht so Dein Fall sind.
Es ist auch schlecht möglich ConPresso dazu zu überreden.
Das einfachste wäre ein cronjob auf dem Server, der entweder eine SQL-Abfrage ausführt, die alle Datumswerte, die mindestens einen Tag in der Vergangenheit liegen, um ein Jahr nach vorne datiert.
Alternativ kann der cronjob auch ein PHP-Script ausführen, das die Daten ausliest, umwandelt und dann updatet, falls komplexe SQL-Ausdrücke nicht so Dein Fall sind.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7369
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 112 Mal
- Danksagung erhalten: 936 Mal
- Kontaktdaten:
Die Funktion DATE_ADD(datum, INTERVAL 1 YEAR) sollte in einem SQL-String das Gewünschte erreichen.
Also etwa in der Form UPDATE table SET datum1=DATE_ADD(datum1, INTERVAL 1 YEAR), datum2=DATE_ADD(datum2, INTERVAL 1 YEAR) WHERE datum1<DATE_SUB(NOW(), INTERVAL 1 DAY);
Das als Denkanstoß, nichtg als fertige Lösung. Habe es selbst nicht getestet und auch nicht die Tabellen betrachtet.
Auf jeden Fall sollte ein cronjob das machen, denn eine Einbindung z.B. in den ConPresso-Header riskiert, daß ggf. die Operation bei zwei Seitenabrufen simultan gestartet wird und somit gleich 2 Jahre aufaddiert werden.
Also etwa in der Form UPDATE table SET datum1=DATE_ADD(datum1, INTERVAL 1 YEAR), datum2=DATE_ADD(datum2, INTERVAL 1 YEAR) WHERE datum1<DATE_SUB(NOW(), INTERVAL 1 DAY);
Das als Denkanstoß, nichtg als fertige Lösung. Habe es selbst nicht getestet und auch nicht die Tabellen betrachtet.
Auf jeden Fall sollte ein cronjob das machen, denn eine Einbindung z.B. in den ConPresso-Header riskiert, daß ggf. die Operation bei zwei Seitenabrufen simultan gestartet wird und somit gleich 2 Jahre aufaddiert werden.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7369
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 112 Mal
- Danksagung erhalten: 936 Mal
- Kontaktdaten:
Ich habe es jetzt mal ausprobiert:
UPDATE cpo4_news
SET pub_datum = DATE_ADD(pub_datum, INTERVAL 1 YEAR),
verfallsdatum = DATE_ADD(verfallsdatum, INTERVAL 1 YEAR)
WHERE verfallsdatum < DATE_SUB(NOW(), INTERVAL 1 DAY)
AND rubric_id = 1;
funktioniert wie ich es mir gedacht habe. Die roten Angaben mußt DU natürlich an Deine Bedürfnisse anpassen.
Das speicherst Du dann z.B. als birthdays.sql ab und erstellt einen cronjob, der
mysql -uuser -ppassword database < /pfad/zu/der/datei/birthdays.sql
einmal täglich (oder wöchentlich oder monatlich...) aufruft
UPDATE cpo4_news
SET pub_datum = DATE_ADD(pub_datum, INTERVAL 1 YEAR),
verfallsdatum = DATE_ADD(verfallsdatum, INTERVAL 1 YEAR)
WHERE verfallsdatum < DATE_SUB(NOW(), INTERVAL 1 DAY)
AND rubric_id = 1;
funktioniert wie ich es mir gedacht habe. Die roten Angaben mußt DU natürlich an Deine Bedürfnisse anpassen.
Das speicherst Du dann z.B. als birthdays.sql ab und erstellt einen cronjob, der
mysql -uuser -ppassword database < /pfad/zu/der/datei/birthdays.sql
einmal täglich (oder wöchentlich oder monatlich...) aufruft
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7369
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 112 Mal
- Danksagung erhalten: 936 Mal
- Kontaktdaten:
Falls Dir keine cronjobs zur Verfügung stehen könntest Du auch versuchen es per PHP in den header zu packen, also z.B.
Das findet dann aber bei jedem Seitenaufruf statt, also millionenfach öfter als nötig.
Die Abfrage ist aber nicht kompliziert und sollte daher nicht das System ausbremsen. Die Anzeige des Geburtstagskindes selbst ist tausendfach mehr Aufwand für den Server...
Daß aus Versehen doppelt upgedatet wird sollte eigentlich nicht passieren.
Die cronjob-Version wäre sicher weniger problematisch und ressourcenschonender.
Code: Alles auswählen
$birthday = new DB;
$birthday->query("UPDATE cpo4_news SET pub_datum = DATE_ADD(pub_datum, INTERVAL 1 YEAR), verfallsdatum = DATE_ADD(verfallsdatum, INTERVAL 1 YEAR) WHERE verfallsdatum < DATE_SUB(NOW(), INTERVAL 1 DAY) AND rubric_id = 1");
Die Abfrage ist aber nicht kompliziert und sollte daher nicht das System ausbremsen. Die Anzeige des Geburtstagskindes selbst ist tausendfach mehr Aufwand für den Server...
Daß aus Versehen doppelt upgedatet wird sollte eigentlich nicht passieren.
Die cronjob-Version wäre sicher weniger problematisch und ressourcenschonender.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle