Terminliste universal V2.6 mit sKalender u. Mehrfachtermin
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Hallo NurPech,
immer mit der Ruhe.
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
immer mit der Ruhe.
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
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Hi,
sicher ist mir das bewusst. Nur brauche ich das wirklich dringend
Und ja. Ich habe im Thred der 2.5er Version geguckt -> bin scheinbar zu blöd um's zu sehen
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
lg
sicher ist mir das bewusst. Nur brauche ich das wirklich dringend
Und ja. Ich habe im Thred der 2.5er Version geguckt -> bin scheinbar zu blöd um's zu sehen
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
lg
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Na wenn du das soooooooo dringend brauchst, kann ich dir nur unser Jobforum ans Herz legen.NurPech hat geschrieben:Nur brauche ich das wirklich dringend
Du glaubst nicht wie schnell du Hilfe bekommst wenn du dort ein Jobangebot mit entsprechender Dotierung einstellst.
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
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Ist ja schon gut
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
Ich warte einfach mal viell bekomme ich ja auch vom Autor kurz gesagt was ich machen muss
lg
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
Ich warte einfach mal viell bekomme ich ja auch vom Autor kurz gesagt was ich machen muss
lg
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
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
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
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
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"):
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.
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
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.
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.
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
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Hallo fabmatti,
ich habe das Problem gelöst in dem ich in den Ordner "Contenido" eine .htaccess Datei angelegt habe mit folgendem Inhalt
Gruß
Peer
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>
Peer
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Hallo Peer.Peer hat geschrieben: ich habe das Problem gelöst in dem ich in den Ordner "Contenido" eine .htaccess Datei angelegt habe mit folgendem InhaltCode: Alles auswählen
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
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
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Hallo,
Man kann natürlich auch z.B. POST-Daten so anpassen, dass sie nicht ausgefiltert werden.
Mehr Infos zu mod_security
Homepage http://www.modsecurity.org
Doku http://www.modsecurity.org/documentatio ... rence.html
Tutorial (deutsch) http://www.howtoforge.de/howto/sichere- ... d_security
Gruß aus Franken
Ortwin
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.Peer hat geschrieben:ich habe das Problem gelöst in dem ich in den Ordner "Contenido" eine .htaccess Datei angelegt habe mit folgendem InhaltCode: Alles auswählen
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
Man kann natürlich auch z.B. POST-Daten so anpassen, dass sie nicht ausgefiltert werden.
Mehr Infos zu mod_security
Homepage http://www.modsecurity.org
Doku http://www.modsecurity.org/documentatio ... rence.html
Tutorial (deutsch) 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
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Leider hat das nicht geholfen. Hat denn keiner weiter das Problem?
Gruß
fabmatti
Gruß
fabmatti
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
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 ...
...gefunden habe, klappt´s auch.
Trotzdem Dank für die Vorschläge!!!
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;
Trotzdem Dank für die Vorschläge!!!
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
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:
andy-man
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:
Wo und wie kann kann ich diese Fehlermeldung ändern?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
....
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ä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").'"> <<</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"] ].' '.$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].' '.$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"] ].' '.$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").'">>> </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> </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> </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;
}
}
?>
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Hallo,
Ortwin
- 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)
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
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Terminliste universal V2.6 mit sKalender u. Mehrfachterm
Hallo Oldper,
vielen Dank für den Hinweis. Wir haben die array erweitert und es funktioniert :-}
Hier die Aktualisierung.
andy-man
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ä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").'"> <<</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"] ].' '.$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].' '.$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"] ].' '.$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").'">>> </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> </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> </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;
}
}
?>
Beschreibung/Inhalte in Terminliste anzeigen lassen?
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
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