[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Event Kalender - Einschränkung der Ausgabe auf Zeitraum
Seite 1 von 1

Event Kalender - Einschränkung der Ausgabe auf Zeitraum

Verfasst: 12. Dez 2013, 16:01
von hans sachs
Hallo,

ich möchte gerne in einer Infobox eine Event-Kalender Ausgabe machen, allerdings nicht alle Termine, sondern nur einen definierbaren Zeitraum (z.B. dieser Monat / dieser und nächster Monat).

Ich (als DAU) vermute, dass man hierzu "einfach" nur einen Parameter in dem Modul ändern muss. Aber je länger ich drauf schaue desto weniger versteh ich den Code :-(

Hilfe!!!!

Code: Alles auswählen

<?php

     $datum_heute = date("Ymd");

     $abfrage = "SELECT * FROM rex_120_events ORDER BY DATE";

     $sql = new sql();
     $data = $sql->get_array($abfrage);

     if(count($data)>0){

        foreach ($data as $row){

              if($row['DATE']>=$datum_heute){

            $event['MONAT1'] = date("m", strtotime($row['DATE']));

$ievent++;
if($ievent>"2")$ievent="1";

if($event['MONAT1'] != $event['MONAT2']){
            echo"<div class='TKOPF'><h2>";
            echo strftime("%B %G", strtotime($row['DATE'])) ;
	echo"</h2></div>";
$ievent="1";
}
if($row['SPECIAL']=="Y")$ievent="SPECIAL";
if($row['IMPORTANT']=="Y")$ievent="IMPORTANT";

$event['MONAT2'] = $event['MONAT1'];


echo"<div class='EVENT TZEILE".$ievent."'>";
             setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
				  echo strftime("<b>%e. %B %G </b> (%A", strtotime($row['DATE']));
            print(" um " .$row['TIME']).")";
            print rex_article::replaceLinks("<p>" . $row['EVENT']);

echo"</div>";
              }

        }
     }
     else{  print("<p>keine Veranstaltungen</p>"); }

?>
Viele Grüße
Hans

Re: Event Kalender - Einschränkung der Ausgabe auf Zeitraum

Verfasst: 12. Dez 2013, 20:18
von Thomas.Blum
Hej,

du kannst direkt im Query deinen Zeitraum einschränken.

Code: Alles auswählen

<?php
$first_day = date('Ym') . '01';

$abfrage = "SELECT * FROM rex_120_events WHERE DATE >= $first_day ORDER BY DATE";
vg Thomas

Re: Event Kalender - Einschränkung der Ausgabe auf Zeitraum

Verfasst: 13. Dez 2013, 10:24
von hans sachs
Guten Morgen,

danke für die schnelle Rückmeldung :-)
Ich habe den Code angepasst, allerdings wir weiterhin die Liste aller Termine (Dezember bis derzeit März) ausgegeben. Kann es sein, dass irgendwo noch etwas fehlt?

Code: Alles auswählen

<?php

    $datum_heute = date("Ymd");
    $first_day = date('Ym') . '01';

    $abfrage = "SELECT * FROM rex_120_events WHERE DATE >= $first_day ORDER BY DATE";
     // $abfrage = "SELECT * FROM rex_120_events ORDER BY DATE";

     $sql = new sql();
     $data = $sql->get_array($abfrage);

     if(count($data)>0){

        foreach ($data as $row){

              if($row['DATE']>=$datum_heute){

            $event['MONAT1'] = date("m", strtotime($row['DATE']));

$ievent++;
if($ievent>"2")$ievent="1";

if($event['MONAT1'] != $event['MONAT2']){
            echo"<div class='TKOPF'><h2>";
            echo strftime("%B %G", strtotime($row['DATE'])) ;
	echo"</h2></div>";
$ievent="1";
}
if($row['SPECIAL']=="Y")$ievent="SPECIAL";
if($row['IMPORTANT']=="Y")$ievent="IMPORTANT";

$event['MONAT2'] = $event['MONAT1'];


echo"<div class='EVENT TZEILE".$ievent."'>";
             setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
				  echo strftime("<b>%e. %B %G </b> (%A", strtotime($row['DATE']));
            print(" um " .$row['TIME']).")";
            print rex_article::replaceLinks("<p>" . $row['EVENT']);

echo"</div>";
              }

        }
     }
     else{  print("<p>keine Veranstaltungen</p>"); }

?>
Viele Grüße
Hans

Re: Event Kalender - Einschränkung der Ausgabe auf Zeitraum

Verfasst: 13. Dez 2013, 10:29
von Thomas.Blum
Hej,

wie sind denn die Zeitangaben in der Datenbank tatsächlich hinterlegt? Am besten paar Beispiele schreiben.

vg Thomas

Re: Event Kalender - Einschränkung der Ausgabe auf Zeitraum

Verfasst: 13. Dez 2013, 11:59
von hans sachs
Moin,
DATE
varchar(8)
20131226
TIME
varchar(12)
19:00
Viele Grüße
Hans

Re: Event Kalender - Einschränkung der Ausgabe auf Zeitraum

Verfasst: 13. Dez 2013, 12:07
von Thomas.Blum
Kann ich mal Zugriff auf dein Backend haben?

Re: Event Kalender - Einschränkung der Ausgabe auf Zeitraum

Verfasst: 20. Dez 2013, 00:23
von hans sachs
Guten Abend,

einen kleinen Erfolg habe ich erzielt:

Mit der folgenden Ausgabe, bekomme ich zumindest den aktuellen Monat, beginnend ab dem nächsten aktuellen Termin. Allerdings bin ich weiterhin zu doof um einen Zeitraum z.B. der kommenden 30 Tage zu definieren :-(

AUSGABE:

Code: Alles auswählen

<?php

$datum_heute = date("Ymd");
// $first_day = date("Ym") . "01";

//aktuellen Monat aktuelles Jahr ermitteln
$monat = date("m");
$jahr = date("Y");

// $abfrage = "SELECT * FROM rex_120_events WHERE DATE >= $first_day ORDER BY DATE";
$abfrage = 'SELECT * FROM rex_120_events WHERE Month(date)=Month(Now()) AND Year(date)=Year(Now()) ORDER BY date';

     $sql = new sql();
     $data = $sql->get_array($abfrage);

     if(count($data)>0){

        foreach ($data as $row){

              if($row['DATE']>=$datum_heute){

            $event['MONAT1'] = date("m", strtotime($row['DATE']));

$ievent++;
if($ievent>"2")$ievent="1";

if($event['MONAT1'] != $event['MONAT2']){
            echo"<div class='TKOPF'><h2>";
            echo strftime("%B %G", strtotime($row['DATE'])) ;
	echo"</h2></div>";
$ievent="1";
}
if($row['SPECIAL']=="Y")$ievent="SPECIAL";
if($row['IMPORTANT']=="Y")$ievent="IMPORTANT";

$event['MONAT2'] = $event['MONAT1'];


echo"<div class='EVENT TZEILE".$ievent."'>";
             setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
				  echo strftime("<b>%e. %B %G </b> (%A", strtotime($row['DATE']));
            print(" um " .$row['TIME']).")";
            print rex_article::replaceLinks("<p>" . $row['EVENT']);

echo"</div>";
              }

        }
     }
     else{  print("<p>keine Veranstaltungen</p>"); }

?>