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

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
hans sachs
Beiträge: 32
Registriert: 13. Jun 2013, 13:28

Event Kalender - Einschränkung der Ausgabe auf Zeitraum

12. Dez 2013, 16:01

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

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

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

12. Dez 2013, 20:18

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

hans sachs
Beiträge: 32
Registriert: 13. Jun 2013, 13:28

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

13. Dez 2013, 10:24

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

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

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

13. Dez 2013, 10:29

Hej,

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

vg Thomas

hans sachs
Beiträge: 32
Registriert: 13. Jun 2013, 13:28

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

13. Dez 2013, 11:59

Moin,
DATE
varchar(8)
20131226
TIME
varchar(12)
19:00
Viele Grüße
Hans

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

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

13. Dez 2013, 12:07

Kann ich mal Zugriff auf dein Backend haben?

hans sachs
Beiträge: 32
Registriert: 13. Jun 2013, 13:28

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

20. Dez 2013, 00:23

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>"); }

?>

Zurück zu „Allgemeines [R4]“