Terminmodul mit allen Terminen

Maribeauli

Beitrag von Maribeauli » Mo 27. Feb 2006, 17:02

rezeptionist hat geschrieben:Alos ich habe genau 2 Templates und zwar Terminübersicht und Termin eingabe
...
Und nun kann ich Termine eingeben wie ich lustig bin :wink:
Stimmt, *kopfklatsch* :shock:
Der Artikel übernimmt ja das Template der Kategorie.

Das einem Sachbearbeiter klarmachen, der hier mal schnell einen neuen Termin eingeben soll wird lustig :roll:

Aber so ganz ist die "Forderung" der @Halchteranerin,
Was du vermeiden solltest, weil es oft Probleme gibt: der Kategorie UND den darin enthaltenen Artikel Templates zuzuweisen
damit auch nicht erfüllt.

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Mo 27. Feb 2006, 17:05

Hm warum im endeffekt überlagern sich hier ja nur der Startartikel mit der Konfiguration. Und es heißt "vermeiden" hier lässt es sich aber nicht vermeiden :wink: . Und ich denke es ist ja im Endeffekt noch schöne dem Sachbearbeiter zu sagen " Hey Sachi du musst nur die Daten eintippen" :wink:
greets

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

Beitrag von Halchteranerin » Mo 27. Feb 2006, 17:25

Der Fehler befand sich also doch 50 cm vor dem Bildschirm. :P
Maribeauli hat geschrieben:Aber so ganz ist die "Forderung" der @Halchteranerin,
Was du vermeiden solltest, weil es oft Probleme gibt: der Kategorie UND den darin enthaltenen Artikel Templates zuzuweisen
damit auch nicht erfüllt.
Das war nicht praezise genug formuliert, ich verbessere/ergaenze: DAS GLEICHE Template darf nicht zugewiesen werden, unterschiedliche sehr wohl, macht sogar Sinn.
Also nochmal: du hast ein Template Termineingabe und ein Template Terminuebersicht. Die Kategorie bekommt das Template fuer die Eingabe zugewiesen, und in der Kategorie bekommt NUR der Artikel ein Template zugewiesen, der die Uebersicht darstellen soll, und zwar das Template Terminuebersicht. Alle anderen Artikel "erben" das Template der Kategorie.
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!

Maribeauli

Beitrag von Maribeauli » Di 28. Feb 2006, 12:51

rezeptionist,

ich hatte ja weiter oben erwähnt das ich Probleme hatte, so ganz ist nicht rausgekommen was für Probleme und ob das was ich gemacht habe richtig war.
Deswegen meine obigen Postings mal nicht beachten, ich versuche es nochmals zu erklären.

Problem Terminausgabe

Also, ich habe den Code für die Termineingabe (Termin-Details) aus deinem Posting 1 unverändert übernommen und später in der ersten Zeile diese Ergänzung cIncludes ... eingesetzt:

Code Termineingabe:

Code: Alles auswählen

<?php 
   cInclude('classes', 'contenido/class.client.php');
   if(strstr($REQUEST_URI,"changeview=edit") || $submit=="editcontent" || strstr($REQUEST_URI,"area=con_editcontent")) // Überprüfen, ob im Editiermodus aufgerufen 
   { 
...
der Rest ist unverändert!
Als Terminausgabe (Übersicht aller Termine) habe ich den Code aus deinem Posting 4 wo du schreibst in der Übersicht ??? Wenn ja nimm mal den hier genommen:
Code Terminausgabe:

Code: Alles auswählen

<?php
cInclude('classes', 'contenido/class.client.php');
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen 
$date = date("Y-m-d"); 
echo '<div>'; 


....


....


   $gefunden=1; 
    $navmod_link ="front_content.php?&idcat=".$navmod_id."&idart=".$termin["idart"][$i].""; 
    echo ' 
  
 <div class="details" ><a href="'.$sess->url(" ").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div> 
 <div class="ort" >'.urldecode($termin["ort"][$i]).'</div> 
 <div class="termine">'.substr($termin["datum1"][$i],8,2).'.'.substr($termin["datum1"][$i],5,2).'.'.substr($termin["datum1"][$i],0,4).' '.$termin["zeit1"][$i].'Uhr'; // Anfangsdatum ausgeben 
   if (  strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1  ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben 
   { 
      echo '</div><div class="zeit"> '.$termin["zeit1"][$i].' Uhr</div>'; 
   } 
      elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben 
   { 
      echo ' bis '.substr($termin["datum2"][$i],8,2).'.'.substr($termin["datum2"][$i],5,2).'.'.substr($termin["datum2"][$i],0,4).' '.$termin["zeit2"][$i].'Uhr'; 
      if ( $termin["monat2"][$i] != $termin["monat1"][$i]) // falls Enddatum nicht im gleichem Monat 
      { 
         echo $termin["monat2"][$i].'</div>'; 
         if ( $termin["jahr2"][$i] != $termin["jahr1"][$i]) // falls Enddatum nicht im gleichen Jahr 
         { 
            echo substr($termin["jahr2"][$i],0,0).''; 
         } 
      } 
      echo ''; 
   } 
    else 
   { 
      echo '</div>'; 
   } 
      echo ''; 
   } 
    } 
} 
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt 
{ 
   echo ' <div><b>Es liegen aktuell keine Termine vor!</b></div>'; 
} 
?>
Wenn ich nun (im Front End) dieser Terminausgabe (Terminübersicht)
auf den Link mit dem Titel gehe wird folgende URL aufgerufen:
h#ttp://www.***********.de/content/cms/+

(Das es auch bei der Termineingabe so war soll hier nicht weiter betrachtet werden)

Ich habe nun folgendes gemacht:

Deinen Code hier aus der Terminausgabe (Terminübersicht):

Code: Alles auswählen

    $navmod_link ="front_content.php?&idcat=".$navmod_id."&idart=".$termin["idart"][$i].""; 
    echo ' 
  
 <div class="details" ><a href="'.$sess->url(" ").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div> 
durch folgendes geändert:

Code: Alles auswählen

    $navmod_link ="front_content.php?&idcat=".$navmod_id."&idart=".$termin["idart"][$i].""; 
    echo ' 
  
 <div class="details" ><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div> 
Ich habe also die url (" ") nicht leergelassen sondern die Variable navmod_link dort eingefügt.

Und nun tut es wie es soll, sowohl bei der Termineingabe als auch bei der Terminausgabe.
Nochmals meine Frage:
Ist das richtig?




Das nächste Problem ist bei der Anzeige der Uhrzeit.

Hier wird bei der Terminausgabe im Front End folgendes angezeigt:
März 2006
Vortrag mit bekannten Leuten
Haus 2
09.03.2006 12:34Uhr
12:34 Uhr
Es gibt jedoch keinen Endtermin und auch keine End-Uhrzeit (kontrolliert, ist tatsächlich keine Eingetragen).
Es erscheint immer die Startuhrzeit in der neuen Zeile zusätzlich.

Weiter:
Wenn ich Start- und Endtermin mit Uhrzeiten eingebe, Beispiel:
Februar 2006
Veranstaltung x
Halle
27.02.2006 14:27Uhr bis 28.02.2006 19:29Uhr
Zurück zur vorhergehenden Seite
wird es richtig mit den Uhrzeiten angegeben.



Problem Termineingabe

Im Modul Termineingabe ist auch etwas seltsames:

Es erscheint niemals das Wort "Uhr" hinter einer Anfangsuhrzeit.

Ich habe mal folgendes probiert:
im Code Termineingabe die Worte Uhr geändert:

Code: Alles auswählen

...
      else // ab hier Terminausgabe für Frontend-Ansicht bzw. Vorschau 
   { 
      $tag1 = substr("CMS_TEXT[0]",8,2); 
      $monat1 = substr("CMS_TEXT[0]",5,2); 
      $jahr1 = substr("CMS_TEXT[0]",0,4); 
      $tag2 = substr("CMS_TEXT[2]",8,2); 
      $monat2 = substr("CMS_TEXT[2]",5,2); 
      $jahr2 = substr("CMS_TEXT[2]",0,4); 
      $datum1 = $tag1.".".$monat1.".".$jahr1; 
      $datum2 = $tag2.".".$monat2.".".$jahr2; 
      $date1 = getdate(mktime(0,0,0,$monat1,$tag1,$jahr1)); 
      $date2 = getdate(mktime(0,0,0,$monat2,$tag2,$jahr2)); 
      $wochentag = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"); 
echo "<div id=\"natermin\"> 
      <p style=\"height:90%;margin:0px;\"><b>".mi18n("Veranstaltung:")."</b></p> 
      <p style=\"height:14px;margin:0px;padding-bottom:6px;\">CMS_TEXT[6]</p> 
      <p style=\"height:14px;margin:0px;\"><b>".mi18n("Datum:")."</b></p> 
      <p style=\"height:14px;margin:0px;padding-bottom:6px;\">".$wochentag[$date1[wday]].", ".$datum1; 
      if ( "CMS_TEXT[1]"!=="" ) 
      { 
         echo ", CMS_TEXT[1]"; 
         if ( "CMS_TEXT[1]"=="" ) 
         { 
            echo " Uhhhhr"; 
         } 
      } 
      if ( strlen($datum2)==10 || "CMS_TEXT[3]"!=="" ) 
      { 
         echo " ".mi18n("bis")." "; 
         if ( strlen($datum2)==10 ) 
         { 
            echo $wochentag[$date2[wday]].", ".$datum2; 
         } 
         if ( strlen($datum2)==10 && "CMS_TEXT[3]"!=="" ) 
         { 
            echo ', '; 
         } 
         if ( "CMS_TEXT[1]"!=="" ) 
         { 
            echo "CMS_TEXT[3]  Uhrrrr"; 
         } 
      } 
       
echo "</p> ...
Es erscheint niemals (im Front End bei der Termineingabe) die Uhrzeit als Uhhhr es wird folgendes als Termindetail angezeigt:

Code: Alles auswählen

Veranstaltung:
Vortrag x
Datum:
Montag, 27.02.2006, 14:27 bis Dienstag, 28.02.2006, 19:29 Uhrrrr
Veranstaltungsort:
Halle
Ich habe den Eindruck als ob da eine Stringdefinition fehlt oder nicht oder falsch abgefragt wird. Ich habe nichts gefunden für zeit1 / .$termin[1]
und auch kein Feld CMS_TEXT[x] wo diese Zeit abgelegt ist / abgefragt wird.

Aber wie ich schon sagte, mit php kenne ich mich nur wenig aus und mit MySql-Abfragen gar nicht.

Kannst du dir das nochmal ansehen und ggf. helfen?

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Di 28. Feb 2006, 15:10

lach nochmal

Code: Alles auswählen

Deinen Code hier aus der Terminausgabe (Terminübersicht):
Code:
    $navmod_link ="front_content.php?&idcat=".$navmod_id."&idart=".$termin["idart"][$i]."";
    echo '
 
 <div class="details" ><a href="'.$sess->url(" ").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div>


durch folgendes geändert:
Code:
    $navmod_link ="front_content.php?&idcat=".$navmod_id."&idart=".$termin["idart"][$i]."";
    echo '
 
 <div class="details" ><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div>


Ich habe also die url (" ") nicht leergelassen sondern die Variable navmod_link dort eingefügt.

Und nun tut es wie es soll, sowohl bei der Termineingabe als auch bei der Terminausgabe.
Nochmals meine Frage:
Ist das richtig?
die url (" ") hast du leergemacht in einem deiner Posts :wink:

Aber ist jetzt egal, schicke mir per PM deine Daten, ich schaue es mir dann heute Nacht an.
greets

Maribeauli

Beitrag von Maribeauli » Di 28. Feb 2006, 16:14

rezeptionist hat geschrieben:lach nochmal
...

die url (" ") hast du leergemacht in einem deiner Posts :wink:

Aber ist jetzt egal, schicke mir per PM deine Daten, ich schaue es mir dann heute Nacht an.
Ja, lach mich ruhig aus. Habe ich verdient,
ich habe aber nichts leergemacht (Betonung auf *ich*)

Bei mir ist die url (" ") tatsächlich leer.
Ich habe das Thema im ContentSaver (einem Programm zum Sammeln und Archivieren von Webseiten in einer Access-Datenbank) gespeichert damit ich den Code schnell mal zur zur Hand habe.
Und dieses Programm ContenSaver verschluckt den Inhalt zwischen den "Hochkommas". Und ich habe den Code beim 2. Mal aus dem ContentSaver kopiert.
Wieder was gelernt. Traue niemals eine Datenbank ...
Es geht nichts über "... speichern unter" auf die eigene HD.

Das würde auch den Effekt erklären das beim 1. Installieren/Versuch (direkt aus dem Thread den Code kopiert) die Fehlermeldungen anders waren als beim 2. und 3. Versuch (Code aus dem ContentSaver kopiert).

Jetzt werde ich alles nochmals löschen und den Code direkt aus dem Thread in das Modul einkopieren.
Wenn dann auch das mit den Uhrzeiten weg ist wird auch da irgendwas unterschlagen.

Ist mir das peinlich :oops: , aber das wußte ich nicht.

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Di 28. Feb 2006, 16:30

Muss es nicht den ich wusste es auch nicht :wink: , deshalb save ich alle module die ich benutze auf meiner HD als xml, sprich ich kopiere sie ganz normal in contenido und exportiere sie dann. Meld dich wenn sich was getan hat !!
greets

Maribeauli

Beitrag von Maribeauli » Di 28. Feb 2006, 17:30

rezeptionist,
rezeptionist hat geschrieben:Meld dich wenn sich was getan hat !!
Soderle, alle Artikel in dieser Kategorie gelöscht, Code der beiden Module gelöscht, Original-Code aus diesem Thread in die Module einkopiert, allerdings in beiden Modulen mit dem von dir geposteten Zusatz cInclude ... versehen:

Code: Alles auswählen

<?php
cInclude('classes', 'contenido/class.client.php');
Neuen Artikel Terminausgabe (Terminübersicht) als Startartikel erstellt,
2 neue Artikel Termindetail (Termineingabe) erstellt.

Soweit läuft alles fehlerfrei, allerdings das seltsame mit den Uhrzeiten ist immer noch da.
Ort und Ort-Detail sowie Zusatztexte habe ich nicht eingegeben

Ich habe mal 3 Screenshot davon gemacht (Größe ca. 12 kb, alles klein)

Terminübersicht (Terminausgabe) - beim Artikel 1 wird in der 2. Zeile die Uhrzeit wiederholt:

Bild



Termindetail (Termineingabe)
Artikel 1 - da stimmt alles:

Bild


Artikel 2 - da fehlt auch wieder das Wort Uhr bei der ersten Zeit:

Bild

(Hätte ich anstelle der Bilder besser nur die URL angeben sollen?)

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Di 28. Feb 2006, 17:38

Na sieht doch schon mal besser aus, den rest bekommen wir auch noch hin.

Kannst mir mal nen Link per PM schicken und wenn möglich richte mir bitte einen Zugang ein, und die Daten dann auch per PM. Dann schaue ich heute abend drüber !!
greets

Maribeauli

Beitrag von Maribeauli » Mi 1. Mär 2006, 17:19

Den Rest habe ich jetzt auch hinbekommen.

Den Code habe ich @rezeptionist per PM gesendet.

Nun wollte ich das Modul ausbauen das in der Terminausgabe (Terminübersicht) auch das Feld Ort-Detail mit ausgegeben wird.

Hier das Case 5 eingebaut:

Code: Alles auswählen

      case 4: // Ort 
        $termin["ort1"][$anz] = $db->f("value"); 
       break; 
       case 5: // Ort - Detail
        $termin["ort2"][$anz] = $db->f("value"); 
       break; 
       case 6: // Titel 
        $termin["titel"][$anz] = $db->f("value"); 
       break; 
       } 
an 3 Stellen aus Ort ein Ort1 gemacht und dann so ausgegeben:

Code: Alles auswählen

 <div class="details" ><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div> 
 <div class="ort" >'.urldecode($termin["ort1"][$i]).'</div> 
 <div class="ort" >'.urldecode($termin["ort2"][$i]).'</div> 
Funktioniert auch, aber ... die Ausgabe würfelt die Werte für Ort2 durcheinander,
wenn bei einer Termineingabe nichts eingegeben ist ...
Hier müßte in der Eingabe (Termineingabe) eine Abfrage rein in der Art "Feld leer -> Platzhalter einsetzen,
und in der Ausgabe das ganze anders rum.

Sorry, das schaffe ich nicht, dafür reichen meine Kenntnisse nicht aus.
Wenn es jemanden interessiert wäre es schön wenn er danach guckt.

Der Hintergrund dazu:
Wenn in der Terminausgabe diese Daten sind könnte man auf den Link zum Artikel-Detail (Termineingabe) [Inhalt] verzichten wenn im Feld "Beschreibung / Inhalte: CMS_HTML[7]" keine Inhalte eingegeben wurden.

sfietze
Beiträge: 7
Registriert: Sa 29. Okt 2005, 08:45
Kontaktdaten:

Leerer Monat/Termine

Beitrag von sfietze » Di 18. Apr 2006, 16:49

Hallo zusammen,

ich habe die Module Terminübersicht und Termineingabe installiert und nach einigen Anfangsschwierigkeiten (und dank der Hinweise hier im Forum) laufen diese auch.

Ein Problem gibt es bei der Terminübersicht: Am Ende der Übersicht im Frontend wir ein "leerer" Monat und vier Termine (dargestellt mit "..") ausgegeben und ich habe keine Ahnung, woher diese Termin kommen.

stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony » Di 25. Apr 2006, 13:04

Tach Jungs,

habe gerade ein kleines Problem mit dem Kalender gehabt, undzwar:

habe ich in der Kategorie 2 Offline-Artikel und den Startartikel. Bei der Ausgabe erhielt ich dann unter allen Terminen 3 mal 3 leere Div-Container.

und da habe ich festgestellt das die SQL Abfrage

Code: Alles auswählen

      AND ARTLANG.online = '1' AND CATART.is_start='0' 
anscheinend nicht mehr funktioniert seit 4.6.x

da aber nun die Anzahl:
if ($db->f("idart") > $termin["idart"][$anz])
{
$anz++;
}
vor dem testen der Parameter erhöht wird erhalte ich anschliessend 3 leere Container.

Lösung: neue DB Abfrage?

ich habe jetzt die Erhöhung der Anzahl mit in die Testanweisung geschrieben:

Code: Alles auswählen

 if (isStartArticle($db->f("idartlang"),$idcat,$lang)==FALSE) 
      { 
	        if ($db->f("idart") > $termin["idart"][$anz]) 
      			{ 
			         $anz++; 
			    } 
greez stony

p.s.
Contenido 4.6.8
Apache/1.3.27 (Linux/SuSE) PHP/4.3.1 mod_perl/1.27 DAV/1.0.3
Mysql 3.23.55-log
PHP: 4.3.1
sql.safe_mode deactivated
Disabled functions nothing disabled
safe_mode deactivated

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Di 25. Apr 2006, 13:16

kannst su dann bitte auch für alle anderen deinen aktuellen Code posten sonst kann ich dir jetzt schon die nächsten posts verraten ala " Wo soll das hin" Danke
greets

stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony » Di 25. Apr 2006, 13:53

obwohl ich glaube das es sinnvoller ist das du es im Original Beitrag einfach änderst, so muss sich nicht jeder erst durch das gesamte Forum quälen. bzw. noch besser wäre es wenn jemand mal die SQL Abfrage anpassen könnte. Dann könnte man sich die Überprüfung ob "online" und ob "start" sparen und die damit verbunden SQL Anfragen für jeden Artikel. (was wie ich finde ganz schöner SQL Terror ist)

Terminübersicht:

Input:
leer

Output:

Code: Alles auswählen

<?php
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo '<div>';

$sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid, ARTLANG.idartlang
      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= -1;
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 (isStartArticle($db->f("idartlang"),$idcat,$lang)==FALSE)
      {
        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,0);
        $termin["monat2"][$anz] = substr($db->f("value"),0,0);
        $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_DESC, 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]["datum1"] <= $date || $termin[$i]["datum2"] <= $date || $termin[$i]["datum2"] <= $date  ) // nur Termine, die noch aktuell sind, aufnehmen
   {
      if ( $termin["monat1"][$i] !== $termin["monat1"][$i-1] || $termin["jahr1"][$i] !== $termin["jahr1"][$i-1] || $gefunden == 0 ) // überprüfen, ob Monatsnahme einzufügen ist
      {
      echo '
 
 <div class="monjahr" style="border-bottom:#000000 2px solid;font-weight:bold;">';
    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; }
   
      echo ' '.$termin["jahr1"][$i];
      echo '</div>';
      }
   $gefunden=1;
    $navmod_link ="front_content.php?&idcat=".$navmod_id."&idart=".$termin["idart"][$i]."";
    echo '
 
 <div class="details" ><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div>
 <div class="ort" >'.urldecode($termin["ort"][$i]).'</div>
 <div class="termine">'.substr($termin["datum1"][$i],8,2).'.'.substr($termin["datum1"][$i],5,2).'.'.substr($termin["datum1"][$i],0,4); // Anfangsdatum ausgeben
   if (  strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1  ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben
   {
      echo '</div><div class="zeit"> '.$termin["zeit1"][$i].' Uhr</div>';
   }
      elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
   {
      echo ' bis '.substr($termin["datum2"][$i],8,2).'.'.substr($termin["datum2"][$i],5,2).'.'.substr($termin["datum2"][$i],0,4);
      if ( $termin["monat2"][$i] != $termin["monat1"][$i]) // falls Enddatum nicht im gleichem Monat
      {
         echo $termin["monat2"][$i].'</div>';
         if ( $termin["jahr2"][$i] != $termin["jahr1"][$i]) // falls Enddatum nicht im gleichen Jahr
         {
            echo substr($termin["jahr2"][$i],0,0).'';
         }
      }
      echo '';
   }
    else
   {
      echo '</div>';
   }
      echo '';
   }
    }
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
   echo ' <div><b>Es liegen aktuell keine Termine vor!</b></div>';
}
?>
</div>
p.s. warum sind den bitte jetzt die leerzeichen weg?
Zuletzt geändert von Oldperl am Fr 8. Apr 2011, 10:45, insgesamt 1-mal geändert.
Grund: BBCode: code anstelle quote

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Di 25. Apr 2006, 15:15

Code besser mit Alt+C eingeben wegen der Übersicht ansonsten Danke
greets

Gesperrt