Terminliste universal V2.5.3 mit sKalender u. Mehrfachtermin

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 7. Okt 2008, 15:19

Hallo Schlaucher,

gern geschehen. freue mich ja auch mal wenn ich ein bisschen dazu steuern kann. Übrigens ist diese Modul wirklich ein riesiger Mehrwert für jede Seite.

Ein Frage hätte ich allerdings noch (ich traue mich fast gar nicht):
Die Standardsuche aus der CMS-Version 4.6.8 findet den Termin, zeigt diesen aber nicht als "Headline-Ergebniss" an. Wie werden denn die Angaben der Termine in der Datenbank gespeichert?

Die Suchausgabe generiert so eine Headline eines Suchergebnisses:

Code: Alles auswählen

$aHeadline = $oSearchResults->getSearchContent($key, 'HTMLHEAD', 1);
Was müßte ich denn der Suche sagen, damit Sie den Titel des Termines ausgibt?

MfG Steffen

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Letzte Version 2.5.3

Beitrag von schlaucher » Di 7. Okt 2008, 15:53

Die letzte Version der Terminliste 2.5.3 für Contenido <= 4.6.24 ist nun verfügbar!

Alles weitere im ersten Thread

Gruß
schlaucher

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von schlaucher » Mi 8. Okt 2008, 13:39

derSteffen hat geschrieben:Hallo Schlaucher,

gern geschehen. freue mich ja auch mal wenn ich ein bisschen dazu steuern kann. Übrigens ist diese Modul wirklich ein riesiger Mehrwert für jede Seite.

Ein Frage hätte ich allerdings noch (ich traue mich fast gar nicht):
Die Standardsuche aus der CMS-Version 4.6.8 findet den Termin, zeigt diesen aber nicht als "Headline-Ergebniss" an. Wie werden denn die Angaben der Termine in der Datenbank gespeichert?

Die Suchausgabe generiert so eine Headline eines Suchergebnisses:

Code: Alles auswählen

$aHeadline = $oSearchResults->getSearchContent($key, 'HTMLHEAD', 1);
Was müßte ich denn der Suche sagen, damit Sie den Titel des Termines ausgibt?

MfG Steffen
Hi Steffen,

suche im Modul Suchausgabe nach:

Code: Alles auswählen

                $aHeadline = $oSearchResults->getSearchContent($key, 'HTMLHEAD', 1);
und ersetze durch:

Code: Alles auswählen

                $aHeadline = $oSearchResults->getSearchContent($key, 'HTMLHEAD', 1);
                // Fuer Terminsuche
                if (strlen($aHeadline[0]) < 1)
                    {
                    $aHeadline = $oSearchResults->getSearchContent($key, 'TEXT', 6); 
                    }
Gruß
schlaucher

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Sa 11. Okt 2008, 11:00

Hallo Schlaucher,

vielen Dank für den Code mit der Suche! Das hat funktioniert :-)

MfG Steffen

neotao
Beiträge: 5
Registriert: Fr 17. Okt 2008, 08:49
Wohnort: Karlsruhe
Kontaktdaten:

Geschwindigkeit verbessern

Beitrag von neotao » Fr 17. Okt 2008, 09:00

Hallo Schlaucher,

dein Termin-Modul ist essentiell für unsere Website. Danke für die Arbeit.

Leider ist aber unser Webserver nicht der schnellste, und deshalb leidet die Geschwindigkeit in unserem Fall ziemlich. Die Schleife

Code: Alles auswählen

    $MOD_TL_termine = array(array()); // Array erzeugen, in dem die Termindaten abgelegt werden;
    while ($MOD_TL_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen und Inhalte in Array schreiben
        {
wird 1800 Mal durchlaufen, was schon mal 20-30 Sekunden dauern kann. Und wir verwenden das Modul in fast jeder Seite...

Daher ist die erste Frage: Wurde diesbezüglich bei der aktuellen Version etwas verbessert? Wir verwenden noch 2.5.2.

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Re: Geschwindigkeit verbessern

Beitrag von schlaucher » Fr 17. Okt 2008, 11:13

neotao hat geschrieben:Hallo Schlaucher,

dein Termin-Modul ist essentiell für unsere Website. Danke für die Arbeit.

Leider ist aber unser Webserver nicht der schnellste, und deshalb leidet die Geschwindigkeit in unserem Fall ziemlich. Die Schleife

Code: Alles auswählen

    $MOD_TL_termine = array(array()); // Array erzeugen, in dem die Termindaten abgelegt werden;
    while ($MOD_TL_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen und Inhalte in Array schreiben
        {
wird 1800 Mal durchlaufen, was schon mal 20-30 Sekunden dauern kann. Und wir verwenden das Modul in fast jeder Seite...

Daher ist die erste Frage: Wurde diesbezüglich bei der aktuellen Version etwas verbessert? Wir verwenden noch 2.5.2.
Nein, in der 2.5.3 sind in dieser Richtung keine Änderungen gemacht worden. Werde mir aber mal den Code noch mal anschauen, ob sich da was optimieren lässt.

Gruß
schlaucher

neotao
Beiträge: 5
Registriert: Fr 17. Okt 2008, 08:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: Geschwindigkeit verbessern

Beitrag von neotao » Fr 17. Okt 2008, 21:20

schlaucher hat geschrieben:
neotao hat geschrieben:Hallo Schlaucher,

dein Termin-Modul ist essentiell für unsere Website. Danke für die Arbeit.

Leider ist aber unser Webserver nicht der schnellste, und deshalb leidet die Geschwindigkeit in unserem Fall ziemlich. Die Schleife

Code: Alles auswählen

    $MOD_TL_termine = array(array()); // Array erzeugen, in dem die Termindaten abgelegt werden;
    while ($MOD_TL_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen und Inhalte in Array schreiben
        {
wird 1800 Mal durchlaufen, was schon mal 20-30 Sekunden dauern kann. Und wir verwenden das Modul in fast jeder Seite...

Daher ist die erste Frage: Wurde diesbezüglich bei der aktuellen Version etwas verbessert? Wir verwenden noch 2.5.2.
Nein, in der 2.5.3 sind in dieser Richtung keine Änderungen gemacht worden. Werde mir aber mal den Code noch mal anschauen, ob sich da was optimieren lässt.

Gruß
schlaucher
Eine erste Optimierung wäre es, in der Datenbankabfrage nur die Elemente abzufrange, die dann tatsächlich auch ausgelesen werden, also z. B. anzufügen:

AND CONTENT.typeid IN (0, 1, 2, 6, 7, 9, 10, 11, 12, 14, 16, 17, 22)

oder so ähnlich.

neotao
Beiträge: 5
Registriert: Fr 17. Okt 2008, 08:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: Geschwindigkeit verbessern

Beitrag von neotao » So 19. Okt 2008, 12:51

neotao hat geschrieben:
schlaucher hat geschrieben: Nein, in der 2.5.3 sind in dieser Richtung keine Änderungen gemacht worden. Werde mir aber mal den Code noch mal anschauen, ob sich da was optimieren lässt.

Gruß
schlaucher
Eine erste Optimierung wäre es, in der Datenbankabfrage nur die Elemente abzufrange, die dann tatsächlich auch ausgelesen werden, also z. B. anzufügen:

AND CONTENT.typeid IN (0, 1, 2, 6, 7, 9, 10, 11, 12, 14, 16, 17, 22)

oder so ähnlich.
Ich habe jetzt selbst einige Sachen optimiert. Ich werde die notwendigen Änderungen bald hier posten. Zuerst würde ich allerdings gern 2.5.3 laden, aber der Download-Link ist tot!?

neotao
Beiträge: 5
Registriert: Fr 17. Okt 2008, 08:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: Geschwindigkeit verbessern

Beitrag von neotao » So 19. Okt 2008, 18:23

neotao hat geschrieben: Ich habe jetzt selbst einige Sachen optimiert. Ich werde die notwendigen Änderungen bald hier posten. Zuerst würde ich allerdings gern 2.5.3 laden, aber der Download-Link ist tot!?
Hier das Diff der Änderung. Knackpunkt ist, dass jetzt die Datenbank die Termindatensätze zusammenbaut. Daher gibt es nur noch eine Zeile pro Termin zu lesen. Für unseren Fall beschleunigt das die Sache um ca. Faktor 10.

Die Änderungen gehen analog für den Teaser. Ich fände es super, wenn du diese Verbesserung in die offizielle Version der Terminliste übernehmen würdest. Ach ja, eine Sache ist noch nicht ganz optimal: Ich verwende $cfg["tab"]..., sondern direkt con_ Könnte man noch besser machen... und vielleicht sind auch noch Bugs drin...

-- Johannes

Code: Alles auswählen

--- terminliste_universal original.php	2008-10-19 09:16:32.000000000 +0200
+++ terminliste_universal.php	2008-10-19 18:28:43.000000000 +0200
@@ -265,31 +265,70 @@
 	}
 
 // Alle Artikel der Kategorie einlesen, die nicht Startartikel sind
-$MOD_TL_sql  = "SELECT  ARTLANG.idart, CONTENT.value, CONTENT.typeid, ARTLANG.idartlang, CONTENT.idtype ";
-$MOD_TL_sql .= "FROM ".$cfg["tab"]["cat_art"]." AS CATART,";
-$MOD_TL_sql .= " ".$cfg["tab"]["art_lang"]." AS ARTLANG,";
-$MOD_TL_sql .= " ".$cfg["tab"]["cat"]." AS CAT,";
-$MOD_TL_sql .= " ".$cfg["tab"]["content"]." AS CONTENT,";
-$MOD_TL_sql .= " ".$cfg["tab"]["cat_lang"]." AS CATLANG ";
-$MOD_TL_sql .= "WHERE ARTLANG.idart = CATART.idart ";
-$MOD_TL_sql .= "AND CATART.idcat = CAT.idcat ";
-$MOD_TL_sql .= "AND ARTLANG.idartlang = CONTENT.idartlang ";
-$MOD_TL_sql .= "AND ARTLANG.idlang = '".$lang."' ";
-$MOD_TL_sql .= "AND CAT.idcat IN (".$MOD_TL_sel_tree.") ";
-$MOD_TL_sql .= "AND CAT.idclient = '".$client."' ";
-$MOD_TL_sql .= "AND ARTLANG.online = '1' "; // nur Artikel die online sind
-$MOD_TL_sql .= "AND CATART.idcat = CATLANG.idcat ";
-
+$MOD_TL_sql = <<<EOD
+SELECT 
+ARTLANG.idart AS idart, 
+ARTLANG.idartlang AS idartlang, 
+CONTENT_datum1.value AS datum1,
+CONTENT_zeit1.value AS zeit1,
+CONTENT_datum2.value AS datum2,
+CONTENT_zeit2.value AS zeit2,
+CONTENT_ort.value AS ort,
+CONTENT_titel.value AS titel,
+IF(CONTENT_html.value = '', 'yes', 'no') AS html_empty,
+CONTENT_teaseryn.value AS teaseryn,
+CONTENT_link.value AS link,
+CONTENT_linkframe.value AS linkframe,
+CONTENT_linkdesc.value AS linkdesc,
+CONTENT_zyklus.value AS zyklus,
+CONTENT_wtagezyklus.value AS wtagezyklus,
+CONTENT_wtagemon.value AS wtagemon,
+CONTENT_image.value AS image,
+CONTENT_imagedesc.value AS imagedesc,
+CONTENT_kategoriea.value AS kategoriea,
+CONTENT_xtag.value AS xtag,
+CONTENT_aliste.value AS aliste,
+CONTENT_hightlight.value AS hightlight,
+CONTENT_kategorieb.value AS kategorieb,
+CONTENT_zutermine.value AS zutermine
+
+FROM 
+con_cat AS CAT 
+INNER JOIN con_cat_art AS CATART ON (CATART.idcat = CAT.idcat AND CAT.idclient = '$client' AND CAT.idcat IN ($MOD_TL_sel_tree)) 
+INNER JOIN con_art_lang AS ARTLANG ON (CATART.idart = ARTLANG.idart AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1') 
+INNER JOIN con_cat_lang AS CATLANG ON (CATART.idcat = CATLANG.idcat)
+INNER JOIN con_content AS CONTENT_datum1     ON (ARTLANG.idartlang = CONTENT_datum1.idartlang      AND CONTENT_datum1.typeid = 0       AND CONTENT_datum1.idtype = 3)
+LEFT JOIN con_content AS CONTENT_zeit1       ON (ARTLANG.idartlang = CONTENT_zeit1.idartlang       AND CONTENT_zeit1.typeid = 1        AND CONTENT_zeit1.idtype = 3)
+LEFT JOIN con_content AS CONTENT_datum2      ON (ARTLANG.idartlang = CONTENT_datum2.idartlang      AND CONTENT_datum2.typeid = 2       AND CONTENT_datum2.idtype = 3)
+LEFT JOIN con_content AS CONTENT_zeit2       ON (ARTLANG.idartlang = CONTENT_zeit2.idartlang       AND CONTENT_zeit2.typeid = 3        AND CONTENT_zeit2.idtype = 3)
+LEFT JOIN con_content AS CONTENT_ort         ON (ARTLANG.idartlang = CONTENT_ort.idartlang         AND CONTENT_ort.typeid = 4          AND CONTENT_ort.idtype = 3)
+LEFT JOIN con_content AS CONTENT_titel       ON (ARTLANG.idartlang = CONTENT_titel.idartlang       AND CONTENT_titel.typeid = 6        AND CONTENT_titel.idtype = 3)
+LEFT JOIN con_content AS CONTENT_html        ON (ARTLANG.idartlang = CONTENT_html.idartlang        AND CONTENT_html.typeid = 8)
+LEFT JOIN con_content AS CONTENT_teaseryn    ON (ARTLANG.idartlang = CONTENT_teaseryn.idartlang    AND CONTENT_teaseryn.typeid = 7     AND CONTENT_teaseryn.idtype = 3)
+LEFT JOIN con_content AS CONTENT_link        ON (ARTLANG.idartlang = CONTENT_link.idartlang        AND CONTENT_link.typeid = 9         AND CONTENT_link.idtype = 6)
+LEFT JOIN con_content AS CONTENT_linkframe   ON (ARTLANG.idartlang = CONTENT_linkframe.idartlang   AND CONTENT_linkframe.typeid = 9    AND CONTENT_linkframe.idtype = 7)
+LEFT JOIN con_content AS CONTENT_linkdesc    ON (ARTLANG.idartlang = CONTENT_linkdesc.idartlang    AND CONTENT_linkdesc.typeid = 9     AND CONTENT_linkdesc.idtype = 8)
+LEFT JOIN con_content AS CONTENT_zyklus      ON (ARTLANG.idartlang = CONTENT_zyklus.idartlang      AND CONTENT_zyklus.typeid = 10      AND CONTENT_zyklus.idtype = 3)
+LEFT JOIN con_content AS CONTENT_wtagezyklus ON (ARTLANG.idartlang = CONTENT_wtagezyklus.idartlang AND CONTENT_wtagezyklus.typeid = 11 AND CONTENT_wtagezyklus.idtype = 3)
+LEFT JOIN con_content AS CONTENT_wtagemon    ON (ARTLANG.idartlang = CONTENT_wtagemon.idartlang    AND CONTENT_wtagemon.typeid = 12    AND CONTENT_wtagemon.idtype = 3)
+LEFT JOIN con_content AS CONTENT_image       ON (ARTLANG.idartlang = CONTENT_image.idartlang       AND CONTENT_image.typeid = 14       AND CONTENT_image.idtype = 4)
+LEFT JOIN con_content AS CONTENT_imagedesc   ON (ARTLANG.idartlang = CONTENT_imagedesc.idartlang   AND CONTENT_imagedesc.typeid = 14   AND CONTENT_imagedesc.idtype = 5)
+LEFT JOIN con_content AS CONTENT_kategoriea  ON (ARTLANG.idartlang = CONTENT_kategoriea.idartlang  AND CONTENT_kategoriea.typeid = 13  AND CONTENT_kategoriea.idtype = 3)
+LEFT JOIN con_content AS CONTENT_xtag        ON (ARTLANG.idartlang = CONTENT_xtag.idartlang        AND CONTENT_xtag.typeid = 16        AND CONTENT_xtag.idtype = 3)
+LEFT JOIN con_content AS CONTENT_aliste      ON (ARTLANG.idartlang = CONTENT_aliste.idartlang      AND CONTENT_aliste.typeid = 17      AND CONTENT_aliste.idtype = 3)
+LEFT JOIN con_content AS CONTENT_hightlight  ON (ARTLANG.idartlang = CONTENT_hightlight.idartlang  AND CONTENT_hightlight.typeid = 20  AND CONTENT_hightlight.idtype = 3)
+LEFT JOIN con_content AS CONTENT_kategorieb  ON (ARTLANG.idartlang = CONTENT_kategorieb.idartlang  AND CONTENT_kategorieb.typeid = 21  AND CONTENT_kategorieb.idtype = 3)
+LEFT JOIN con_content AS CONTENT_zutermine   ON (ARTLANG.idartlang = CONTENT_zutermine.idartlang   AND CONTENT_zutermine.typeid = 22   AND CONTENT_zutermine.idtype = 3)
+EOD;
 if ($cfg["is_start_compatible"] == true) 
-	$MOD_TL_sql .= "AND CATART.is_start = '0' ";
+	$MOD_TL_sql .= "WHERE CATART.is_start = '0';";
 else 
-	$MOD_TL_sql .= "AND CONTENT.idartlang != CATLANG.startidartlang ";
-
-$MOD_TT_sql .= "AND CONTENT.typeid IN (0, 1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 16, 17, 20, 21, 22) ";
-$MOD_TL_sql .= "ORDER BY ARTLANG.idart, CONTENT.typeid ASC";
+	$MOD_TL_sql .= "WHERE ARTLANG.idartlang != CATLANG.startidartlang;";
+	
+print("<!-- ".getmicrotime()."-->\n");
 $db->query($MOD_TL_sql); 
+print("<!-- ".getmicrotime()."-->\n");
 
-print(getmicrotime()."\n");
 // weiter, wenn Artikel gefunden wurden werden die Felder in ein Array geschrieben
 if ($db->num_rows() > 0) 
 	{ 
@@ -297,104 +336,33 @@
 	while ($MOD_TL_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen und Inhalte in Array schreiben 
 		{ 
 		$db->next_record(); 
-		if ($db->f("idart") > $MOD_TL_termine["idart"][$MOD_TL_zaehler]) 
-			$MOD_TL_zaehler++; 
 		if (isStartArticle($db->f("idartlang"),$MOD_TL_durchlaufdcat,$lang)==FALSE) 
 			{ 
-			$MOD_TL_linktyp = $db->f("idtype");
-			switch ($db->f("typeid")) 
-				{ 
-				case 0: // Anfangstermin 
-					if ($MOD_TL_linktyp == '3') // Text
-						{
-						$MOD_TL_termine["datum1"][$MOD_TL_zaehler] = $db->f("value"); 
-						if (strlen($MOD_TL_termine["datum1"][$MOD_TL_zaehler]) < 10 ) // falsches oder kein Datum
-							$MOD_TL_termine["datum1"][$MOD_TL_zaehler] = '1970-01-01';
-						$MOD_TL_termine["idart"][$MOD_TL_zaehler] = $db->f("idart"); 
-						$MOD_TL_termine["html"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["link"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["linkframe"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["kategoriea"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["kategorieb"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["zyklus"][$MOD_TL_zaehler] = 'no';
-						$MOD_TL_termine["xtag"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["aliste"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["hightlight"][$MOD_TL_zaehler] = '';
-						$MOD_TL_termine["zutermine"][$MOD_TL_zaehler] = '';
-						}
-					break; 
-				case 1: // Anfangsuhrzeit 
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["zeit1"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 2: // Endtermin 
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["datum2"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 3: // Enduhrzeit 
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["zeit2"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 4: // Ort 
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["ort"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 6: // Titel 
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["titel"][$MOD_TL_zaehler] = $db->f("value");
-				break; 
-				case 8: // HTML 
-					$MOD_TL_termine["html"][$MOD_TL_zaehler] = $db->f("value"); 
-					break; 
-				case 9: // Link, Achtung 4 Zustände
-					if ($MOD_TL_linktyp == '6') // Link
-						$MOD_TL_termine["link"][$MOD_TL_zaehler] = $db->f("value");
-					if ($MOD_TL_linktyp == '7') // Target
-						$MOD_TL_termine["linkframe"][$MOD_TL_zaehler] = $db->f("value");
-					if ($MOD_TL_linktyp == '8') // Linkdescription
-						$MOD_TL_termine["linkdesc"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 10: // Termin Zyklus 
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["zyklus"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 11: // Zyklus Wochentage 
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["wtagezyklus"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 12: // 1., 2., ... Wochentag im Monat
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["wtagemon"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 13: // Terminkategorien A
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["kategoriea"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 16: // Zyklus xten Tag
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["xtag"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 17: //  Ausschlussliste
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["aliste"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 20: // Termin hervorheben
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["hightlight"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 21: // Terminkategorien B
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["kategorieb"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				case 22: // zusätzliche termine
-					if ($MOD_TL_linktyp == '3') // Text
-						$MOD_TL_termine["zutermine"][$MOD_TL_zaehler] = $db->f("value");
-					break; 
-				} 
-			} 
+				$MOD_TL_termine["idart"][$MOD_TL_zaehler] = $db->f("idart"); 
+				$MOD_TL_termine["datum1"][$MOD_TL_zaehler] = (strlen($db->f("datum1")) < 10 ) ? '1970-01-01' : $db->f("datum1"); 
+				$MOD_TL_termine["zeit1"][$MOD_TL_zaehler] = $db->f("zeit1");
+				$MOD_TL_termine["datum2"][$MOD_TL_zaehler] = $db->f("datum2");
+				$MOD_TL_termine["zeit2"][$MOD_TL_zaehler] = $db->f("zeit2");
+				$MOD_TL_termine["ort"][$MOD_TL_zaehler] = $db->f("ort");
+				$MOD_TL_termine["titel"][$MOD_TL_zaehler] = $db->f("titel");
+				$MOD_TL_termine["html_empty"][$MOD_TL_zaehler] = $db->f("html_empty"); 
+				$MOD_TL_termine["link"][$MOD_TL_zaehler] = $db->f("link"); 
+				$MOD_TL_termine["linkframe"][$MOD_TL_zaehler] = $db->f("linkframe"); 
+				$MOD_TL_termine["linkdesc"][$MOD_TL_zaehler] = $db->f("linkdesc");
+				$MOD_TL_termine["zyklus"][$MOD_TL_zaehler] = ($db->f("zyklus") === NULL) ? 'no' : $db->f("zyklus");
+				$MOD_TL_termine["wtagezyklus"][$MOD_TL_zaehler] = $db->f("wtagezyklus");
+				$MOD_TL_termine["wtagemon"][$MOD_TL_zaehler] = $db->f("wtagemon");
+				$MOD_TL_termine["kategoriea"][$MOD_TL_zaehler] = $db->f("kategoriea"); 
+				$MOD_TL_termine["xtag"][$MOD_TL_zaehler] = $db->f("xtag"); 
+				$MOD_TL_termine["aliste"][$MOD_TL_zaehler] = $db->f("aliste"); 
+				$MOD_TL_termine["hightlight"][$MOD_TL_zaehler] = $db->f("hightlight"); 
+				$MOD_TL_termine["kategorieb"][$MOD_TL_zaehler] = $db->f("kategorieb"); 
+				$MOD_TL_termine["zutermine"][$MOD_TL_zaehler] = $db->f("zutermine"); 
+			}
+		$MOD_TL_zaehler++; 
 		$MOD_TL_datensaetze++; 
 		} 
-print(getmicrotime()."\n");
+print("<!-- ".getmicrotime()."-->\n");
 
 	// Ermittlung der zyklischen Termine und Löschen von Datensätzen, die nicht angezeigt werden müssen
 	$MOD_TL_zaehler2 = $MOD_TL_zaehler+1; // zweiten Zähler anlegen
@@ -417,7 +385,7 @@
 					$MOD_TL_termine["ort"][$MOD_TL_zaehler2] = $MOD_TL_termine["ort"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["titel"][$MOD_TL_zaehler2] = $MOD_TL_termine["titel"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["idart"][$MOD_TL_zaehler2] = $MOD_TL_termine["idart"][$MOD_TL_durchlauf];
-					$MOD_TL_termine["html"][$MOD_TL_zaehler2] = $MOD_TL_termine["html"][$MOD_TL_durchlauf];
+					$MOD_TL_termine["html_empty"][$MOD_TL_zaehler2] = $MOD_TL_termine["html_empty"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["link"][$MOD_TL_zaehler2] = $MOD_TL_termine["link"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["linkframe"][$MOD_TL_zaehler2] = $MOD_TL_termine["linkframe"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["kategoriea"][$MOD_TL_zaehler2] = $MOD_TL_termine["kategoriea"][$MOD_TL_durchlauf];
@@ -434,7 +402,7 @@
 					$MOD_TL_termine["ort"][$MOD_TL_zaehler2] = $MOD_TL_termine["ort"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["titel"][$MOD_TL_zaehler2] = $MOD_TL_termine["titel"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["idart"][$MOD_TL_zaehler2] = $MOD_TL_termine["idart"][$MOD_TL_durchlauf];
-					$MOD_TL_termine["html"][$MOD_TL_zaehler2] = $MOD_TL_termine["html"][$MOD_TL_durchlauf];
+					$MOD_TL_termine["html_empty"][$MOD_TL_zaehler2] = $MOD_TL_termine["html_empty"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["link"][$MOD_TL_zaehler2] = $MOD_TL_termine["link"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["linkframe"][$MOD_TL_zaehler2] = $MOD_TL_termine["linkframe"][$MOD_TL_durchlauf];
 					$MOD_TL_termine["kategoriea"][$MOD_TL_zaehler2] = $MOD_TL_termine["kategoriea"][$MOD_TL_durchlauf];
@@ -516,7 +484,7 @@
 			unset ($MOD_TL_termine["ort"][$MOD_TL_durchlauf]);
 			unset ($MOD_TL_termine["titel"][$MOD_TL_durchlauf]);
 			unset ($MOD_TL_termine["idart"][$MOD_TL_durchlauf]);
-			unset ($MOD_TL_termine["html"][$MOD_TL_durchlauf]);
+			unset ($MOD_TL_termine["html_empty"][$MOD_TL_durchlauf]);
 			unset ($MOD_TL_termine["link"][$MOD_TL_durchlauf]);
 			unset ($MOD_TL_termine["linkframe"][$MOD_TL_durchlauf]);
 			unset ($MOD_TL_termine["kategoriea"][$MOD_TL_durchlauf]);
@@ -540,7 +508,7 @@
 						$MOD_TL_termine["idart"], 
 						$MOD_TL_termine["ort"], 
 						$MOD_TL_termine["titel"], 
-						$MOD_TL_termine["html"],
+						$MOD_TL_termine["html_empty"],
 						$MOD_TL_termine["link"], 
 						$MOD_TL_termine["linkframe"], 
 						$MOD_TL_termine["hightlight"] ); 
@@ -554,7 +522,7 @@
 						$MOD_TL_termine["idart"], 
 						$MOD_TL_termine["ort"], 
 						$MOD_TL_termine["titel"], 
-						$MOD_TL_termine["html"],
+						$MOD_TL_termine["html_empty"],
 						$MOD_TL_termine["link"], 
 						$MOD_TL_termine["linkframe"], 
 						$MOD_TL_termine["hightlight"] ); 
@@ -753,7 +721,7 @@
 				}
 			else
 				{
-				if ($MOD_TL_termine["html"][$MOD_TL_durchlauf] != '' )
+				if ($MOD_TL_termine["html_empty"][$MOD_TL_durchlauf] == 'no' )
 					{                
 					$MOD_TL_navmod_link = 'front_content.php?idart='.$MOD_TL_termine["idart"][$MOD_TL_durchlauf].'';
 					$MOD_TL_link ='<a '.$MOD_TL_titelclass.' href="'.$sess->url("$MOD_TL_navmod_link").'" >'.$MOD_TL_termine["titel"][$MOD_TL_durchlauf].'</a>';

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Re: Geschwindigkeit verbessern

Beitrag von schlaucher » Mo 20. Okt 2008, 12:58

neotao hat geschrieben:
neotao hat geschrieben: Ich habe jetzt selbst einige Sachen optimiert. Ich werde die notwendigen Änderungen bald hier posten. Zuerst würde ich allerdings gern 2.5.3 laden, aber der Download-Link ist tot!?
Hier das Diff der Änderung. Knackpunkt ist, dass jetzt die Datenbank die Termindatensätze zusammenbaut. Daher gibt es nur noch eine Zeile pro Termin zu lesen. Für unseren Fall beschleunigt das die Sache um ca. Faktor 10.

Die Änderungen gehen analog für den Teaser. Ich fände es super, wenn du diese Verbesserung in die offizielle Version der Terminliste übernehmen würdest. Ach ja, eine Sache ist noch nicht ganz optimal: Ich verwende $cfg["tab"]..., sondern direkt con_ Könnte man noch besser machen... und vielleicht sind auch noch Bugs drin...

-- Johannes
Hey, das ist ja super! Ich werde das gerne in der nächsten Version einbauen. Herzlichen Dank.

Der Downloadlink funktioniert nun!

Gruß
schlaucher

funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Beitrag von funomat » Di 21. Okt 2008, 10:38

Hallo zusammen,

ich hatte heute einen Fehler der hier schon mal besprochen und leider auf eine etwas ungünstige Art gelöst wurde, aber zum glück haben wir ja HerrB der für scheinbar jedes Problem eine Lösung hat ;)

Das Problem war folgendes: In der Terminausgabe mit Bild bekam ich folgende Fehlermeldung:

Code: Alles auswählen

Warning: getimagesize(http://www.mydomain.de/cms/cache/209223f4e0445affa1f1803436c454d0.jpg) [function.getimagesize]: failed to open stream: no suitable wrapper could be found in....
Die hier vorgeschlagene Lösung war in der php.ini allow_url_fopen = on zu setzen :!: Das fand ich dann nicht so toll und fand, wie sollte es auch anders sein, bei Tipps und Tricks eine bessere Lösung von HerrB (siehe: http://forum.contenido.org/viewtopic.php?t=12618)

Jetzt habe ich den Code an der entsprechenden Stelle im Modul Termineingabe/anzeige universal V2.6 folgendermaßen (ca. Zeile 1289) geändert:

Code: Alles auswählen

#Get dimensions of scaled image
list ($MOD_TE_img_width, $MOD_TE_img_height, $MOD_TE_img_type, $MOD_TE_img_attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $MOD_TE_image)); // edit getimagesize($MOD_TE_image); -> http://forum.contenido.org/viewtopic.php?t=12618
Wäre vielleicht ganz gut, dass in die nächste Version mit aufzunehmen.

Grüße,
funomat

PS: Übrigens: Klasse Modul, danke an alle die daran mitarbeiten :D
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von schlaucher » Di 21. Okt 2008, 10:43

funomat hat geschrieben:Hallo zusammen,

ich hatte heute einen Fehler der hier schon mal besprochen und leider auf eine etwas ungünstige Art gelöst wurde, aber zum glück haben wir ja HerrB der für scheinbar jedes Problem eine Lösung hat ;)

Das Problem war folgendes: In der Terminausgabe mit Bild bekam ich folgende Fehlermeldung:

Code: Alles auswählen

Warning: getimagesize(http://www.mydomain.de/cms/cache/209223f4e0445affa1f1803436c454d0.jpg) [function.getimagesize]: failed to open stream: no suitable wrapper could be found in....
Die hier vorgeschlagene Lösung war in der php.ini allow_url_fopen = on zu setzen :!: Das fand ich dann nicht so toll und fand, wie sollte es auch anders sein, bei Tipps und Tricks eine bessere Lösung von HerrB (siehe: http://forum.contenido.org/viewtopic.php?t=12618)

Jetzt habe ich den Code an der entsprechenden Stelle im Modul Termineingabe/anzeige universal V2.6 folgendermaßen (ca. Zeile 1289) geändert:

Code: Alles auswählen

#Get dimensions of scaled image
list ($MOD_TE_img_width, $MOD_TE_img_height, $MOD_TE_img_type, $MOD_TE_img_attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $MOD_TE_image)); // edit getimagesize($MOD_TE_image); -> http://forum.contenido.org/viewtopic.php?t=12618
Wäre vielleicht ganz gut, dass in die nächste Version mit aufzunehmen.

Grüße,
funomat

PS: Übrigens: Klasse Modul, danke an alle die daran mitarbeiten :D
Danke auch! Werde es einbauen.

Gruß
schlaucher

funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Beitrag von funomat » Di 21. Okt 2008, 11:09

Hallo noch mal,

hab hier noch ein kleines Problem!! Bei mir werden die Wochenendtage nicht richtig angezeigt. Dass heißt die class der jeweiligen Tabellenzellen wird nicht als wochenende deklariert, sondern als wochentag.

Woran könnte das liegen? Hab hier nicht dazu gefunden.

Gruß,
funomat
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

neotao
Beiträge: 5
Registriert: Fr 17. Okt 2008, 08:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: Geschwindigkeit verbessern

Beitrag von neotao » Di 21. Okt 2008, 20:13

schlaucher hat geschrieben: Der Downloadlink funktioniert nun!

Gruß
schlaucher
Hmm, das sieht aber alles sehr anders aus als in Version 2.5.2. Außerdem lese ich da was von Version 2.6?!

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Re: Geschwindigkeit verbessern

Beitrag von schlaucher » Mi 22. Okt 2008, 07:48

neotao hat geschrieben:
schlaucher hat geschrieben: Der Downloadlink funktioniert nun!

Gruß
schlaucher
Hmm, das sieht aber alles sehr anders aus als in Version 2.5.2. Außerdem lese ich da was von Version 2.6?!
Ja die Module Terminliste, Teaser, Select und sKalender sind die selben wie in der 2.6, nur das Modul Terminein/ausgabe ist noch anders wegen des Kalenders bei der Eingabe des Start- und Enddatums.

Gruß
schlaucher

Gesperrt