agon-Termine: Mehrtagestermin erscheint nur am ersten Tag

pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

agon-Termine: Mehrtagestermin erscheint nur am ersten Tag

Beitrag von pinkernell » Do 10. Jun 2004, 14:56

Ist das so vorgesehen, dass ein Termin mit Anfangsdatum X und Enddatum Y in der Terminübersicht nur am Datum X erscheint? Eigentlich unsinnig, da dieser Termin auch für die Tage nach X gültig ist und daher angezeigt werden sollte.

Aber vielleicht habe ich ja etwas übersehen. Klärt mich auf! ;)

Guido

JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. » Do 10. Jun 2004, 15:00

hast du ein Modul mit der Terminübersicht?

beschreib die ganze Sache mal ausführlicher....ich werde dir bestimmt nicht helfen können......aber fähige Leute werden mir bestimmt zustimmen...das du die Sache näher erläuterst..

Gruß
Julian

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: agon-Termine: Mehrtagestermin erscheint nur am ersten Ta

Beitrag von Halchteranerin » Do 10. Jun 2004, 15:41

Hallo Guido,
pinkernell hat geschrieben:Ist das so vorgesehen, dass ein Termin mit Anfangsdatum X und Enddatum Y in der Terminübersicht nur am Datum X erscheint? Eigentlich unsinnig, da dieser Termin auch für die Tage nach X gültig ist und daher angezeigt werden sollte.

Aber vielleicht habe ich ja etwas übersehen. Klärt mich auf! ;)
ich glaube nicht, dass Du etwas uebersehen hast, zumindest ist mir Dein Problem auch aufgefallen. Ich wollte mal die Ausgabe aendern, so dass der Endtermin mit ausgegeben wird (bzw. nachschauen, ob das so sein sollte und warum das ggf. nicht klappt), bin aber noch nicht dazu gekommen. Der Termin wird auch fuer die Tage X+1, X+2 ... Y angezeigt, nur mit dem Termin X, und das ist genauso verwirrend.

Vielleicht komme ich in den naechsten Tagen dazu, mir das anzuschauen.

Gruss
Christa

pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Re: agon-Termine: Mehrtagestermin erscheint nur am ersten Ta

Beitrag von pinkernell » Do 10. Jun 2004, 15:48

Halchteranerin hat geschrieben:Ich wollte mal die Ausgabe aendern, so dass der Endtermin mit ausgegeben wird (bzw. nachschauen, ob das so sein sollte und warum das ggf. nicht klappt), bin aber noch nicht dazu gekommen. Der Termin wird auch fuer die Tage X+1, X+2 ... Y angezeigt, nur mit dem Termin X, und das ist genauso verwirrend
Hast Du das so schon realisiert? So verwirrend wäre das nicht, wenn man für solche Mehrtagestermine, deren Anfangsdatum X vor dem aktuellen Datum liegen, wie folgt gelistet werden: "_Seit_ Datum X ..." anstelle "Datum X"

Finde ich sogar deshalb besser, da ein solcher Mehrtagestermin jederzeit als solcher kenntlich werden sollte. Damit man am Datum X+5 auch sieht, dass dieser Termin schon lange läuft.

Bin gespannt auf Deine Lösung (ich kenne mich mit PHP leider nicht so aus, dass ich etwas dazu beitragen könnte)

Guido

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: agon-Termine: Mehrtagestermin erscheint nur am ersten Ta

Beitrag von Halchteranerin » Do 10. Jun 2004, 18:57

pinkernell hat geschrieben: Hast Du das so schon realisiert? So verwirrend wäre das nicht, wenn man für solche Mehrtagestermine, deren Anfangsdatum X vor dem aktuellen Datum liegen, wie folgt gelistet werden: "_Seit_ Datum X ..." anstelle "Datum X"

Finde ich sogar deshalb besser, da ein solcher Mehrtagestermin jederzeit als solcher kenntlich werden sollte. Damit man am Datum X+5 auch sieht, dass dieser Termin schon lange läuft.
Ja ok, 'seit Datum X' waere die andere Moeglichkeit. Bei mir ist das zur Zeit so (wobei ich dachte, dass es beim urspruenglichen Modul auch so war, ist es denn nicht?), dass ja nur die aktuellen Termine angezeigt werden. Heute ist der 10.6. Wenn der erste Termin vom 8.-11.6 laeuft und der zweite am 25.7. stattfindet, dann steht in meiner Uebersicht:
8.6.2004 Termin 1
25.7.2004 Termin 2.

Ich finde das deshalb verwirrend, weil derjenige, der am 10.6. auf die Seite guckt und den Termin mit dem 8.6. sieht, denken koennte, der Termin ist aus Versehen drin geblieben, und er rechnet nicht zwingend damit, dass es ein mehrtaegiger Termin ist.

Ich rede aber wohlgemerkt von der Uebersicht auf der Startseite. Bei der anderen Terminuebersicht werden bei meiner Version (auch hier weiss ich nicht, ob die sich vom Original unterscheidet, denn mit agons Hilfe habe ich damals einiges geaendert, wobei ich nicht mehr genau weiss, was das alles war) sowohl Anfangs- als auch Enddatum ausgegeben. Die Uebersicht fuer die Startseite habe ich die Tage schon gepostet, evtl. habe ich auch die normale Uebersicht gepostet ... such mal nach 'Uebersicht' oder Terminverwaltung o.ae.

pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Re: agon-Termine: Mehrtagestermin erscheint nur am ersten Ta

Beitrag von pinkernell » Do 10. Jun 2004, 19:18

Halchteranerin hat geschrieben: Ja ok, 'seit Datum X' waere die andere Moeglichkeit. Bei mir ist das zur Zeit so (wobei ich dachte, dass es beim urspruenglichen Modul auch so war, ist es denn nicht?), dass ja nur die aktuellen Termine angezeigt werden. Heute ist der 10.6. Wenn der erste Termin vom 8.-11.6 laeuft und der zweite am 25.7. stattfindet, dann steht in meiner Uebersicht:
8.6.2004 Termin 1
25.7.2004 Termin 2.
Bei mir wird auch das Enddatum mit angegeben: "8.6. bis 11.6.". Wenn bei aktuellem Datum 10.6. dann "Seit dem 8.6. bis 11.6." stehen würde, dann dürfte das "Seit" auf den ersten Blick signalisieren, dass dieses Datum älter ist.

Ich überlege auch, an den Anfang meiner Übersichtstabelle das aktuelle Datum einzublenden: "Heute ist der 10.06.2004"
Halchteranerin hat geschrieben: Ich finde das deshalb verwirrend, weil derjenige, der am 10.6. auf die Seite guckt und den Termin mit dem 8.6. sieht, denken koennte, der Termin ist aus Versehen drin geblieben, und er rechnet nicht zwingend damit, dass es ein mehrtaegiger Termin ist.
Stimmt. Da aber bei mir - und auch bei Deiner anderen Terminübersicht - auch das Enddatum angegeben wird, wäre die von mir oben skizzierte Lösung wohl sinnvoll (und mir am liebsten ;) )

Guido

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: agon-Termine: Mehrtagestermin erscheint nur am ersten Ta

Beitrag von Halchteranerin » Do 10. Jun 2004, 19:34

pinkernell hat geschrieben: Bei mir wird auch das Enddatum mit angegeben: "8.6. bis 11.6.". Wenn bei aktuellem Datum 10.6. dann "Seit dem 8.6. bis 11.6." stehen würde, dann dürfte das "Seit" auf den ersten Blick signalisieren, dass dieses Datum älter ist.
Ach so ... wenn das Enddatum schon mit angegeben wird, dann sollte das doch ausreichen, oder? Wenn Du zusaetzlich noch ...
pinkernell hat geschrieben:Ich überlege auch, an den Anfang meiner Übersichtstabelle das aktuelle Datum einzublenden: "Heute ist der 10.06.2004"
... das aktuelle Datum mit ausgibst, dann allemal!

Hier ein Modul dafuer (allerdings mit meinen Formatierungen):

Code: Alles auswählen

<?php echo "<span class="small">Heutiges Datum:</span> "; echo "<span class="small">".date("d.m.Y")."</span>" ?>
Bei mir ist es eben auf der Startseite problematisch, weil da zur Zeit bei mehrtaegigen Terminen nur das Anfangsdatum angegeben wird. Da habe ich mir erstmal damit geholfen, dass ich im Titel des Artikels '(bis Datum Y)' angegeben habe.
pinkernell hat geschrieben: Stimmt. Da aber bei mir - und auch bei Deiner anderen Terminübersicht - auch das Enddatum angegeben wird, wäre die von mir oben skizzierte Lösung wohl sinnvoll (und mir am liebsten ;) )
Wenn Du das unbedingt mit dem Text 'seit dem ...' haben willst, schick mir den von Dir benutzen Quelltext per PM, ich kann mal gucken, ob ich das hingebogen kriege.

Gruss
Christa

pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Re: agon-Termine: Mehrtagestermin erscheint nur am ersten Ta

Beitrag von pinkernell » Do 10. Jun 2004, 20:13

Halchteranerin hat geschrieben: Ach so ... wenn das Enddatum schon mit angegeben wird, dann sollte das doch ausreichen, oder?
Nee. Das Problem ist ja, das der mehrtägige Termin (dessen Enddatum in der Übersicht immer dabei ist) aus der Übersicht verschwindet, sobald das Startdatum vorbei ist. Und zwar auch dann, wenn das Enddatum noch nicht erreicht ist.

Aber egal. Ich schicke Dir den Code per PM. Kannste den ja mal anschauen und vielleicht sogar verbessern ...

Guido

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: agon-Termine: Mehrtagestermin erscheint nur am ersten Ta

Beitrag von Halchteranerin » Do 10. Jun 2004, 20:18

pinkernell hat geschrieben:Nee. Das Problem ist ja, das der mehrtägige Termin (dessen Enddatum in der Übersicht immer dabei ist) aus der Übersicht verschwindet, sobald das Startdatum vorbei ist. Und zwar auch dann, wenn das Enddatum noch nicht erreicht ist.
Ach so, jetzt verstehe ich das! Ich muss das mal eben bei mir testen. In der Terminuebersicht fuer die Startseite bleibt bei mir der Termin bis zum letzten Tag drin, und bei der anderen (ausfuehrlichen) Terminuebersicht habe ich nicht darauf geachtet. Ich werde mal jetzt einen mehrtaegigen Termin eingeben und gucken, ob er noch in der Terminuebersicht auftaucht ...

pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Problem gelöst!

Beitrag von pinkernell » Sa 12. Jun 2004, 11:44

Danke, Christa, für den Code. In dem Code meiner Terminübersicht war ein "Dreher" drin, so dass die Bedingung "Enddatum >= heutiges Datum" nicht gelesen wurde.

Übrigens habe ich jetzt den Code der Übersicht so geändert, dass Mehrtagestermine, die schon begonnen haben, vor dem Beginndatum ein "Seit" eingefügt bekommen. So soll auf dem ersten Blick deutlich werden, dass dieser Termin schon am Laufen ist.

Bsp. Heute ist der 12.06.
----------------------------------------
Seit 10.06. Mehrtagestermin 01
bis 17.06
----------------------------------------
12.06. Termin 01
----------------------------------------
13.06.
bis 15.06. Mehrtagestermin 02
----------------------------------------
14.06. Termin 02
----------------------------------------

Guido

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Lösungsbeitrag

Beitrag von mhl » Do 16. Feb 2006, 13:14

Hallo zusammen.

Anscheinend ist der Post etwas älter, aber auch wiederum nicht aus der Welt. Die Problematik wird sehr gut beschrieben, aber die Lösung nicht. Besteht die Möglichkeit dass die Lösung zur Anzeigenproblematik der bereits begonnenen Mehrtagestermine hier gepostet wird?

Bei mir verschwinden auch dauernd die Mehrtagestermine, sobald der Erste Tag des Termines abgelaufen ist. Bitte um Hilfe. Danke!

Gruß

MHL

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Problem gelöst!

Beitrag von Halchteranerin » Do 16. Feb 2006, 14:05

pinkernell hat geschrieben:In dem Code meiner Terminübersicht war ein "Dreher" drin, so dass die Bedingung "Enddatum >= heutiges Datum" nicht gelesen wurde.
mhl, hast du bei dir Obiges ueberprueft?
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Beitrag von mhl » Do 16. Feb 2006, 14:29

Danke, das habe ich gelesen, finde den "Dreher" aber nicht. Wahrscheinlich bin ich zu blind dafür....

Hier mein Output Code der Terminübersicht:

Code: Alles auswählen

<?php 
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen 
$date = date("Y-m-d"); 
echo "<p class=headline>CMS_HTMLHEAD[1]</p>"; // Überschrift der Seite mit der Termin-Übersicht 
echo "<font class=subheadline>CMS_HTMLHEAD[2]</font>"; // Sub-Überschrift der Seite mit der Termin-Übersicht 
echo '<table border=0 cellspacing=0 cellpadding=0 width=\"100%\">'; 

$sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid 
 FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT 
 WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang = CONTENT.idartlang 
  AND ARTLANG.idlang = '".$lang."' AND CAT.idcat = '".$idcat."' AND CAT.idclient = '".$client."' 
  AND ARTLANG.online = '1' AND CATART.is_start='0' 
 ORDER BY ARTLANG.idart, CONTENT.typeid ASC"; // Alle Artikel der Kategorie einlesen, die nicht Startartikel (= Terminübersicht) sind 
$db->query($sql); 
$j=0; $anz=0; 
if ($db->num_rows() != 0) 
{ 
 $termin = array(array()); // Array erzeugen, in dem die Termine abgelegt werden; 
 while ($j < $db->num_rows()) // alle Datensätze durchlaufen 
 { 
  $db->next_record(); 
  if ($db->f("idart") > $termin["idart"][$anz]) 
  { 
   $anz++; 
  } 
  switch ($db->f("typeid")) { 
   case 0: // Anfangstermin 
    $termin["datum1"][$anz] = $db->f("value"); 
    $termin["jahr1"][$anz] = substr($db->f("value"),0,4); 
    $termin["monat1"][$anz] = substr($db->f("value"),5,2); 
    $termin["tag1"][$anz] = substr($db->f("value"),8,2); 
    $termin["idart"][$anz] = $db->f("idart"); 
   break; 
   case 1: // Anfangsuhrzeit 
    $termin["zeit1"][$anz] = $db->f("value"); 
    $termin["datum1"][$anz] = $termin["datum1"][$anz]." ".$termin["zeit1"][$anz]; 
   break; 
   case 2: // Endtermin 
    $termin["datum2"][$anz] = $db->f("value"); 
    $termin["jahr2"][$anz] = substr($db->f("value"),0,4); 
    $termin["monat2"][$anz] = substr($db->f("value"),5,2); 
    $termin["tag2"][$anz] = substr($db->f("value"),8,2); 
   break; 
   case 3: // Enduhrzeit 
    $termin["zeit2"][$anz] = $db->f("value"); 
    $termin["datum2"][$anz] = $termin["datum2"][$anz]." ".$termin["zeit2"][$anz]; 
   break; 
   case 4: // Ort 
    $termin["ort"][$anz] = $db->f("value"); 
   break; 
   case 6: // Titel 
    $termin["titel"][$anz] = $db->f("value"); 
   break; 
  } 
  $j++; 
 } 
 array_multisort ( $termin["datum1"], SORT_ASC, SORT_STRING, $termin["datum2"], SORT_ASC, SORT_STRING, 
  $termin["jahr1"], $termin["monat1"], $termin["tag1"], $termin["zeit1"], 
  $termin["jahr2"], $termin["monat2"], $termin["tag2"], $termin["zeit2"], 
  $termin["idart"], $termin["ort"], $termin["titel"] ); // nach Datum sortieren 
 for ($i=0; $i<=$anz; $i++) 
 { 
  if ( $termin["datum1"][$i] >= $date || $termin[$i]["datum2"] >= $date ) // nur Termine, die noch aktuell sind, aufnehmen 
  { 
   if ( $termin["monat1"][$i] !== $termin["monat1"][$i-1] || $gefunden == 0 ) // überprüfen, ob Monatsnahme einzufügen ist 
   { 
    echo ' <tr> 
  <td colspan=6><img border="0" src="images/transparent.gif" width="100%" height="2"> 
 </tr> 
 <tr> 
  <td colspan=6><p class="breadcrumb">'; 
    switch ($termin["monat1"][$i]) { 
     case 1: echo "Januar"; break; 
     case 2: echo "Februar"; break; 
     case 3: echo "März"; break; 
     case 4: echo "April"; break; 
     case 5: echo "Mai"; break; 
     case 6: echo "Juni"; break; 
     case 7: echo "Juli"; break; 
     case 8: echo "August"; break; 
     case 9: echo "September"; break; 
     case 10: echo "Oktober"; break; 
     case 11: echo "November"; break; 
     case 12: echo "Dezember"; break; } 
    if ( $i>1 && $termin["jahr1"][$i] != $termin["jahr1"][$i-1] ) // überprüfen, ob Jahr einzufügen ist 
    { 
     echo ' '.$termin["jahr1"][$i]; 
    } 
    echo '</p></td> 
 </tr>'; 
   } 
   $gefunden=1; 
   echo ' <tr> 
  <td valign="top" width="110" height="15"><p class="text">'.$termin["tag1"][$i].'.'; // Anfangsdatum ausgeben 
   if ( strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1 ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben 
   { 
    echo '</p></td><td width="80" valign="top"><p class="text"> '.$termin["zeit1"][$i].' Uhr'; 
   } elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben 
   { 
    echo ' –  '.$termin["tag2"][$i].'.'; 
    if ( $termin["monat2"][$i] != $termin["monat1"][$i]) // falls Enddatum nicht im gleichem Monat 
    { 
     echo $termin["monat2"][$i].'.'; 
     if ( $termin["jahr2"][$i] != $termin["jahr1"][$i]) // falls Enddatum nicht im gleichen Jahr 
     { 
      echo substr($termin["jahr2"][$i],2,2).'.'; 
     } 
    } 
    echo '</p></td><td width="80"><p>'; 
   } else 
   { 
    echo '</p></td><td valign="top"><p class="text">'; 
   } 
   $navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i].""; 
   echo '</p></td> 
  <td><img border="0" src="images/transparent.gif" width="8" height="1"></td> 
  <td valign="top" width="90"><p class="text">'.urldecode($termin["ort"][$i]).'</p></td> 
  <td><img border="0" src="images/transparent.gif" width="8" height="1"></td> 
  <td valign="top" width="230"><p><a href="'.$sess->url("$navmod_link").'" class="text">'.urldecode($termin["titel"][$i]).'</a></p></td> 
 </tr>'; 
  } 
 } 
} 
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt 
{ 
 echo ' <tr> 
  <td colspan=5 class=text>Es liegen aktuell keine Termine vor!</td> 
 </tr>'; 
} 
?> 
</table>
Also, ich checks nicht... Bitte um kurze Prüfung. Danke!

MHL

pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Beitrag von pinkernell » Do 16. Feb 2006, 15:12

Vielleicht interessiert ja die Lösung des ursprünglichen Fragestellers noch. Zuerst ein Link auf unseren Terminkalender, wo man das Modul mal in Aktion betrachten kann:

http://www.johanneum-lingen.de/cms/fron ... hp?idcat=6

Und nachfolgend der Code des Outputbereichs des Moduls (der Input ist leer).

Gruß, Guido

Code: Alles auswählen

<?
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Terminuebersicht
* Author      :     agon
* Copyright   :     Contenido - four for business
* Created     :     22-08-2002
* Modified    :     22-08-2002
* Modifiziert für's Johanneum Lingen: April 2004 von GMP
************************************************/


$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo '<table border=0 cellspacing=0 cellpadding=0 width=\"100%\">';
echo '<tr>
  <td colspan="3"><h2>Zeit</h2></td>
  <td colspan="2"><h2>Ort</h2></td>
  <td colspan="1"><h2>Details (Klick!)</h2></td></tr>
  <tr>
  <td colspan=6><img src="upload/bilder/blind.gif" height="6"></td>
  </tr>';

$sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang = CONTENT.idartlang
  AND ARTLANG.idlang = '".$lang."' AND CAT.idcat = '".$idcat."' AND CAT.idclient = '".$client."'
  AND ARTLANG.online = '1' AND CATART.is_start='0'
ORDER BY ARTLANG.idart, CONTENT.typeid ASC"; // Alle Artikel der Kategorie einlesen, die nicht Startartikel (= Terminübersicht) sind
$db->query($sql);
$j=0; $anz=0;
if ($db->num_rows() != 0)
{
$termin = array(array()); // Array erzeugen, in dem die Termine abgelegt werden;
while ($j < $db->num_rows()) // alle Datensätze durchlaufen
 {
  $db->next_record();
  if ($db->f("idart") > $termin["idart"][$anz])
  {
   $anz++;
  }
  switch ($db->f("typeid"))
  {
   case 0: // Anfangstermin
    $termin["datum1"][$anz] = $db->f("value");
    $termin["jahr1"][$anz] = substr($db->f("value"),0,4);
    $termin["monat1"][$anz] = substr($db->f("value"),5,2);
    $termin["tag1"][$anz] = substr($db->f("value"),8,2);
    $termin["idart"][$anz] = $db->f("idart");
   break;
   case 1: // Anfangsuhrzeit
    $termin["zeit1"][$anz] = $db->f("value");
    $termin["datum1"][$anz] = $termin["datum1"][$anz]." ".$termin["zeit1"][$anz];
   break;
   case 2: // Endtermin
    $termin["datum2"][$anz] = $db->f("value");
    $termin["jahr2"][$anz] = substr($db->f("value"),0,4);
    $termin["monat2"][$anz] = substr($db->f("value"),5,2);
    $termin["tag2"][$anz] = substr($db->f("value"),8,2);
   break;
   case 3: // Enduhrzeit
    $termin["zeit2"][$anz] = $db->f("value");
    $termin["datum2"][$anz] = $termin["datum2"][$anz]." ".$termin["zeit2"][$anz];
   break;
   case 4: // Ort
    $termin["ort"][$anz] = $db->f("value");
   break;
   case 6: // Titel
    $termin["titel"][$anz] = $db->f("value");
   break;
  }
  $j++;
 }

array_multisort ( $termin["datum1"], SORT_ASC, SORT_STRING, $termin["datum2"], SORT_ASC, SORT_STRING,
  $termin["jahr1"], $termin["monat1"], $termin["tag1"], $termin["zeit1"],
  $termin["jahr2"], $termin["monat2"], $termin["tag2"], $termin["zeit2"],
  $termin["idart"], $termin["ort"], $termin["titel"] ); // nach Datum sortieren
for ($i=0; $i<=$anz; $i++)
 {
  if ( $termin["datum1"][$i] >= $date || $termin["datum2"][$i] >= $date ) // nur Termine, die noch aktuell sind, aufnehmen
  {
   if ( $termin["monat1"][$i] !== $termin["monat1"][$i-1] || $gefunden == 0 ) // überprüfen, ob Monatsnahme einzufügen ist
   {

    echo '
  <tr>
  <td colspan=6 class="liste_1"><h2>';
    switch ($termin["monat1"][$i]) {
     case 1: echo "Januar"; break;
     case 2: echo "Februar"; break;
     case 3: echo "März"; break;
     case 4: echo "April"; break;
     case 5: echo "Mai"; break;
     case 6: echo "Juni"; break;
     case 7: echo "Juli"; break;
     case 8: echo "August"; break;
     case 9: echo "September"; break;
     case 10: echo "Oktober"; break;
     case 11: echo "November"; break;
     case 12: echo "Dezember"; break; }
    if ( $i>1 && $termin["jahr1"][$i] != $termin["jahr1"][$i-1] ) // überprüfen, ob Jahr einzufügen ist
    {
     echo ' '.$termin["jahr1"][$i];
    }
    echo '</h2></td></tr>';
   }
   $gefunden=1;
   echo '
  <tr>
  <td colspan=6 class="liste_2"><img src="upload/bilder/blind.gif" height="3"></td>
  </tr>';
  
  if ( $termin["datum1"][$i] < $date)
  
  {
  echo '
  <tr>
  <td nowrap valign="top"><p id="font">Seit '.$termin["tag1"][$i].'.'; // Anfangsdatum ausgeben
   if ( strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1 ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben
   {
    echo '</p></td><td nowrap valign="top"><p>'.$termin["zeit1"][$i].' Uhr';
   } elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
   {
    echo '<br>bis '.$termin["tag2"][$i].'.';
    if ( $termin["monat2"][$i] != $termin["monat1"][$i]) // falls Enddatum nicht im gleichem Monat
    {
     echo $termin["monat2"][$i].'.';
     if ( $termin["jahr2"][$i] != $termin["jahr1"][$i]) // falls Enddatum nicht im gleichen Jahr
     {
      echo substr($termin["jahr2"][$i],2,2).'.';
     }
    }
    echo '</p></td><td><p>';
   } else
   {
    echo '</p></td><td><p>';
   }
   $navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
   echo '</p></td>
  <td><img src="upload/bilder/blind.gif" border="0" width="8"></td>
  <td valign="top"><p>'.urldecode($termin["ort"][$i]).'</p></td>
  <td><img src="upload/bilder/blind.gif" border="0" width="8"></td>
  <td width="65%" valign="top"><b><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></b></td>
  </tr>';
  }
  
  else
  
  {
  echo'
  <tr>
  <td nowrap valign="top"><p id="font">'.$termin["tag1"][$i].'.'; // Anfangsdatum ausgeben
   if ( strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1 ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben
   {
    echo '</p></td><td nowrap valign="top"><p>'.$termin["zeit1"][$i].' Uhr';
   } elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
   {
    echo '<br>bis '.$termin["tag2"][$i].'.';
    if ( $termin["monat2"][$i] != $termin["monat1"][$i]) // falls Enddatum nicht im gleichem Monat
    {
     echo $termin["monat2"][$i].'.';
     if ( $termin["jahr2"][$i] != $termin["jahr1"][$i]) // falls Enddatum nicht im gleichen Jahr
     {
      echo substr($termin["jahr2"][$i],2,2).'.';
     }
    }
    echo '</p></td><td><p>';
   } else
   {
    echo '</p></td><td><p>';
   }
   $navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
   echo '</p></td>
  <td><img src="upload/bilder/blind.gif" border="0" width="8"></td>
  <td valign="top"><p>'.urldecode($termin["ort"][$i]).'</p></td>
  <td><img src="upload/bilder/blind.gif" border="0" width="8"></td>
  <td width="65%" valign="top"><b><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></b></td>
  </tr>';
  }
  
  echo '
  <tr>
  <td colspan=6><img src="upload/bilder/blind.gif" height="3"></td>
  </tr>';
  }
 }
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
echo '
<tr>
  <td colspan=6><b>Es liegen aktuell keine Termine vor!</b></td>
</tr>';
}
?>
</table>

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Do 16. Feb 2006, 16:58

danke fuers Veroeffentlichen, aber wo war nun der Dreher? :) Nachdem ich gesehen habe, dass ich mit meiner Vermutung falsch lag, habe ich meine vorige Antwort geloescht, um niemanden zu verwirren. :oops:
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

Gesperrt