Anzeige neuer Artikel in einer Rubriken-Übersicht
- hscha
- ConPresso-Experte
- Beiträge: 715
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Anzeige neuer Artikel in einer Rubriken-Übersicht
Liebe ConPresso-Gemeinde,
ich knobele an einer Lösung für folgendes Problem:
Auf einer Schulwebseite werden grafische Links zu verschiedenen Klassen-Rubriken angezeigt. Jeder Link repräsentiert also eine eigene Klassen-Rubrik, z.B. "7a" usw.
Ich möchte nun durch ein Script (z.B. über mod_inline) erreichen, dass für Klassenrubriken, die neue Artikel enthalten (z.B. nicht älter als 3 Tage), ein alternativer grafischer Link z.B. mit einer "neu"-Ecke angezeigt wird. Das Script müsste also
1) in der Rubrik den neuesten Artikel finden
2) über $db_pub_datum dessen Publikationsdatum auslesen, dieses
3) mit dem aktuellen Datum vergleichen sowie die Differenz in Tagen berechnen.
4) Im letzten Schritt dann die Grafikausgabe generieren.
Die Schritte 3 und 4 sind für mich kein Problem. Ich brauche einen Tipp, wie ich die Schritte 1 und 2 vollziehen kann.
Hat jemand einen Tipp für mich?
Adventliche Grüße aus Berlin von
Horst
ich knobele an einer Lösung für folgendes Problem:
Auf einer Schulwebseite werden grafische Links zu verschiedenen Klassen-Rubriken angezeigt. Jeder Link repräsentiert also eine eigene Klassen-Rubrik, z.B. "7a" usw.
Ich möchte nun durch ein Script (z.B. über mod_inline) erreichen, dass für Klassenrubriken, die neue Artikel enthalten (z.B. nicht älter als 3 Tage), ein alternativer grafischer Link z.B. mit einer "neu"-Ecke angezeigt wird. Das Script müsste also
1) in der Rubrik den neuesten Artikel finden
2) über $db_pub_datum dessen Publikationsdatum auslesen, dieses
3) mit dem aktuellen Datum vergleichen sowie die Differenz in Tagen berechnen.
4) Im letzten Schritt dann die Grafikausgabe generieren.
Die Schritte 3 und 4 sind für mich kein Problem. Ich brauche einen Tipp, wie ich die Schritte 1 und 2 vollziehen kann.
Hat jemand einen Tipp für mich?
Adventliche Grüße aus Berlin von
Horst
- hscha
- ConPresso-Experte
- Beiträge: 715
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Hier noch eine Ergänzung: Mit der Abfrage
erhalte ich trotz der Einschränkung auf die Rubrik 23 immer den neuesten Artikel aus dem ganzen freigegebenen Artikelbestand. Ich möchte jedoch nur den neuesten Artikel aus der Rubrik 23 abfragen. Wie muss ich die Abfrage ändern. Gibt es dazu einen Tipp?
Noch ein Gruß von
Horst
Code: Alles auswählen
SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM cpo__news WHERE artikel_archiv<1 AND freigabe!=2 AND pub_datum<='2011-12-10 20:41:05' AND verfallsdatum>='2011-12-10 20:41:05' AND rubric_id IN ( 23 ) ORDER BY pub_datum DESC LIMIT 0,1
Noch ein Gruß von
Horst
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Also eigentlich sollte der Code so aussehen:hscha hat geschrieben:Hier noch eine Ergänzung: Mit der Abfrageerhalte ich trotz der Einschränkung auf die Rubrik 23 immer den neuesten Artikel aus dem ganzen freigegebenen Artikelbestand. Ich möchte jedoch nur den neuesten Artikel aus der Rubrik 23 abfragen. Wie muss ich die Abfrage ändern. Gibt es dazu einen Tipp?Code: Alles auswählen
SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM cpo__news WHERE artikel_archiv<1 AND freigabe!=2 AND pub_datum<='2011-12-10 20:41:05' AND verfallsdatum>='2011-12-10 20:41:05' AND rubric_id IN ( 23 ) ORDER BY pub_datum DESC LIMIT 0,1
Noch ein Gruß von
Horst
Code: Alles auswählen
<?php
// Die Parameter
$rubrikid = 23; // der ID der Rubrik
$artikelanzahl = 1; // maximale Anzahl der auszugebenden Artikel
$sortierung = 'pub_datum desc'; // Art der Artikelsortierung
// ab hier nix mehr ändern
if (!defined('CPO')) exit;
$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrikid."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
$db = new DB;
$db->query($query);
// hier dann der Code zur Ausgabe via select_template
?>
Bist Du denn sicher, daß tatsächlich andere Rubriken ausgelesen werden?
Wo testet Du die Abfrage? Diekt in der Datenbank via PHPmyAdmin oder direkt im ConPresso-Code?
Bei mod_inline immer dran denken, daß es mit Funktionen arbeitet, die jegliche außerhalb definierte Variable ignorieren, solange man diese nicht globalisiert.
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: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Wäre es nicht einfacher das in dieser Form zu machen:Ich möchte nun durch ein Script (z.B. über mod_inline) erreichen, dass für Klassenrubriken, die neue Artikel enthalten (z.B. nicht älter als 3 Tage), ein alternativer grafischer Link z.B. mit einer "neu"-Ecke angezeigt wird. Das Script müsste also
1) in der Rubrik den neuesten Artikel finden
2) über $db_pub_datum dessen Publikationsdatum auslesen, dieses
3) mit dem aktuellen Datum vergleichen sowie die Differenz in Tagen berechnen.
4) Im letzten Schritt dann die Grafikausgabe generieren.
1.) Alle Rubriken (aus der Menge der Klassenrubriken) finden, bei denen es einen Artikel mit Publikationsdatum neuer als 3 Tage gibt
2.) für die Klassen, deren Rubrik_ID in der Menge der Treffer vorkommt eine andere Grafik zu benutzen, die z.B. ein Präfix wie "neu" hat
Also im Grunde Punkt 1 bis 3 gleich in der Abfrage erledigen...?
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
- hscha
- ConPresso-Experte
- Beiträge: 715
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Hallo Markus,
du schreibst:
Aus deinem Vorschlag ergeben sich zwei Fragen für mich:
- Wie formuliert man die Abfrage, wenn man vom Publikationsdatum drei Tage abzieht?
- Wie checke ich das Ergebnis der Abfrage?
Die Klassenrubriken sind z.B. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30.
Vielen Dank für deine sonntäglichen Ratschläge!
Grüße von
Horst
du schreibst:
Ja, das wäre noch besser. Ich habe das Ganze in einer Funktion untergebracht und nicht das $inline-Array ausgelesen. Darin liegt wahrscheinlich der Fehler.Wäre es nicht einfacher das in dieser Form zu machen:
1.) Alle Rubriken (aus der Menge der Klassenrubriken) finden, bei denen es einen Artikel mit Publikationsdatum neuer als 3 Tage gibt
2.) für die Klassen, deren Rubrik_ID in der Menge der Treffer vorkommt eine andere Grafik zu benutzen, die z.B. ein Päfix wie "neu" hat
Also im Grunde Punkt 1 bis 3 gleich in der Abfrage erledigen...?
Aus deinem Vorschlag ergeben sich zwei Fragen für mich:
- Wie formuliert man die Abfrage, wenn man vom Publikationsdatum drei Tage abzieht?
- Wie checke ich das Ergebnis der Abfrage?
Die Klassenrubriken sind z.B. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30.
Vielen Dank für deine sonntäglichen Ratschläge!
Grüße von
Horst
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Ich hätte mir das etwa so vorgestellt:
Code: Alles auswählen
<?php
$grafik = array();
$id = '';
// Die Parameter
$rubrikids = '20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30'; // die IDs der Rubriken
$NeuheitInTagen = 3;
// Klassengrafiken
// $grafik[RUBRIC_ID] = 'KLASSENNAME.jpg';
$grafik[20] = '7a.jpg';
$grafik[21] = '7b.jpg';
$grafik[22] = '7c.jpg';
$grafik[23] = '8a.jpg';
$grafik[24] = '8b.jpg';
$grafik[25] = '8c.jpg';
$grafik[26] = '8d.jpg';
// etc...
// ab hier nix mehr ändern
if (!defined('CPO')) exit;
// Zeitdifferenz
$neuheit = time() - ($NeuheitInTagen * 24 * 60 * 60);
$query = "SELECT rubric_id FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND pub_datum>='" . date('Y-m-d H:i:s', $neuheit) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id IN ( ".$rubrikids." ) ";
$db = new DB;
$db->query($query);
while($db->next_record()) {
// wenn die Rubrik zu den Rubriken mit Neuheiten gehört und noch kein 'neu' erhalten hat,
// dann ein 'neu' vor den Grafiknamen hängen
$id = $db->v('rubric_id');
if (array_key_exists($id, $grafik) && substr($grafik[$id],0,3)!='neu') $grafik[$id] = 'neu'.$grafik[$id];
}
// nun ist das Array mit den Klassengrafiken an den gewünschten Stellen durch ein 'neu' ergänzt
?>
Die Frage verstehe ich nicht? Du schaust es Dir an, oder?- Wie checke ich das Ergebnis der Abfrage?
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
- hscha
- ConPresso-Experte
- Beiträge: 715
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Hallo Markus,
ja, so geht's! Zu besichtigen ist das hier: http://www.reformschule-charlottenburg. ... ic=klassen.
Super! Vielen Dank und Grüße von
Horst
ja, so geht's! Zu besichtigen ist das hier: http://www.reformschule-charlottenburg. ... ic=klassen.
Super! Vielen Dank und Grüße von
Horst