Terminliste universal V2.6 mit sKalender u. Mehrfachtermin

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von Oldperl » Sa 21. Aug 2010, 20:27

Hallo NurPech,

immer mit der Ruhe. :roll:
Offensichtlich gibt es auch noch Menschen die ein anderes Leben haben als nur hier im Forum zu leben. :)
Du hast aber bestimmt auch schon mal im Thread der 2.5er Version der Liste geschaut, dort gibt es eine nette bebilderte Anleitung. Den Link dorthin gibt es im 1. Post dieses Threads.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

NurPech
Beiträge: 9
Registriert: Do 19. Aug 2010, 16:09
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von NurPech » Sa 21. Aug 2010, 20:39

Hi,

sicher ist mir das bewusst. Nur brauche ich das wirklich dringend :D

Und ja. Ich habe im Thred der 2.5er Version geguckt -> bin scheinbar zu blöd um's zu sehen :P

Ich werde noch einmal gucken ...

Also ich ahbe jetzt geguckt.

Wenn du die Bilder im 1. Post meinst. Das hilft mir im Augenblick leider nicht weiter (evt interpretiere ich das auch einfach falsch^^). Ich wüsste ganz gerne wie ich über haupt Termien anlege. Soweit ich das Verstanden habe:
1. Kategorie anlegen: Termine als Artikel erstellen
2. Modul für bspw Teaser einbinden und als Kategorie die kat aus punkt 1 angeben.

Nur das kanns wohl nicht sein. Zumindest funktioniert es nicht :D
lg

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von Oldperl » Sa 21. Aug 2010, 21:38

NurPech hat geschrieben:Nur brauche ich das wirklich dringend :D
Na wenn du das soooooooo dringend brauchst, kann ich dir nur unser Jobforum ans Herz legen.
Du glaubst nicht wie schnell du Hilfe bekommst wenn du dort ein Jobangebot mit entsprechender Dotierung einstellst. 8)

Hier im "kostenlosen" Forum kann es aber auch mal etwas länger dauern, da viele aus der Community das in ihrer Freizeit machen. Und da hilft auch kein Drängeln und Mäkeln.
Da ich das Modul selbst nicht nutze kann ich dir bei der Bedienung nicht weiter helfen und du mußt dich gedulden bis Jemand zurückschreibt der es nutzt.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

NurPech
Beiträge: 9
Registriert: Do 19. Aug 2010, 16:09
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von NurPech » Sa 21. Aug 2010, 21:57

Ist ja schon gut :D

Im Normalfall bin ich in der Lage mir selbst zu helfen (bin selbst Informatiker mit sehr guter Erfahrung was die Webentwicklung angeht). Nur hiermit komm ich wirklich nicht klar oO
Und warum nochmal schreiben wenn's bereits existiert?

Und das mit dem Jobforum ist so ne Sache. Hab nicht wirklich was was ich bieten kann :D

Ich warte einfach mal viell bekomme ich ja auch vom Autor kurz gesagt was ich machen muss :)

lg

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von Peer » Mo 25. Okt 2010, 22:02

Hallo,

ich benutze die Terminliste universal 2.6 in der Contenido Version 4.8.14
Wenn ich dort Termine eingebe und die Funktion der folge Termine benutze werden bei den Folge Terminen leider das Datum nicht angezeigt.

Hat jemand eine Idee ?

Hier ist der Link http://www.brodhagenschule.de/schul-new ... index.html zu der Terminliste.

Gruß

Peer

fabmatti
Beiträge: 11
Registriert: So 15. Aug 2010, 19:10
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von fabmatti » So 7. Nov 2010, 15:08

Tach zusammen.

Da ich leider keine Lösung im Forum gefunden habe, stelle ich hier mal mein Problem vor:

Ich nutzte die Terminliste (Termineingabeanzeige_universal_V2.5) und habe meine Contenido endlich mal von 4.6.x auf 4.8.13 "geupdated". Seit dem Update kann ich weder Termine anlegen noch bearbeiten, da ich folgenden Fehler bekomme (Beim Klick auf "Absenden"):

Code: Alles auswählen

The requested URL /external/backendedit/front_content.php was not found on this server.
Der Pfad stimmt aber, da ich meinen Contenido-Ordner einer speziellen Subdomain zugewiesen habe. Die Datei ist auch da.

Also habe ich dann mal die neueste Version der Terminliste (Termineingabeanzeige_universal_V2.6) eingespielt. Immer noch das Problem. Mittlerweile gab´s Contenido 4.8.14, also auch aufgespielt - keine Besserung. :motz:

Daher meine Frage: Was kann man denn nun tun, damit´s läuft :?:

Ich habe zwei Projekte laufen, die die Terminliste nutzen. Und bei beiden geht´s nicht.

Grüße
fabmatti

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von Peer » Mi 10. Nov 2010, 02:18

Hallo fabmatti,

ich habe das Problem gelöst in dem ich in den Ordner "Contenido" eine .htaccess Datei angelegt habe mit folgendem Inhalt

Code: Alles auswählen

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Gruß

Peer

fabmatti
Beiträge: 11
Registriert: So 15. Aug 2010, 19:10
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von fabmatti » Mi 10. Nov 2010, 06:57

Peer hat geschrieben: ich habe das Problem gelöst in dem ich in den Ordner "Contenido" eine .htaccess Datei angelegt habe mit folgendem Inhalt

Code: Alles auswählen

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Hallo Peer.

Danke für die schnelle Antwort. Ich werde das heute gleich mal ausprobieren.

Aber durch was kommt es zu dem Fehler? Ist die Version buggy? Ich hatte es noch nicht mit einer frischen 4.8.14er Installation getestet, ob´s da auch auftritt.
Wie beeinträchtigt aber der Patch die Sicherheit? So wie ich das sehe, hebelt der die Prüfungen aus.

Gruß
fabmatti

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von Oldperl » Mi 10. Nov 2010, 07:53

Hallo,
Peer hat geschrieben:ich habe das Problem gelöst in dem ich in den Ordner "Contenido" eine .htaccess Datei angelegt habe mit folgendem Inhalt

Code: Alles auswählen

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Ob ein aktiviertes oder deaktiviertes mod_security sinnvoller ist muss zwar jeder selbst entscheiden, sollte man aber die Möglichkeit haben auf deren Konf., bzw. auf die entsprechenden Apache-Dateien, zuzugreifen, ist es evtl. sinnvoller dort entsprechende Regeln zu hinterlegen.
Man kann natürlich auch z.B. POST-Daten so anpassen, dass sie nicht ausgefiltert werden.

Mehr Infos zu mod_security
Homepage :arrow: http://www.modsecurity.org
Doku :arrow: http://www.modsecurity.org/documentatio ... rence.html
Tutorial (deutsch) :arrow: http://www.howtoforge.de/howto/sichere- ... d_security

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

fabmatti
Beiträge: 11
Registriert: So 15. Aug 2010, 19:10
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von fabmatti » Fr 12. Nov 2010, 14:36

Leider hat das nicht geholfen. Hat denn keiner weiter das Problem?

Gruß
fabmatti

fabmatti
Beiträge: 11
Registriert: So 15. Aug 2010, 19:10
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von fabmatti » So 21. Nov 2010, 19:27

So, hab die Lösung gefunden:

Das Problem war ja, dass ich nach dem Update dem Front- und Backend jeweils eigene Subdomains zugewiesen habe. Und da war halt der Wert für $REQUEST_URI eben nicht ganz korrekt.

Nachdem ich dann eine Lösung von schlaucher ...

Code: Alles auswählen

$REQUEST_URI = 'http://'.$SERVER_NAME.$REQUEST_URI; 
...gefunden habe, klappt´s auch.

Trotzdem Dank für die Vorschläge!!!

andy-man
Beiträge: 166
Registriert: Di 25. Nov 2003, 11:29
Wohnort: Oberstaufenbach
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von andy-man » Fr 26. Nov 2010, 11:56

Hallo,
ich habe das Terminmodul V2.6 schon lange im Einsatz und jetzt auch in der 4.8.14 eingebaut und läuft auch so weit. Was mir durch Zufall aufgefallen ist, wenn kein Termin mehr aktuell ist, wird dies in Übersicht korrekt angezeigt (z.Bsp. Es liegen keine Termine vor), aber der Terminkalender gibt folgende Fehlermeldung aus:
Warning: array_keys() [function.array-keys]: The first argument should be an array in /var/www/htdocs/cms/front_content.php(923) : eval()'d code on line 837
Warning: Invalid argument supplied for foreach() in /var/www/htdocs/cms/front_content.php(923) : eval()'d code on line 838
Warning: array_keys() [function.array-keys]: The first argument should be an array in /var/www/htdocs/cms/front_content.php(923) : eval()'d code on line 837
Warning: Invalid argument supplied for foreach() in /var/www/htdocs/cms/front_content.php(923) : eval()'d code on line 838
....
Wo und wie kann kann ich diese Fehlermeldung ändern?

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Termin sKalender universal
* Version     :     2.6
* Author      :     schlaucher
* Created     :     02-08-2006
* Modified    :     06-10-2008
************************************************/ 

cInclude('frontend', 'includes/functions.terminliste.php');

if ($_REQUEST['MOD_sK_newdate']) // Datum wurde über den sKalender neu gesetzt
    {
    $MOD_sK_newdate_array = explode("-",$_REQUEST['MOD_sK_newdate']);  // yyyy-m-t oder mm tt
    $MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], 1,  $MOD_sK_newdate_array[0]));
    $MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_newdate_array[1], 1, $MOD_sK_newdate_array[0]));
    $MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], $MOD_sK_tag_max,  $MOD_sK_newdate_array[0]));
    }
else // aktuelles Datum verwenden
    {
    $MOD_sK_heute = getdate();
    $MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], 1,  $MOD_sK_heute["year"]));
    $MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_heute["mon"], 1, $MOD_sK_heute["year"]));
    $MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], $MOD_sK_tag_max,  $MOD_sK_heute["year"]));
    }

//echo 'Anzeige von: '.$MOD_sK_checkdate_von.' bis '.$MOD_sK_checkdate_bis.'<br>';

$MOD_sK_zaehler = 0;
$MOD_sK_zaehler2 = 0;
$MOD_sK_tage= array(mi18n("So"),mi18n("Mo"),mi18n("Di"),mi18n("Mi"),mi18n("Do"),mi18n("Fr"),mi18n("Sa"));

// Variablen aus Input Bereich
if ("CMS_VALUE[4]" == '')   // Link zu den Terminen aktiv
    $MOD_sK_linkyn = false;
else
    $MOD_sK_linkyn = true;
if ("CMS_VALUE[7]" == 'datum') // Anzeigemodus Datum oder Status// Überprüfung ob zusätzliche Kategorien gewählt wurden
    $MOD_sK_anzeigemodus = true;
else
    $MOD_sK_anzeigemodus = false;
if ("CMS_VALUE[9]" == '')   // Dropdown-Feld aktiv
    $MOD_sK_ddownyn = false;
else
    $MOD_sK_ddownyn = true;

$MOD_sK_idcat = "CMS_VALUE[1]";
$MOD_sK_idcatart = "CMS_VALUE[3]";
$MOD_sK_add_tree = "CMS_VALUE[5]"; // zusätzliche Kategorien anzeigen
$MOD_sK_add_tree_ids = "CMS_VALUE[6]"; // ids der zusätzlichen Kategorien
$MOD_sk_ddown = "CMS_VALUE[8]"; // Angezeigte Jahre im Dropdown Feld 

if ($MOD_sK_add_tree == "" || ($MOD_sK_add_tree_ids == "" && $MOD_sK_add_tree == "auswahl"))
    $MOD_sK_add_tree = 'keine';
    
if (eregi(',', $MOD_sk_ddown))
    $MOD_sk_arry_down = explode(",", $MOD_sk_ddown);
else
    $MOD_sk_arry_down[0] = $MOD_sk_ddown;

// zusätzliche Kategorien ermitteln
$MOD_sK_sel_tree = "'".$MOD_sK_idcat."'";
switch ($MOD_sK_add_tree) 
    {
    case "unterhalb":
        $MOD_sK_tree_level = -1;
        $MOD_sK_sql_tree    = "SELECT CAT.idcat AS idcat, CATTREE.level AS level ";
        $MOD_sK_sql_tree   .= "FROM ".$cfg["tab"]["cat"]." AS CAT,";
        $MOD_sK_sql_tree   .= " ".$cfg["tab"]["cat_tree"]." AS CATTREE ";
        $MOD_sK_sql_tree   .= "WHERE CAT.idcat = CATTREE.idcat "; 
        $MOD_sK_sql_tree   .= "ORDER BY CATTREE.idtree";

        $db->query($MOD_sK_sql_tree);
        while($db->next_record()) 
            {
            if ($db->f("idcat") == $MOD_sK_idcat)
                $MOD_sK_tree_level = $db->f("level");
            else if ($MOD_sK_tree_level > -1 && $db->f("level") > $MOD_sK_tree_level)
                $MOD_sK_sel_tree .= ",'".$db->f("idcat")."'";
            else if ($db->f("level") <= $MOD_sK_tree_level)
                break;
            }
        break;
    case "auswahl":
        $MOD_sK_add_tree_array = explode(",",$MOD_sK_add_tree_ids);
        foreach ($MOD_sK_add_tree_array as $MOD_sK_add_tree_value) 
            {
            if (is_numeric($MOD_sK_add_tree_value))
                $MOD_sK_sel_tree .= ",'".$MOD_sK_add_tree_value."'";
            }
        break;
    default:
    }

// Alle Artikel der Kategorie einlesen, die nicht Startartikel sind
$MOD_sK_sql  = "SELECT  ARTLANG.idart, CONTENT.value, CONTENT.typeid, ARTLANG.idartlang, CONTENT.idtype ";
$MOD_sK_sql .= "FROM ".$cfg["tab"]["cat_art"]." AS CATART,";
$MOD_sK_sql .= " ".$cfg["tab"]["art_lang"]." AS ARTLANG,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat"]." AS CAT,";
$MOD_sK_sql .= " ".$cfg["tab"]["content"]." AS CONTENT,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat_lang"]." AS CATLANG ";
$MOD_sK_sql .= "WHERE ARTLANG.idart = CATART.idart ";
$MOD_sK_sql .= "AND CATART.idcat = CAT.idcat ";
$MOD_sK_sql .= "AND ARTLANG.idartlang = CONTENT.idartlang ";
$MOD_sK_sql .= "AND ARTLANG.idlang = '".$lang."' ";
$MOD_sK_sql .= "AND CAT.idcat IN (".$MOD_sK_sel_tree.") ";
$MOD_sK_sql .= "AND CAT.idclient = '".$client."' ";
$MOD_sK_sql .= "AND ARTLANG.online = '1' ";
$MOD_sK_sql .= "AND CATART.idcat = CATLANG.idcat ";
if ($cfg["is_start_compatible"] == true)
    $MOD_sK_sql .= "AND CATART.is_start = '0' ";
else
    $MOD_sK_sql .= "AND CONTENT.idartlang != CATLANG.startidartlang ";
$MOD_sK_sql .= "ORDER BY ARTLANG.idart, CONTENT.typeid ASC";

$db->query($MOD_sK_sql); 
    
// weiter, wenn Artikel gefunden wurden
if ($db->num_rows() > 0) 
    { 
    $MOD_sK_termine = array(array()); // Array erzeugen, in dem die Termine abgelegt werden; 
    while ($MOD_sK_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen 
        { 
        $db->next_record(); 
        if ($db->f("idart") > $MOD_sK_termine["idart"][$MOD_sK_zaehler]) 
            $MOD_sK_zaehler++; 
        if (isStartArticle($db->f("idartlang"),$MOD_sK_durchlaufdcat,$lang)==FALSE) 
            { 
            $MOD_sK_linktyp = $db->f("idtype");
            switch ($db->f("typeid")) 
                { 
                case 0: // Anfangstermin 
                    if ($MOD_sK_linktyp == '3') // Text
                        {
                        $MOD_sK_termine["datum1"][$MOD_sK_zaehler] = $db->f("value"); 
                        if (strlen($MOD_sK_termine["datum1"][$MOD_sK_zaehler]) < 10) // falsches oder kein Datum
                            $MOD_sK_termine["datum1"][$MOD_sK_zaehler] = '1970-01-01';
                        $MOD_sK_termine["idart"][$MOD_sK_zaehler] = $db->f("idart"); 
                        $MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = 'no';   
                        $MOD_sK_termine["datum2"][$MOD_sK_zaehler] = '';     
                        $MOD_sK_termine["status"][$MOD_sK_zaehler] = '0';
                        $MOD_sK_termine["xtag"][$MOD_sK_zaehler] = '';
                        $MOD_sK_termine["aliste"][$MOD_sK_zaehler] = '';                        
                        $MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = '';                     
                        }
                    break; 
                case 2: // Endtermin 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["datum2"][$MOD_sK_zaehler] = $db->f("value");
                    break;
                case 10: // Termin Zyklus 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = $db->f("value"); 
                    break; 
                case 11: // Zyklus Wochentage 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["wtagezyklus"][$MOD_sK_zaehler] = $db->f("value"); 
                    break;    
                case 12: // 1., 2., ... Wochentag im Monat
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["wtagemon"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 15: // Status
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["status"][$MOD_sK_zaehler] = $db->f("value");
                    break;
                case 16: // Zyklus xten Tag
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["xtag"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 17: //  Ausschlussliste
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["aliste"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 22: //  zusätzliche Termine
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                } 
            } 
        $MOD_sK_datensaetze++; 
        } 

    // Ermittlung der zyklischen Termine und Löschen von Datensätzen, die nicht angezeigt werden müssen
    $MOD_sK_zaehler2 = $MOD_sK_zaehler+1; // zweiten Zähler anlegen
    for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler; $MOD_sK_durchlauf++)
        {   
        if (($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no' || $MOD_sK_termine["zutermine"][$MOD_sK_durchlauf] != '') && $MOD_sK_termine["idart"][$MOD_sK_durchlauf] != '' ) // Zyklischer Termin
            {
            $MOD_sK_zdate_array = makedatearray($MOD_sK_termine["datum1"][$MOD_sK_durchlauf],$MOD_sK_termine["datum2"][$MOD_sK_durchlauf],
                                        $MOD_sK_termine["zyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["xtag"][$MOD_sK_durchlauf],
                                        $MOD_sK_termine["aliste"][$MOD_sK_durchlauf],$MOD_sK_checkdate_von,$MOD_sK_checkdate_bis,
                                        $MOD_sK_termine["wtagezyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["wtagemon"][$MOD_sK_durchlauf],$MOD_sK_termine["zutermine"][$MOD_sK_durchlauf]);

            for ($MOD_sK_durchlauf2=0; $MOD_sK_durchlauf2<count($MOD_sK_zdate_array); $MOD_sK_durchlauf2++)
                {
                if($MOD_sK_zdate_array[$MOD_sK_durchlauf2] && ($MOD_sK_zdate_array[$MOD_sK_durchlauf2] != $MOD_sK_termine["datum1"][$MOD_sK_durchlauf]))
                    {
                    $MOD_sK_termine["datum1"][$MOD_sK_zaehler2] = $MOD_sK_zdate_array[$MOD_sK_durchlauf2]; 
                    $MOD_sK_termine["datum2"][$MOD_sK_zaehler2] = ' '; 
                    $MOD_sK_termine["idart"][$MOD_sK_zaehler2] = $MOD_sK_termine["idart"][$MOD_sK_durchlauf];
                    $MOD_sK_termine["status"][$MOD_sK_zaehler2] = $MOD_sK_termine["status"][$MOD_sK_durchlauf];
                    $MOD_sK_zaehler2++;
                    }
                }
                
            if ($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no')
                $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] = ' ';     
            }
        }
        
    // Prüfung ob Termin im aktuellen Anzeigezeitrahmen ist
    for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler2; $MOD_sK_durchlauf++)
        {
        if (!(($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis) ||
            ($MOD_sK_termine["datum2"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis ) ||
            ($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] < $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] > $MOD_sK_checkdate_bis)))
            {
            unset ($MOD_sK_termine["datum1"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["datum2"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["idart"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["status"][$MOD_sK_durchlauf]);
            }
        }
    }
else
    {
    // Bugfix, da sonst Fehlermeldung beim prüfen der belegten Termine
    $MOD_sK_termine["datum1"][0] = '1970-01-01';
    $MOD_sK_termine["datum2"][0] = '1970-01-01';
    $MOD_sK_termine["idart"][0] = '0';
    $MOD_sK_termine["status"][0] = '0';
    }

if( !empty($MOD_sK_termine["datum1"]) ) 
    {
        array_multisort ( $MOD_sK_termine["datum1"], SORT_ASC, SORT_STRING, 
                $MOD_sK_termine["datum2"], SORT_ASC, SORT_STRING,
                $MOD_sK_termine["idart"], 
                $MOD_sK_termine["status"]); 
        }

$sKalender = new sKalender();
$sKalender->setDate( $MOD_sK_newdate_array[2], $MOD_sK_newdate_array[1], $MOD_sK_newdate_array[0] );
$sKalender->printCalender();

class sKalender
    {
    var $MOD_sK_akt_datum;
    var $MOD_sK_admin;
        
        function sKalender()
            {
            // Verhindert mögliche Endlosloops Ausführungszeit max 1 Sek.
            //set_time_limit( 1 );
            
            // wird der Funktion eine Parameter übergeben, wird diese dem Key "MOD_sK_admin" zugeordent
            if( func_num_args() == 1 )
                $this->MOD_sK_admin = func_get_arg( 0 );
            else
                $this->MOD_sK_admin = false;
            
            // aktuelles Datum in Array MOD_sK_akt_datum schreiben
                $this->MOD_sK_akt_datum = getdate();
            }
        
        function setDate( $MOD_sK_tag, $MOD_sK_monat, $MOD_sK_jahr )
            {
            // prüft, ob alle Werte übergeben wurden und schreibt diese dann ins Array
            if( $MOD_sK_tag != ""  &&  $MOD_sK_monat != ""  &&  $MOD_sK_jahr != "" )
                {
                $this->MOD_sK_akt_datum["mday"] = $MOD_sK_tag*1;  // führende Nullen entfernen
                $this->MOD_sK_akt_datum["mon"] = $MOD_sK_monat*1; // führende Nullen entfernen
                $this->MOD_sK_akt_datum["year"] = $MOD_sK_jahr;
                return true;
                } 
            else
                return false;
            }
        
        function getDateByMonth( $MOD_sk_neuer_monat )
            {
            $MOD_sK_neues_datum = mktime (0,0,0, ($this->MOD_sK_akt_datum["mon"] + $MOD_sk_neuer_monat),  $this->MOD_sK_akt_datum["mday"],  $this->MOD_sK_akt_datum["year"] );
            return $MOD_sK_neues_datum;
            }
        
        function printCalender()
            {
            // Globale Variablen definieren
            global $MOD_sK_linkyn;
            global $idcatart;
            global $MOD_sK_idcatart;
            global $MOD_sk_arry_down;
            global $MOD_sK_ddownyn;
            
            if( $this->MOD_sK_akt_datum == "" )
                return false;
            else
                $MOD_sK_datum = $this->MOD_sK_akt_datum;
            
            $MOD_sK_wochenbeginn = 2;   // Die Woche beginnt mit Montag, PHP beginnt mit Sonntag = 1
            $MOD_sK_admin = "&MOD_sK_admin=" . $this->MOD_sK_admin;
            $MOD_sK_monatsnamen = array("",mi18n("Januar"),mi18n("Februar"),mi18n("M&auml;rz"),mi18n("April"),mi18n("Mai"),mi18n("Juni"),mi18n("Juli"),mi18n("August"),mi18n("September"),mi18n("Oktober"),mi18n("November"),mi18n("Dezember"));

            echo '<div id="mod_sK" style="margin-bottom:20px">
                <table style="background-color:#eeeeee" >
                    <tr>';
                    // Einen Monat zurück
                    $MOD_sK_neues_datum = $this->getDateByMonth( -1 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    echo '<td class="navl"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("vorheriger Monat").'">&nbsp;<<</a></td>';
            
                    // aktueller Monat
                    $MOD_sK_neues_datum = $this->getDateByMonth( 0 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    
                    // Dropdownfeld aufbauen
                    $MOD_sk_arry_years = count($MOD_sk_arry_down); // Anzahl der Jahre
                    $MOD_sk_dropdown    =  '<select name="MOD_sK_newdate" onchange="parent.frames.top.location.href = this.value">';
                    $MOD_sk_dropdown   .=  '<option value="'.$MOD_sK_newdate.'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].'&nbsp;'.$MOD_sK_datum["year"].'</option>';
            
                    for( $MOD_sK_dyears = 0; $MOD_sK_dyears < $MOD_sk_arry_years; $MOD_sK_dyears++ )
                        {


                        for( $MOD_sK_dmonth = 1; $MOD_sK_dmonth <= 12; $MOD_sK_dmonth++ )
                            {
                            $MOD_sk_dropdown   .=  '<option value="front_content.php?client='.$client.'&parent='.$parent.'&subid='.$subid.'&idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sk_arry_down[$MOD_sK_dyears].'-'.$MOD_sK_dmonth.'-1">'.$MOD_sK_monatsnamen[$MOD_sK_dmonth].'&nbsp;'.$MOD_sk_arry_down[$MOD_sK_dyears].'</option>';
                            }
                        }
                    $MOD_sk_dropdown   .=  '</select>';

                    if(!$MOD_sK_ddownyn)
                        echo '<td class="navm"><a style="color:#000000" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'&MOD_sK_show=m" title="'.mi18n("Monatsuebersicht anzeigen.").'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].'&nbsp;'.$MOD_sK_datum["year"].'</a></td>';
                    else
                        echo '<td class="navm">'.$MOD_sk_dropdown.'</td>';
            
                    // Einen Monat vor
                    $MOD_sK_neues_datum = $this->getDateByMonth( +1 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    echo '<td class="navr"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("naechster Monat").'">>>&nbsp;</a></td>';
                    echo '
                    </tr>
                </table>
                <table style="border-left:1px solid #dddddd">';
                
                    // Ermittle die maximalen Tage für den aktuellen Monat
                    $MOD_sK_tag_max = date( "t", mktime( 0, 0, 0, $MOD_sK_datum["mon"], 1, $MOD_sK_datum["year"] ) );
                    for( $MOD_sK_tag_aktuell = 1; $MOD_sK_tag_aktuell <= $MOD_sK_tag_max; $MOD_sK_tag_aktuell++ )
                        {
                        $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"])) + 1;
                        if ($MOD_sK_tag_aktuell == 1)
                            {
                            echo '
                            <tr class="sk_wtag">
                                <td class="wtag">'.mi18n("Mo").'</td>
                                <td class="wtag">'.mi18n("Di").'</td>
                                <td class="wtag">'.mi18n("Mi").'</td>
                                <td class="wtag">'.mi18n("Do").'</td>
                                <td class="wtag">'.mi18n("Fr").'</td>
                                <td class="wtag">'.mi18n("Sa").'</td>
                                <td class="wtag">'.mi18n("So").'</td>
                            </tr>';
                    
                            // Leere Felder am Anfang / Ende
                            echo '<tr class="sk_wtag" style="border-left:1px solid #dddddd">';
                            for( $MOD_sK_check_tag = $MOD_sK_wochenbeginn; $MOD_sK_tag_nummer != $MOD_sK_check_tag; $MOD_sK_check_tag++ )
                                {
                                echo '<td>&nbsp;</td>';
                                if( $MOD_sK_tag_nummer == 1  &&  $MOD_sK_check_tag == 7 )   // Workaround !!!
                                    {
                                    echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                                    break;
                                    }
                        
                                if( $MOD_sK_check_tag > 15 )    // Workaround !!!
                                    break;
                                }
                    
                            if ($MOD_sK_tag_nummer == $MOD_sK_check_tag)
                                echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                            }
                
                        else if ($MOD_sK_tag_nummer == $MOD_sK_wochenbeginn)
                            {
                            echo '
                            </tr>
                            <tr>';
                            echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                            }
                        else
                            echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                        }
            
                    $MOD_sK_tag_aktuell = $MOD_sK_tag_aktuell - 6;
                    $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
                    while( $MOD_sK_tag_nummer != $MOD_sK_wochenbeginn )
                        {
                        echo ' <td>&nbsp;</td>';
                        $MOD_sK_tag_aktuell++;
                        $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
                        }
            
                    echo '
                    </tr>
                </table>
                </div>';
            return true;
            }

        function checkDayFor1( $MOD_sK_datum_check )
            {
            global $MOD_sK_termine;
            $MOD_sk_status_ok = false;
            $MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
            foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                {
                if ($MOD_sK_termine["datum2"][$MOD_sK_array_key_value] == '')
                    $MOD_sk_status_ok = true;
                }
            return $MOD_sk_status_ok;
            }
            
        function checkDayFor2( $MOD_sK_datum_check )
            {
            global $MOD_sK_termine;
            $MOD_sK_anzahl = count($MOD_sK_termine["datum1"]);
            $MOD_sk_check_ok = false;
            for ($MOD_sK_durchlauf  = 0; $MOD_sK_durchlauf <= $MOD_sK_anzahl-1; $MOD_sK_durchlauf++)
                {
                if ( $MOD_sK_datum_check >= $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] && $MOD_sK_datum_check <= $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] )
                    $MOD_sk_check_ok = true;
                }
            return $MOD_sk_check_ok;
            }

        function checkStatus1( $MOD_sK_datum_check ) // Tag mit reservierten Terminen
            {
            global $MOD_sK_termine;
            $MOD_sk_status_ok = false;
            $MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
            foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                {
                if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '1')
                    $MOD_sk_status_ok = true;
                }
            return $MOD_sk_status_ok;
            }

        function checkStatus2( $MOD_sK_datum_check ) // Tag mit gebuchten Terminen
            {
                global $MOD_sK_termine;
                $MOD_sk_status_ok = false;
                $MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
                foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                {
                if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '2')
                    $MOD_sk_status_ok = true;
                }
            return $MOD_sk_status_ok;
            }

        function getCell( $MOD_sK_tag )
            {
            global $MOD_sK_linkyn;
            global $MOD_sK_anzeigemodus;
            $MOD_sK_datum_aktuell= date("Y-m-d", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );
            $MOD_sK_datum_title= date("d.m.Y", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );
            $MOD_sK_wochentag = date("w", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );


            $MOD_sK_termin_ok = false;
            if ($MOD_sK_anzeigemodus)
                {
                if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                    $MOD_sK_style = "wochenende";
                else    // Normal
                    $MOD_sK_style = "wochentag";
    
                if( date("Y-m-d") == $MOD_sK_datum_aktuell)         // Heute
                    $MOD_sK_style = "heute";
    
                if( $this->checkDayFor1($MOD_sK_datum_aktuell ) )   // Tag mit direkten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                        $MOD_sK_style = "belegtwe";
                    else
                        $MOD_sK_style = "belegt";
                    }
                else
                    {
                    if( $this->checkDayFor2($MOD_sK_datum_aktuell ) )   // Tag mit indirekten Terminen
                        {
                        $MOD_sK_termin_ok = true;
                        if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                            $MOD_sK_style = "tangiertwe";
                        else
                            $MOD_sK_style = "tangiert";
                        }
                    }
                }
            else
                {
                $MOD_sK_style = "wochentag"; // 
                if( $this->checkStatus1( $MOD_sK_datum_aktuell ) )  // Tag mit reservierten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    $MOD_sK_style = "tangiert";
                    }
                if( $this->checkStatus2( $MOD_sK_datum_aktuell ) )  // Tag mit gebuchten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    $MOD_sK_style = "belegt";
                    }
                }

            global $MOD_sK_idcatart;
            
            if ($MOD_sK_termin_ok)
                {
                if($MOD_sK_linkyn)
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_datum_aktuell.'&MOD_sK_show=t" title="'.mi18n("Termine für den").' '.$MOD_sK_datum_title.' '.mi18n("anzeigen").'.">'.$MOD_sK_tag.'</a></td>';
                else
                    {
                    if ($MOD_sK_anzeigemodus)
                        $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren Termine").'.">'.$MOD_sK_tag.'</a></td>';
                    else
                        $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("gebucht").'">'.$MOD_sK_tag.'</a></td>';
                    }
                }
            else 
                {
                if ($MOD_sK_anzeigemodus)
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren keine Termine.").'">'.$MOD_sK_tag.'</a></td>';
                else
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("frei").'">'.$MOD_sK_tag.'</a></td>';
                }
            return $MOD_sK_val;
            }
    }
?>
andy-man

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von Oldperl » Fr 26. Nov 2010, 12:31

Hallo,
  • Suche alle Vorkommen der Funktion array_keys()
  • Schau dort nach welches Array (Variablenname) verwendet wird
  • Kapsel den Umgang mit diesem Array in eine if-Abfrage und prüfe dort ob das Array auch ein Array ist (Funktion: is_array)
Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

andy-man
Beiträge: 166
Registriert: Di 25. Nov 2003, 11:29
Wohnort: Oberstaufenbach
Kontaktdaten:

Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm

Beitrag von andy-man » Mo 29. Nov 2010, 11:00

Hallo Oldper,
vielen Dank für den Hinweis. Wir haben die array erweitert und es funktioniert :-}
Hier die Aktualisierung.

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Termin sKalender universal
* Version     :     2.6
* Author      :     schlaucher
* Created     :     02-08-2006
* Modified    :     06-10-2008
* Modified    :     29-11-2010 / is_array andy-man
************************************************/ 

cInclude('frontend', 'includes/functions.terminliste.php');

if ($_REQUEST['MOD_sK_newdate']) // Datum wurde über den sKalender neu gesetzt
    {
    $MOD_sK_newdate_array = explode("-",$_REQUEST['MOD_sK_newdate']);  // yyyy-m-t oder mm tt
    $MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], 1,  $MOD_sK_newdate_array[0]));
    $MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_newdate_array[1], 1, $MOD_sK_newdate_array[0]));
    $MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], $MOD_sK_tag_max,  $MOD_sK_newdate_array[0]));
    }
else // aktuelles Datum verwenden
    {
    $MOD_sK_heute = getdate();
    $MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], 1,  $MOD_sK_heute["year"]));
    $MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_heute["mon"], 1, $MOD_sK_heute["year"]));
    $MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], $MOD_sK_tag_max,  $MOD_sK_heute["year"]));
    }

//echo 'Anzeige von: '.$MOD_sK_checkdate_von.' bis '.$MOD_sK_checkdate_bis.'<br>';

$MOD_sK_zaehler = 0;
$MOD_sK_zaehler2 = 0;
$MOD_sK_tage= array(mi18n("So"),mi18n("Mo"),mi18n("Di"),mi18n("Mi"),mi18n("Do"),mi18n("Fr"),mi18n("Sa"));

// Variablen aus Input Bereich
if ("CMS_VALUE[4]" == '')   // Link zu den Terminen aktiv
    $MOD_sK_linkyn = false;
else
    $MOD_sK_linkyn = true;
if ("CMS_VALUE[7]" == 'datum') // Anzeigemodus Datum oder Status// Überprüfung ob zusätzliche Kategorien gewählt wurden
    $MOD_sK_anzeigemodus = true;
else
    $MOD_sK_anzeigemodus = false;
if ("CMS_VALUE[9]" == '')   // Dropdown-Feld aktiv
    $MOD_sK_ddownyn = false;
else
    $MOD_sK_ddownyn = true;

$MOD_sK_idcat = "CMS_VALUE[1]";
$MOD_sK_idcatart = "CMS_VALUE[3]";
$MOD_sK_add_tree = "CMS_VALUE[5]"; // zusätzliche Kategorien anzeigen
$MOD_sK_add_tree_ids = "CMS_VALUE[6]"; // ids der zusätzlichen Kategorien
$MOD_sk_ddown = "CMS_VALUE[8]"; // Angezeigte Jahre im Dropdown Feld 

if ($MOD_sK_add_tree == "" || ($MOD_sK_add_tree_ids == "" && $MOD_sK_add_tree == "auswahl"))
    $MOD_sK_add_tree = 'keine';
    
if (eregi(',', $MOD_sk_ddown))
    $MOD_sk_arry_down = explode(",", $MOD_sk_ddown);
else
    $MOD_sk_arry_down[0] = $MOD_sk_ddown;

// zusätzliche Kategorien ermitteln
$MOD_sK_sel_tree = "'".$MOD_sK_idcat."'";
switch ($MOD_sK_add_tree) 
    {
    case "unterhalb":
        $MOD_sK_tree_level = -1;
        $MOD_sK_sql_tree    = "SELECT CAT.idcat AS idcat, CATTREE.level AS level ";
        $MOD_sK_sql_tree   .= "FROM ".$cfg["tab"]["cat"]." AS CAT,";
        $MOD_sK_sql_tree   .= " ".$cfg["tab"]["cat_tree"]." AS CATTREE ";
        $MOD_sK_sql_tree   .= "WHERE CAT.idcat = CATTREE.idcat "; 
        $MOD_sK_sql_tree   .= "ORDER BY CATTREE.idtree";

        $db->query($MOD_sK_sql_tree);
        while($db->next_record()) 
            {
            if ($db->f("idcat") == $MOD_sK_idcat)
                $MOD_sK_tree_level = $db->f("level");
            else if ($MOD_sK_tree_level > -1 && $db->f("level") > $MOD_sK_tree_level)
                $MOD_sK_sel_tree .= ",'".$db->f("idcat")."'";
            else if ($db->f("level") <= $MOD_sK_tree_level)
                break;
            }
        break;
    case "auswahl":
        $MOD_sK_add_tree_array = explode(",",$MOD_sK_add_tree_ids);
        foreach ($MOD_sK_add_tree_array as $MOD_sK_add_tree_value) 
            {
            if (is_numeric($MOD_sK_add_tree_value))
                $MOD_sK_sel_tree .= ",'".$MOD_sK_add_tree_value."'";
            }
        break;
    default:
    }

// Alle Artikel der Kategorie einlesen, die nicht Startartikel sind
$MOD_sK_sql  = "SELECT  ARTLANG.idart, CONTENT.value, CONTENT.typeid, ARTLANG.idartlang, CONTENT.idtype ";
$MOD_sK_sql .= "FROM ".$cfg["tab"]["cat_art"]." AS CATART,";
$MOD_sK_sql .= " ".$cfg["tab"]["art_lang"]." AS ARTLANG,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat"]." AS CAT,";
$MOD_sK_sql .= " ".$cfg["tab"]["content"]." AS CONTENT,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat_lang"]." AS CATLANG ";
$MOD_sK_sql .= "WHERE ARTLANG.idart = CATART.idart ";
$MOD_sK_sql .= "AND CATART.idcat = CAT.idcat ";
$MOD_sK_sql .= "AND ARTLANG.idartlang = CONTENT.idartlang ";
$MOD_sK_sql .= "AND ARTLANG.idlang = '".$lang."' ";
$MOD_sK_sql .= "AND CAT.idcat IN (".$MOD_sK_sel_tree.") ";
$MOD_sK_sql .= "AND CAT.idclient = '".$client."' ";
$MOD_sK_sql .= "AND ARTLANG.online = '1' ";
$MOD_sK_sql .= "AND CATART.idcat = CATLANG.idcat ";
if ($cfg["is_start_compatible"] == true)
    $MOD_sK_sql .= "AND CATART.is_start = '0' ";
else
    $MOD_sK_sql .= "AND CONTENT.idartlang != CATLANG.startidartlang ";
$MOD_sK_sql .= "ORDER BY ARTLANG.idart, CONTENT.typeid ASC";

$db->query($MOD_sK_sql); 
    
// weiter, wenn Artikel gefunden wurden
if ($db->num_rows() > 0) 
    { 
    $MOD_sK_termine = array(array()); // Array erzeugen, in dem die Termine abgelegt werden; 
    while ($MOD_sK_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen 
        { 
        $db->next_record(); 
        if ($db->f("idart") > $MOD_sK_termine["idart"][$MOD_sK_zaehler]) 
            $MOD_sK_zaehler++; 
        if (isStartArticle($db->f("idartlang"),$MOD_sK_durchlaufdcat,$lang)==FALSE) 
            { 
            $MOD_sK_linktyp = $db->f("idtype");
            switch ($db->f("typeid")) 
                { 
                case 0: // Anfangstermin 
                    if ($MOD_sK_linktyp == '3') // Text
                        {
                        $MOD_sK_termine["datum1"][$MOD_sK_zaehler] = $db->f("value"); 
                        if (strlen($MOD_sK_termine["datum1"][$MOD_sK_zaehler]) < 10) // falsches oder kein Datum
                            $MOD_sK_termine["datum1"][$MOD_sK_zaehler] = '1970-01-01';
                        $MOD_sK_termine["idart"][$MOD_sK_zaehler] = $db->f("idart"); 
                        $MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = 'no';   
                        $MOD_sK_termine["datum2"][$MOD_sK_zaehler] = '';     
                        $MOD_sK_termine["status"][$MOD_sK_zaehler] = '0';
                        $MOD_sK_termine["xtag"][$MOD_sK_zaehler] = '';
                        $MOD_sK_termine["aliste"][$MOD_sK_zaehler] = '';                        
                        $MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = '';                     
                        }
                    break; 
                case 2: // Endtermin 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["datum2"][$MOD_sK_zaehler] = $db->f("value");
                    break;
                case 10: // Termin Zyklus 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = $db->f("value"); 
                    break; 
                case 11: // Zyklus Wochentage 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["wtagezyklus"][$MOD_sK_zaehler] = $db->f("value"); 
                    break;    
                case 12: // 1., 2., ... Wochentag im Monat
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["wtagemon"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 15: // Status
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["status"][$MOD_sK_zaehler] = $db->f("value");
                    break;
                case 16: // Zyklus xten Tag
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["xtag"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 17: //  Ausschlussliste
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["aliste"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 22: //  zusätzliche Termine
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                } 
            } 
        $MOD_sK_datensaetze++; 
        } 

    // Ermittlung der zyklischen Termine und Löschen von Datensätzen, die nicht angezeigt werden müssen
    $MOD_sK_zaehler2 = $MOD_sK_zaehler+1; // zweiten Zähler anlegen
    for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler; $MOD_sK_durchlauf++)
        {   
        if (($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no' || $MOD_sK_termine["zutermine"][$MOD_sK_durchlauf] != '') && $MOD_sK_termine["idart"][$MOD_sK_durchlauf] != '' ) // Zyklischer Termin
            {
            $MOD_sK_zdate_array = makedatearray($MOD_sK_termine["datum1"][$MOD_sK_durchlauf],$MOD_sK_termine["datum2"][$MOD_sK_durchlauf],
                                        $MOD_sK_termine["zyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["xtag"][$MOD_sK_durchlauf],
                                        $MOD_sK_termine["aliste"][$MOD_sK_durchlauf],$MOD_sK_checkdate_von,$MOD_sK_checkdate_bis,
                                        $MOD_sK_termine["wtagezyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["wtagemon"][$MOD_sK_durchlauf],$MOD_sK_termine["zutermine"][$MOD_sK_durchlauf]);

            for ($MOD_sK_durchlauf2=0; $MOD_sK_durchlauf2<count($MOD_sK_zdate_array); $MOD_sK_durchlauf2++)
                {
                if($MOD_sK_zdate_array[$MOD_sK_durchlauf2] && ($MOD_sK_zdate_array[$MOD_sK_durchlauf2] != $MOD_sK_termine["datum1"][$MOD_sK_durchlauf]))
                    {
                    $MOD_sK_termine["datum1"][$MOD_sK_zaehler2] = $MOD_sK_zdate_array[$MOD_sK_durchlauf2]; 
                    $MOD_sK_termine["datum2"][$MOD_sK_zaehler2] = ' '; 
                    $MOD_sK_termine["idart"][$MOD_sK_zaehler2] = $MOD_sK_termine["idart"][$MOD_sK_durchlauf];
                    $MOD_sK_termine["status"][$MOD_sK_zaehler2] = $MOD_sK_termine["status"][$MOD_sK_durchlauf];
                    $MOD_sK_zaehler2++;
                    }
                }
                
            if ($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no')
                $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] = ' ';     
            }
        }
        
    // Prüfung ob Termin im aktuellen Anzeigezeitrahmen ist
    for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler2; $MOD_sK_durchlauf++)
        {
        if (!(($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis) ||
            ($MOD_sK_termine["datum2"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis ) ||
            ($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] < $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] > $MOD_sK_checkdate_bis)))
            {
            unset ($MOD_sK_termine["datum1"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["datum2"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["idart"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["status"][$MOD_sK_durchlauf]);
            }
        }
    }
else
    {
    // Bugfix, da sonst Fehlermeldung beim prüfen der belegten Termine
    $MOD_sK_termine["datum1"][0] = '1970-01-01';
    $MOD_sK_termine["datum2"][0] = '1970-01-01';
    $MOD_sK_termine["idart"][0] = '0';
    $MOD_sK_termine["status"][0] = '0';
    }

if( !empty($MOD_sK_termine["datum1"]) ) 
    {
        array_multisort ( $MOD_sK_termine["datum1"], SORT_ASC, SORT_STRING, 
                $MOD_sK_termine["datum2"], SORT_ASC, SORT_STRING,
                $MOD_sK_termine["idart"], 
                $MOD_sK_termine["status"]); 
        }

$sKalender = new sKalender();
$sKalender->setDate( $MOD_sK_newdate_array[2], $MOD_sK_newdate_array[1], $MOD_sK_newdate_array[0] );
$sKalender->printCalender();

class sKalender
    {
    var $MOD_sK_akt_datum;
    var $MOD_sK_admin;
        
        function sKalender()
            {
            // Verhindert mögliche Endlosloops Ausführungszeit max 1 Sek.
            //set_time_limit( 1 );
            
            // wird der Funktion eine Parameter übergeben, wird diese dem Key "MOD_sK_admin" zugeordent
            if( func_num_args() == 1 )
                $this->MOD_sK_admin = func_get_arg( 0 );
            else
                $this->MOD_sK_admin = false;
            
            // aktuelles Datum in Array MOD_sK_akt_datum schreiben
                $this->MOD_sK_akt_datum = getdate();
            }
        
        function setDate( $MOD_sK_tag, $MOD_sK_monat, $MOD_sK_jahr )
            {
            // prüft, ob alle Werte übergeben wurden und schreibt diese dann ins Array
            if( $MOD_sK_tag != ""  &&  $MOD_sK_monat != ""  &&  $MOD_sK_jahr != "" )
                {
                $this->MOD_sK_akt_datum["mday"] = $MOD_sK_tag*1;  // führende Nullen entfernen
                $this->MOD_sK_akt_datum["mon"] = $MOD_sK_monat*1; // führende Nullen entfernen
                $this->MOD_sK_akt_datum["year"] = $MOD_sK_jahr;
                return true;
                } 
            else
                return false;
            }
        
        function getDateByMonth( $MOD_sk_neuer_monat )
            {
            $MOD_sK_neues_datum = mktime (0,0,0, ($this->MOD_sK_akt_datum["mon"] + $MOD_sk_neuer_monat),  $this->MOD_sK_akt_datum["mday"],  $this->MOD_sK_akt_datum["year"] );
            return $MOD_sK_neues_datum;
            }
        
        function printCalender()
            {
            // Globale Variablen definieren
            global $MOD_sK_linkyn;
            global $idcatart;
            global $MOD_sK_idcatart;
            global $MOD_sk_arry_down;
            global $MOD_sK_ddownyn;
            
            if( $this->MOD_sK_akt_datum == "" )
                return false;
            else
                $MOD_sK_datum = $this->MOD_sK_akt_datum;
            
            $MOD_sK_wochenbeginn = 2;   // Die Woche beginnt mit Montag, PHP beginnt mit Sonntag = 1
            $MOD_sK_admin = "&MOD_sK_admin=" . $this->MOD_sK_admin;
            $MOD_sK_monatsnamen = array("",mi18n("Januar"),mi18n("Februar"),mi18n("M&auml;rz"),mi18n("April"),mi18n("Mai"),mi18n("Juni"),mi18n("Juli"),mi18n("August"),mi18n("September"),mi18n("Oktober"),mi18n("November"),mi18n("Dezember"));

            echo '<div id="mod_sK" style="margin-bottom:20px">
                <table style="background-color:#eeeeee" >
                    <tr>';
                    // Einen Monat zurück
                    $MOD_sK_neues_datum = $this->getDateByMonth( -1 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    echo '<td class="navl"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("vorheriger Monat").'">&nbsp;<<</a></td>';
            
                    // aktueller Monat
                    $MOD_sK_neues_datum = $this->getDateByMonth( 0 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    
                    // Dropdownfeld aufbauen
                    $MOD_sk_arry_years = count($MOD_sk_arry_down); // Anzahl der Jahre
                    $MOD_sk_dropdown    =  '<select name="MOD_sK_newdate" onchange="parent.frames.top.location.href = this.value">';
                    $MOD_sk_dropdown   .=  '<option value="'.$MOD_sK_newdate.'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].'&nbsp;'.$MOD_sK_datum["year"].'</option>';
            
                    for( $MOD_sK_dyears = 0; $MOD_sK_dyears < $MOD_sk_arry_years; $MOD_sK_dyears++ )
                        {


                        for( $MOD_sK_dmonth = 1; $MOD_sK_dmonth <= 12; $MOD_sK_dmonth++ )
                            {
                            $MOD_sk_dropdown   .=  '<option value="front_content.php?client='.$client.'&parent='.$parent.'&subid='.$subid.'&idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sk_arry_down[$MOD_sK_dyears].'-'.$MOD_sK_dmonth.'-1">'.$MOD_sK_monatsnamen[$MOD_sK_dmonth].'&nbsp;'.$MOD_sk_arry_down[$MOD_sK_dyears].'</option>';
                            }
                        }
                    $MOD_sk_dropdown   .=  '</select>';

                    if(!$MOD_sK_ddownyn)
                        echo '<td class="navm"><a style="color:#000000" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'&MOD_sK_show=m" title="'.mi18n("Monatsuebersicht anzeigen.").'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].'&nbsp;'.$MOD_sK_datum["year"].'</a></td>';
                    else
                        echo '<td class="navm">'.$MOD_sk_dropdown.'</td>';
            
                    // Einen Monat vor
                    $MOD_sK_neues_datum = $this->getDateByMonth( +1 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    echo '<td class="navr"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("naechster Monat").'">>>&nbsp;</a></td>';
                    echo '
                    </tr>
                </table>
                <table style="border-left:1px solid #dddddd">';
                
                    // Ermittle die maximalen Tage für den aktuellen Monat
                    $MOD_sK_tag_max = date( "t", mktime( 0, 0, 0, $MOD_sK_datum["mon"], 1, $MOD_sK_datum["year"] ) );
                    for( $MOD_sK_tag_aktuell = 1; $MOD_sK_tag_aktuell <= $MOD_sK_tag_max; $MOD_sK_tag_aktuell++ )
                        {
                        $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"])) + 1;
                        if ($MOD_sK_tag_aktuell == 1)
                            {
                            echo '
                            <tr class="sk_wtag">
                                <td class="wtag">'.mi18n("Mo").'</td>
                                <td class="wtag">'.mi18n("Di").'</td>
                                <td class="wtag">'.mi18n("Mi").'</td>
                                <td class="wtag">'.mi18n("Do").'</td>
                                <td class="wtag">'.mi18n("Fr").'</td>
                                <td class="wtag">'.mi18n("Sa").'</td>
                                <td class="wtag">'.mi18n("So").'</td>
                            </tr>';
                    
                            // Leere Felder am Anfang / Ende
                            echo '<tr class="sk_wtag" style="border-left:1px solid #dddddd">';
                            for( $MOD_sK_check_tag = $MOD_sK_wochenbeginn; $MOD_sK_tag_nummer != $MOD_sK_check_tag; $MOD_sK_check_tag++ )
                                {
                                echo '<td>&nbsp;</td>';
                                if( $MOD_sK_tag_nummer == 1  &&  $MOD_sK_check_tag == 7 )   // Workaround !!!
                                    {
                                    echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                                    break;
                                    }
                        
                                if( $MOD_sK_check_tag > 15 )    // Workaround !!!
                                    break;
                                }
                    
                            if ($MOD_sK_tag_nummer == $MOD_sK_check_tag)
                                echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                            }
                
                        else if ($MOD_sK_tag_nummer == $MOD_sK_wochenbeginn)
                            {
                            echo '
                            </tr>
                            <tr>';
                            echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                            }
                        else
                            echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                        }
            
                    $MOD_sK_tag_aktuell = $MOD_sK_tag_aktuell - 6;
                    $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
                    while( $MOD_sK_tag_nummer != $MOD_sK_wochenbeginn )
                        {
                        echo ' <td>&nbsp;</td>';
                        $MOD_sK_tag_aktuell++;
                        $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
                        }
            
                    echo '
                    </tr>
                </table>
                </div>';
            return true;
            }

        function checkDayFor1( $MOD_sK_datum_check )
            {
            global $MOD_sK_termine;
            $MOD_sk_status_ok = false;
			if(is_array($MOD_sK_termine["datum1"])){
            	$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
            	foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                	{
                		if ($MOD_sK_termine["datum2"][$MOD_sK_array_key_value] == '')
                    	$MOD_sk_status_ok = true;
                	}
			}
            return $MOD_sk_status_ok; 
            }
            
        function checkDayFor2( $MOD_sK_datum_check )
            {
            global $MOD_sK_termine;
            $MOD_sK_anzahl = count($MOD_sK_termine["datum1"]);
            $MOD_sk_check_ok = false;
            for ($MOD_sK_durchlauf  = 0; $MOD_sK_durchlauf <= $MOD_sK_anzahl-1; $MOD_sK_durchlauf++)
                {
                if ( $MOD_sK_datum_check >= $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] && $MOD_sK_datum_check <= $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] )
                    $MOD_sk_check_ok = true;
                }
            return $MOD_sk_check_ok;
            }

        function checkStatus1( $MOD_sK_datum_check ) // Tag mit reservierten Terminen
            {
            global $MOD_sK_termine;
            $MOD_sk_status_ok = false;
			if(is_array($MOD_sK_termine["datum1"])){
            	$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
            	foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                	{
                		if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '1')
                   		$MOD_sk_status_ok = true;
                	}
			}
            return $MOD_sk_status_ok;
            }

        function checkStatus2( $MOD_sK_datum_check ) // Tag mit gebuchten Terminen
            {
                global $MOD_sK_termine;
                $MOD_sk_status_ok = false;
				if(is_array($MOD_sK_termine["datum1"])){
                	$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
                	foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                	{
                		if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '2')
                    		$MOD_sk_status_ok = true;
                	}
				}
            return $MOD_sk_status_ok;
            }

        function getCell( $MOD_sK_tag )
            {
            global $MOD_sK_linkyn;
            global $MOD_sK_anzeigemodus;
            $MOD_sK_datum_aktuell= date("Y-m-d", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );
            $MOD_sK_datum_title= date("d.m.Y", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );
            $MOD_sK_wochentag = date("w", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );


            $MOD_sK_termin_ok = false;
            if ($MOD_sK_anzeigemodus)
                {
                if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                    $MOD_sK_style = "wochenende";
                else    // Normal
                    $MOD_sK_style = "wochentag";
    
                if( date("Y-m-d") == $MOD_sK_datum_aktuell)         // Heute
                    $MOD_sK_style = "heute";
    
                if( $this->checkDayFor1($MOD_sK_datum_aktuell ) )   // Tag mit direkten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                        $MOD_sK_style = "belegtwe";
                    else
                        $MOD_sK_style = "belegt";
                    }
                else
                    {
                    if( $this->checkDayFor2($MOD_sK_datum_aktuell ) )   // Tag mit indirekten Terminen
                        {
                        $MOD_sK_termin_ok = true;
                        if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                            $MOD_sK_style = "tangiertwe";
                        else
                            $MOD_sK_style = "tangiert";
                        }
                    }
                }
            else
                {
                $MOD_sK_style = "wochentag"; // 
                if( $this->checkStatus1( $MOD_sK_datum_aktuell ) )  // Tag mit reservierten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    $MOD_sK_style = "tangiert";
                    }
                if( $this->checkStatus2( $MOD_sK_datum_aktuell ) )  // Tag mit gebuchten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    $MOD_sK_style = "belegt";
                    }
                }

            global $MOD_sK_idcatart;
            
            if ($MOD_sK_termin_ok)
                {
                if($MOD_sK_linkyn)
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_datum_aktuell.'&MOD_sK_show=t" title="'.mi18n("Termine für den").' '.$MOD_sK_datum_title.' '.mi18n("anzeigen").'.">'.$MOD_sK_tag.'</a></td>';
                else
                    {
                    if ($MOD_sK_anzeigemodus)
                        $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren Termine").'.">'.$MOD_sK_tag.'</a></td>';
                    else
                        $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("gebucht").'">'.$MOD_sK_tag.'</a></td>';
                    }
                }
            else 
                {
                if ($MOD_sK_anzeigemodus)
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren keine Termine.").'">'.$MOD_sK_tag.'</a></td>';
                else
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("frei").'">'.$MOD_sK_tag.'</a></td>';
                }
            return $MOD_sK_val;
            }
    }
?>
andy-man

Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Beschreibung/Inhalte in Terminliste anzeigen lassen?

Beitrag von Horst1234 » Di 7. Dez 2010, 09:57

Guten Tag aus Bremen,

ich bräuchte für unsere Schulhomepage eine kleine Modifikation der Terminliste,
und zwar sollten die "Beschreibung / Inhalte" bereits in der Terminliste mit angezeigt werden,
die Variable {HTML} aus der Terminanzeige funktioniert im Terminlisten-Template (natürlich) nicht:
wie kann ich im Terminlistenmodul den Inhalt als Variable bestimmen und dann im Template einlesen lassen?
Geht das auch mit den Ortsdetails?

Vielen Dank schon mal,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

Gesperrt