Terminkalender mit Mehrfachterminen und Blätterfunktion

julian.haase
Beiträge: 3
Registriert: Mi 26. Jan 2011, 17:30
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von julian.haase » Do 27. Jan 2011, 10:01

Hallo Markus,

danke für die Willkommenswünsche :)

Ich muss gestern wirklich schon zu lange am Rechner gesessen haben! Typischer Fall von Betriebsblindheit..hehe
Hier MEIN Fehler: Ich habe zwar die Artikel erstellt (die Termine darstellen) - auch in der Form "2011-01-26 - Testtermin".
Aber - denkst du ich hab in den Artikel etwas reingeschrieben? Aus irgend einem Grund dachte ich, dass es nur auf den Artikelnamen ankommt. :roll:
Tja, so konnte da natürlich nichts stehen!
Jetzt funkioniert es :D

Ein Frage hätte ich allerdings noch - bei Klick auf den Termin komme ich immernoch auf die Starseite.
Ist das die Stelle an der der Link erstellt wird? (z. 208ff in terminkalender_sd)

Code: Alles auswählen

if ($einzeltermine_anteasern=="false")
{
  if (count(array_keys($array, $checkdatum))==1){
  $arrayzeiger_idart_zum_termin=$arrayzeiger_idart_zum_termin+2;
  $artikel_idart=$array[$arrayzeiger_idart_zum_termin];
  echo '<a class="terminkalender_sd_ein_termin" href="'.$url.'?idart='.$artikel_idart.'">';
  $inarray="true";
  }
}
Wenn ich im Frontend über den Link fahre bekomme ich allerdings diesen hier:

Code: Alles auswählen

http://www.meineurl.de/cms/front_content.php?idart=41&termindatum=2011-01-27&monat_auswahl=
Was eher nach Zeile 207ff ausschaut; das $monat_auswahl fehlt in der URL quasi.
Nun komme ich aber schon wieder nicht weiter :)

VG, Julian

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Fr 28. Jan 2011, 13:58

Hallo Julian,
Ich muss gestern wirklich schon zu lange am Rechner gesessen haben! Typischer Fall von Betriebsblindheit..
Das kennen wir alle... :mrgreen:

zuerst die Frage "Welchen Link im Frontend meinst Du?"

1)
Wenn Du über einen Link im "Kalenderblatt" fährst, sieht die URL so aus:

Code: Alles auswählen

http://www.seamless-design.de/cms/front_content.php?idart=93&termindatum=2010-04-16&monat_auswahl=4&jahr_auswahl=2010
Die hier enthaltene idart ist die von dem Artikel, der gerade aufgerufen ist, sprich, des Artikels in dem der Terminkalender eingebunden ist. Egal auf welches Datum für das Termine vorhanden sind Du klickst, sie ändert sich nicht. Nur der Inhalt der folgenden Variablen termindatum, monat_auswahl und jahr_auswahl.

Check hier bitte mal ob der von Dir gepostete Link http://www.meineurl.de/cms/front_conten ... t_auswahl= so tatsächlich aufgerufen wird. Wenn ja, dann fehlt da was. Wenn ich das bei mir weglasse, komme ich jedoch auch nicht zur Startseite. Wenn die gerade genannten Folgevariablen nicht gefüllt sind, dann wird automatisch das heutige Datum herangezogen.

2)
Wenn Du Termine unterhalb des Kalenderblatts angeteasert bekommst, dann sieht die URL des bei "mehr" hinterlegten Links so aus:

Code: Alles auswählen

http://www.seamless-design.de/cms/front_content.php?idcat=74&idart=98
Hier wird direkt auf den gewünschten Artikel verlinkt.

Werden bei Dir Einzeltermine (also wenn an einem Tag nur eine Veranstaltung statt findet) auch angeteasert oder soll hier ein direkter Aufruf aus dem Kalenderblatt erfolgen?
Wenn ich hier den direkten Aufruf in der Konfiguration auswähle, sieht der Link so aus:

Code: Alles auswählen

http://www.seamless-design.de/cms/front_content.php?idart=98
Also auch wieder eine direkte Verlinkung ohne den "Umweg", den Artikel mit dem Terminkalender selbst anzuteasern.

Die Startseite wird zum Beispiel dann aufgerufen, wenn eine URL nicht gültig ist (z. B. auf eine nicht vorhandene idart zeigt) und Du sie als Fehlerseite definiert hast. Oder aber, wenn die URL mit einer leeren idart aufgerufen wird.

Hier müsstest Du für eine genauere Betrachtung schreiben, bei welchem Link der Fehler auftritt. Ich konnte ihn jedenfalls nicht reproduzieren.

Grüße,


Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

julian.haase
Beiträge: 3
Registriert: Mi 26. Jan 2011, 17:30
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von julian.haase » Sa 29. Jan 2011, 20:05

Hi Markus,

Wenn ich bei den angeteaserten Terminen auf "mehr" klicke, komme ich erfolgreich zum Artikel/Termin.
Das Problem tritt nur auf, wenn ich auf das Kalenderblatt klicke.
Wenn ich die Konfiguration auf "direkt öffnen" stelle, erhalte ich diesen Link:

Code: Alles auswählen

http://www.renewable-energies-online.de/cms/front_content.php?idart=68
jedoch werde ich wiederrum auf die Startseite verlinkt.

Wenn ich die Konfiguration auf "anteasern" stelle erhalte ich genau diesen Link:

Code: Alles auswählen

http://www.renewable-energies-online.de/cms/front_content.php?idart=41&termindatum=2011-01-27&monat_auswahl=
Das sieht für mich im Quellcode genau nach der Stelle in Zeile 230 des Terminmoduls aus. Der rot markierte Teil fehlt aber bei mir.
Dank deiner Kommentare lies es sich ganz gut finden :)

Code: Alles auswählen

echo '<a class="terminkalender_sd_mehrere_termine" href="'.$url.'?idart='.$terminkalender_sd_idart.'&termindatum='.$checkdatum.'&monat_auswahl=[color=#FF0000]'.$monat_auswahl.'[/color]">';
Jetzt bin ich nur leider mit meinem Latein am Ende - ich denke fast der Fehler passiert bei mir irgenwo früher. So das $monat_auswahl nicht korrekt gesetzt wird.

Viele Grüße,
Julian

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » So 30. Jan 2011, 21:57

Hallo Julian,

hast Du die Module aus der Zip-Datei genommen oder aus dem ersten Posting dieses Themas herauskopiert? Ich weiß, dass ich an manchen Stellen noch etwas nachgebessert habe. An sich habe ich aber in der Zip auf meiner Website die XML-Import-Dateien für die Module auch aktualisiert. Wie dem auch sei, bitte kopier mal den Output des Moduls "terminkalender_sd" aus dem ersten Thema neu in das Modul. Nicht, dass die Zip nachher doch, aus welchen Gründen auch immer, nicht auf dem neuesten Stand ist.... :? Es kann auch sein, dass beim Import oder vorherigen Export der XML-Datei etwas schief gelaufen ist und durch ein Sonderzeichen das nicht dahin gehört der Link nicht vollständig aufgebaut wird.

Wenn auch das nicht helfen sollte, mail mir bitte mal per PN vorübergehende Zugangsdaten zu Deinem Backend. Dann kann ich mir das mal "live" anschauen sofern Du magst. Denn erklären kann ich mir das nicht, habe das Modul schon mehrfach erfolgreich eingebunden...

Viele Grüße,


Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

notaus
Beiträge: 98
Registriert: Di 13. Dez 2005, 14:18
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von notaus » Do 9. Jun 2011, 10:23

Hallo Zusammen,

danke erst mal für dieses tolle Modul!

Gerne würde ich das Modul auf einer Startseite für den Sportverein einsetzen und aktuelle Termine daraus anzeigen. Ist es irgendwie möglich, die Listenansicht anstatt mit "heute" auf z.B. "diese Woche" einzugrenzen oder - besser - die 5 nächsten Termine von heute an anzuzeigen?

Schön wäre es z.B. auch, wenn man bei Klick auf den Monat im Datumsfeld alle Termine dieses Monats in der Liste sehen könnte.

Grüße
Christian

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Do 9. Jun 2011, 21:35

Hallo Notaus,

klar, kannst Du gerne machen :wink:

Schau Dir dazu mal den Output des Moduls Modul "terminkalender_sd_terminliste" an. Im Speziellen diese Zeilen hier

//mod anfang
$article_title = $article->getField('title');
$article_title=substr($article_title,0,10);
if ($article_title==$datum)
{
//mod ende


Da müsstest Du eigentlich nur die Bedingung auf Deine Wünsche anpassen. Im Moment find ich keine Zeit es Dir "mundgerecht" zu präsentieren... Aber das packst Du schon selbst :D

Grüße,


Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von derju » Di 13. Dez 2011, 10:07

Morgen

Ich habe gerade den Kalender getestet.
Ansich sehr schön, folgende Problematik ist mir aufgefallen.

Ich habe ein paar Termine im Dezember 2011 eingefügt das funktioniert auch super.
Jetzt habe ich noch einen am 13.08.2012 der wird auch angezeigt nur der Link stimmt nicht (es wird auf den Termin vom 6.12.2011 verlinkt).

Ist das noch niemandem aufgefallen oder ist das nur bei mir so?

Danke für ein Feedback im Voraus...

LG, derJu
Contenido 4.8.20 | Contenido 4.9.12

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Di 13. Dez 2011, 12:42

Hallo derju,

kann ich nicht nachvollziehen...

1) Das Datum ist in den Artikeleigenschaften und im Artikel selbst korrekt gesetzt?
2) Welchen Link meinst Du? Den Link aus dem Kalender heraus auf den Artikel oder über die Auflistung der Termine für das Datum unterhalb des Kalenders?
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von derju » Di 13. Dez 2011, 16:39

Ich meine den Link aus dem Kalender heraus.

Was meinst du mit:
1) und im Artikel selbst korrekt gesetzt?

So sieht das bei mir aus:
Artikeleigenschaften: 2011-12-06 - Feier
Artikeleigenschaften: 2012-08-13 - Erster Schultag

Wenn ich jetzt im August 2012 auf die Verlinkung im Kalender klicke lande ich auf 2011-12-06 - Feier.
Contenido 4.8.20 | Contenido 4.9.12

derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von derju » Di 13. Dez 2011, 17:42

Also ich hab jetzt anstelle dem 13 August 2012 mal den 1 Januar 2012 eingegeben.
Das Problem ist das selbe also liegt das am Jahreswechsel...

Das liegt dann an dem array oder?

Code: Alles auswählen

           
            $array[]=$article_title;
            $array[]=$article_id;
Contenido 4.8.20 | Contenido 4.9.12

derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von derju » Di 13. Dez 2011, 18:10

Bildschirmfoto 2011-12-13 um 17.35.38.png
Dezember 2011
Bildschirmfoto 2011-12-13 um 17.35.38.png (44.25 KiB) 6611 mal betrachtet
Bildschirmfoto 2011-12-13 um 17.35.51.png
Januar 2012
Bildschirmfoto 2011-12-13 um 17.35.51.png (43.53 KiB) 6611 mal betrachtet
Ich habe 2 Screenshots erstellt und beigefügt damit Ihr euch das Bildlich vorstellen könnt.

Vielleicht habt ihr mir ja noch einen Hinweis den ich übersehen habe.

Viele Grüße
derJu
Contenido 4.8.20 | Contenido 4.9.12

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Di 13. Dez 2011, 21:44

Hi,

wird das Jahr als Variable beim Link mit übertragen? Schau mal hier: http://forum.contenido.org/viewtopic.ph ... 63#p146428
Ich habe auf meiner Seite Deinen Fall nachgebaut: http://www.seamless-design.de/cms/front ... swahl=2011
Klickt man hier auf den Termin am 28.12.2011, wird der entsprechende Teaser angezeigt. Der "mehr"-Link führt zum korrekten Artikel. Diesen Termin habe ich dubliziert und auf den 28.12.2012 gelegt. Blättert man dorthin oder ruft diesen Direktlink auf http://www.seamless-design.de/cms/front ... swahl=2012 und klickt auf den Termin am 28.12.2012 kommt der korrekte Teaser und die weitere Verlinkung landet auch auf dem richtigen Artikel...

Ggf. mailst Du mir mal temporäre Zugangsdaten für das Backend per PN...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von derju » Mi 14. Dez 2011, 09:33

Guten Morgen Markus

Der Link stimmt mitlerweile nur der ausgegebene Titel aus dem array stimmt noch nicht.

überall wo //abgeändert von mir steht habe ich was angepasst.

Vielleicht kannst du mir ja helfen...

Hier ist der komplette Output...

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     terminkalender_sd
* Author(s)   :     Markus Hübner, Seamless-Design
* Copyright   :     Markus Hübner, Seamless-Design
* Created     :     20.04.2010
************************************************/

$einzeltermine_anteasern="CMS_VALUE[20]";
//$einzeltermine_anteasern="true";

/************************* Auslesen der Artikel-Titel *****************************/  

cInclude('classes', 'class.article.php');

$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]." 
        WHERE
            idclient = ".$client." ";

$db->query($sql);

if ($db->next_record()) {
    $htmlpath = $db->f('htmlpath');
    $frontendpath = $db->f('frontendpath');

}

$selcat = "CMS_VALUE[1]"; // selected category
//$limit = "CMS_VALUE[15]";
$cms_sort_direction = 'asc';
$order = 'title';
$with_start = false;
$array="";
$url="front_content.php";
//front_content.php?idcatart=' . $idcatart . '

$monate=array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
$grafik_vormonat="../cms/pix/pfeil_vormonat.gif";
$alternativtext_grafik_vormonat="zum Vormonat";
$grafik_kommender_monat="../cms/pix/pfeil_kommender_monat.gif";
$alternativtext_grafik_kommender_monat="zum kommenden Monat";
$feiertage=array(
'2010-01-01',
'2010-04-02',
'2010-04-05',
'2010-05-01',
'2010-05-13',
'2010-05-24',
'2010-10-03',
'2010-12-25',
'2010-12-26',
'2011-01-01',
'2011-04-22',
'2011-04-25',
'2011-05-01',
'2011-06-02',
'2011-06-13',
'2011-10-03',
'2011-12-25',
'2011-12-26',
'2012-01-01',
'2012-04-06',
'2012-04-09',
'2012-05-01',
'2012-05-17',
'2012-05-28',
'2012-10-03',
'2012-12-25',
'2012-12-26'
);

/*
$feiertage_txt=file("../cms/upload/test/feiertage.txt");
$feiertage=array();
foreach ($feiertage_txt as $value) {$feiertage[]=$value;}
*/

if (strlen($selcat) > 0 && $selcat != '0') {
    $options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);
    $list = new ArticleCollection($options);

    $count = $list->count;

    if ($count > 0) {
        if (is_numeric($limit) AND strlen($limit) > 0) {
            if ($limit < $list->count) {
                $limit_art = $limit;
            }
            else {
                $limit_art = $list->count;
            }
        } // if (is_numeric($limit) AND strlen($limit) > 0)
        else {
            $limit_art = $list->count;
        }

        for ($i = 0; $i < $limit_art; $i ++) {
            $article = $list->nextArticle();
            $article_title = $article->getField('title');
            $article_id = $article->getField('idart');
            //abgeändert von mir
            $termini_title=substr($article_title,12,100);
            $article_title=substr($article_title,0,10);
            $array[]=$article_title;
            $array[]=$article_id;
            //abgeändert von mir
            $array[]=$termini_title;

            //echo $i;
        } // end for
    } // if ($count > 0)
    
} // if (strlen($selcat) > 0 && $selcat != '0')


$anzahl_array_elemente=count($array);
echo "<br/>Anzahl der Array-Elemente: ".$anzahl_array_elemente."<br/><br/>";
print_r($array);


/************************* Kalenderdaten *****************************/  

$monat_auswahl=htmlspecialchars($_GET['monat_auswahl']);
$jahr_auswahl=htmlspecialchars($_GET['jahr_auswahl']);

if ($monat_auswahl!="")
  {
  if(is_numeric($monat_auswahl)) $monat=$monat_auswahl;
  else die;
  if($monat>12) $monat=12;
  if($monat<1) $monat=1;
  }
  else $monat=date('n');
  
if ($jahr_auswahl!="")
  {
  if(is_numeric($jahr_auswahl)) $jahr=$jahr_auswahl;
  else die;
  }
  else $jahr=date('Y');


$aktueller_wochentag=date('w');
$erster=date('w', mktime(0,0,0,$monat,1,$jahr)); // auf welchen Wochentag fällt der erste des Monats
$insgesamt=date('t', mktime(0,0,0,$monat,1,$jahr));
$heute=date('d');
/*
echo "<hr>";
echo "monat: ".$monat."<br/>";
echo "jahr: ".$jahr."<br/>";
echo "aktueller_wochentag: ".$aktueller_wochentag."<br/>";
echo "erster fällt auf wochentag: ".$erster."<br/>";
echo "anzahl der tage des monats: ".$insgesamt."<br/>";
echo "tag heute: ".$heute."<br/>";
*/
if($erster==0){$erster=7;} //Sonntag, "amerikanische" Woche fängt nicht mit Montag sondern Sonntag an


/************************ Ziele Blätterfunktion ************************/
$vormonat=$monat-1;
$vorjahr=$jahr;
if ($vormonat=="0") {$vormonat="12";$vorjahr=$jahr-1;}

$kommender_monat=$monat+1;
$kommendes_jahr=$jahr;
if ($kommender_monat=="13") {$kommender_monat="1";$kommendes_jahr=$jahr+1;}


/************************ Darstellung des Kalenders ************************/



// this is just for sample client - modify to your needs!
            if ($cfg['url_builder']['name'] == 'front_content') {
                $aParams = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $idart);
            } else {
                $aParams = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $idart);
            }
            try {
                $href = Contenido_Url::getInstance()->build($aParams);
            } catch (InvalidArgumentException $e) {
                $href = $sess->url("front_content.php?idcat=$selcat&idart=$idart");
            }

echo '<table class="monatsterminkalender_sd_sd">';
echo '<tr><th class="terminkalender_sd_vormonat"><a class="terminkalender_sd_vormonat" href="'.$href.'?monat_auswahl='.$vormonat.'&jahr_auswahl='.$vorjahr.'"><img src="'.$grafik_vormonat.'" alt="'.$alternativtext_grafik_vormonat.'" title="'.$alternativtext_grafik_vormonat.'"/></a></th>
      <th class="terminkalender_sd_aktueller_monat" colspan="5">'.$monate[$monat-1].' '.$jahr.'</th>
      <th class="terminkalender_sd_kommender_monat"><a class="terminkalender_sd_kommender_monat" href="'.$href.'?monat_auswahl='.$kommender_monat.'&jahr_auswahl='.$kommendes_jahr.'"><img src="'.$grafik_kommender_monat.'" alt="'.$alternativtext_grafik_kommender_monat.'" title="'.$alternativtext_grafik_kommender_monat.'"/></a></th></tr>'; // $monat - 1 da die erste Arrayposition nicht mit 1 sondern Null angesteuert wird
echo '<tr>
      <td class="terminkalender_sd_tage_woche">Mo</td>
      <td class="terminkalender_sd_tage_woche">Di</td>
      <td class="terminkalender_sd_tage_woche">Mi</td>
      <td class="terminkalender_sd_tage_woche">Do</td>
      <td class="terminkalender_sd_tage_woche">Fr</td>
      <td class="terminkalender_sd_tage_wochenende">Sa</td>
      <td class="terminkalender_sd_tage_wochenende">So</td>
      </tr><tr>';

if ($monat<10) {$monat="0".$monat;} // formatierung von einstelligen monaten auf zwei stellen: 4 -> 04

/* Auffüllen der <tr> mit Leerzellen bis der Monatserste in der passenden Spalte erreicht wird */

$i=1;
while($i<$erster){echo '<td class="terminkalender_sd_zelle_leer">&nbsp;</td>'; $i++;}

/* Ausgabe der Datumsziffern */
$i=1;
$arrayzeiger_idart_zum_termin=-2;
//abgeändert von mir
$ausgabe_termin=-1;
while($i<=$insgesamt)
{
$rest=($i+$erster-1)%7;
if ($rest==1) {echo "<tr>";}
if($i==$heute){echo '<td class="terminkalender_sd_zelle_heute">';}
else{echo '<td class="terminkalender_sd_zelle_standard">';}

if ($i<10) {$tag="0".$i;} // formatierung von einstelligen tagen auf zwei stellen für das checkdatum: 4 -> 04
else {$tag=$i;}

/* Prüfung, ob ein oder mehrere Termine auf Datum fallen, entsprechender <a>-Tag */

$checkdatum=$jahr.'-'.$monat.'-'.$tag;


if ($einzeltermine_anteasern=="false")
{
  if (count(array_keys($array, $checkdatum))==1){
  $arrayzeiger_idart_zum_termin=$arrayzeiger_idart_zum_termin+3;
//abgeändert von mir
  $ausgabe_termin=$ausgabe_termin+3;
  $artikel_idart=$array[$arrayzeiger_idart_zum_termin];
 //abgeändert von mir
  $termini_title=$array[$ausgabe_termin];
  if ($cfg['url_builder']['name'] == 'front_content') {
                $aParams1 = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $artikel_idart);
            } else {
  
                                                $aParams1 = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $artikel_idart);
            }
            try {
                $href1 = Contenido_Url::getInstance()->build($aParams1);
            } catch (InvalidArgumentException $e) {
                $href1 = $sess->url("front_content.php?idcat=$selcat&idart=$artikel_idart");
            }
  echo '<a class="terminkalender_sd_ein_termin" href="'.$href1.'">';
  echo '<div class="termin">'.$termini_title.'</div>';
  $inarray="true";
  }
}
//ike

if ($einzeltermine_anteasern=="true")
{
$switch=0;
}
else
{
$switch=1;
}

if (count(array_keys($array, $checkdatum))>$switch){
$arrayzeiger_idart_zum_termin=$arrayzeiger_idart_zum_termin+count(array_keys($array, $checkdatum))*3;
//$ausgabe_termin=$ausgabe_termin+count(array_keys($array, $checkdatum))*3;

if ($cfg['url_builder']['name'] == 'front_content') {
                $aParams2 = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $idart);
            } else {
                $aParams2 = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $idart);
            }
            try {
                $href2 = Contenido_Url::getInstance()->build($aParams2);
            } catch (InvalidArgumentException $e) {
                $href2 = $sess->url("front_content.php?idcat=$selcat&idart=$idart");
            }
//abgeändert von mir
              $ausgabe_termin=$ausgabe_termin+3;
  $termini_title=$array[$ausgabe_termin];
echo '<a class="terminkalender_sd_mehrere_termine" href="'.$href2.'?termindatum='.$checkdatum.'&monat_auswahl='.$monat_auswahl.'&jahr_auswahl='.$jahr_auswahl.'">';
  echo '<div class="termin">'.$termini_title.'</div>';
$inarray="true";
}

/* Ausgabe der Datumszahl */
$feiertag_ja="false";
if (in_array($checkdatum, $feiertage)) {$feiertag_ja="true";}
if($i==$heute){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_heute_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_heute">'.$i.'</span>';
    }
else if($rest==6){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_samstag_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_samstag">'.$i.'</span>';
    }
else if($rest==0){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_sonntag_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_sonntag">'.$i.'</span>';
    }
else{
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_normal_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_normal">'.$i.'</span>';
    }

/* Schließen des <a>-Tags */
if ($inarray=="true") {echo "</a>";}
$inarray="false";
echo "</td>"; // Schließen der Zelle
if($rest==0){echo '</tr>';}
$i++;
}

/* Auffüllen der <tr> mit Leerzellen wenn das Enddatum des Monats erreicht ist */

$p=7-$rest;
$q=0;
if ($rest!=0) 
  {
  while ($q<$p)
    {
    echo '<td class="terminkalender_sd_zelle_leer">&nbsp;</td>';
    $q++;
    }
  }
  
echo '</tr>';
echo '</table>';
?> 
LG derju
Contenido 4.8.20 | Contenido 4.9.12

Goldfisch
Beiträge: 29
Registriert: Di 15. Nov 2011, 09:43
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von Goldfisch » Fr 24. Aug 2012, 11:36

Hallo, der Beitrag ist schon etwas älter aber ich hoffe mir kann trotzdem jemand helfen:

Habe den Calender eingebaut. Mein Problem ist nun dass im Kalenderselbst nur der erste Termin in der Terminliste angezeigt, alles weiteren Termine können im Kalender nicht angeklickt werden, bzw. erscheinen auch nicht... woran kann das liegen?

Hier mein code:

terminkalender_sd input

Code: Alles auswählen

?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     terminkalender_sd
* Author(s)   :     Markus Hübner, Seamless-Design
* Copyright   :     Markus Hübner, Seamless-Design
* Created     :     20.04.2010
************************************************/

#Select category
$cms_idcat = "CMS_VALUE[1]";
echo '<table cellpadding="0" cellspacing="0" border="0">';
echo '<tr><td class="text_medium" style="padding:5px">Kategorie w&auml;hlen: </td></tr>
      <tr><td class="text_medium" style="padding:5px">';
echo buildCategorySelect("CMS_VAR[1]", "CMS_VALUE[1]");
echo '&nbsp;<input type="image" src="images/submit.gif">';
echo '</td></tr>';     
echo "<tr><td colspan=\"2\"><u>Einzeltermine anteasern oder direkt öffnen?</u> <br/>";
if ("CMS_VALUE[20]" != "true") { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="true"> anteasern'; 
} else { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="true" checked> anteasern'; 
   }
if ("CMS_VALUE[20]" != "false") { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="false"> direkt öffnen'; 
} else { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="false" checked> direkt öffnen'; 
   }
echo "</td></tr>"; 
echo '</table>';
?><?php
terminkalender_sd Output

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     terminkalender_sd
* Author(s)   :     Markus Hübner, Seamless-Design
* Copyright   :     Markus Hübner, Seamless-Design
* Created     :     20.04.2010
************************************************/

$einzeltermine_anteasern="CMS_VALUE[20]";
//$einzeltermine_anteasern="true";

/************************* Auslesen der Artikel-Titel *****************************/  

cInclude('classes', 'class.article.php');

$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]." 
        WHERE
            idclient = ".$client." ";

$db->query($sql);

if ($db->next_record()) {
    $htmlpath = $db->f('htmlpath');
    $frontendpath = $db->f('frontendpath');
}

$selcat = "CMS_VALUE[1]"; // selected category
//$limit = "CMS_VALUE[15]";
$cms_sort_direction = 'asc';
$order = 'title';
$with_start = false;
$array="";
$url="http://www.wgk.bz.it/cms/front_content.php";
$terminkalender_sd_idart=71;
$monate=array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
$grafik_vormonat="../cms/images/pfeil_vormonat.gif";
$alternativtext_grafik_vormonat="zum Vormonat";
$grafik_kommender_monat="../cms/images/pfeil_kommender_monat.gif";
$alternativtext_grafik_kommender_monat="zum kommenden Monat";
$feiertage=array(
'2012-05-01',
'2012-05-17',
'2012-05-28',
'2012-10-03',
'2012-12-25',
'2012-12-26',
'2013-01-01',
'2013-04-06',
'2013-04-09',
'2013-05-01',
'2013-05-17',
'2013-05-28',
'2013-10-03',
'2013-12-25',
'2013-12-26'
);

/*
$feiertage_txt=file("../cms/upload/test/feiertage.txt");
$feiertage=array();
foreach ($feiertage_txt as $value) {$feiertage[]=$value;}
*/

if (strlen($selcat) > 0 && $selcat != '0') {
    $options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);
    $list = new ArticleCollection($options);

    $count = $list->count;

    if ($count > 0) {
        if (is_numeric($limit) AND strlen($limit) > 0) {
            if ($limit < $list->count) {
                $limit_art = $limit;
            }
            else {
                $limit_art = $list->count;
            }
        } // if (is_numeric($limit) AND strlen($limit) > 0)
        else {
            $limit_art = $list->count;
        }

        for ($i = 0; $i < $limit_art; $i ++) {
            $article = $list->nextArticle();
            $article_title = $article->getField('title');
            $article_id = $article->getField('idart');
            $article_title=substr($article_title,0,10);
            $array[]=$article_title;
            $array[]=$article_id;
            //echo $i;
        } // end for
    } // if ($count > 0)
    
} // if (strlen($selcat) > 0 && $selcat != '0')

/*
$anzahl_array_elemente=count($array);
echo "<br/>Anzahl der Array-Elemente: ".$anzahl_array_elemente;
*/


/************************* Kalenderdaten *****************************/  

$monat_auswahl=htmlspecialchars($_GET['monat_auswahl']);
$jahr_auswahl=htmlspecialchars($_GET['jahr_auswahl']);

if ($monat_auswahl!="")
  {
  if(is_numeric($monat_auswahl)) $monat=$monat_auswahl;
  else die;
  if($monat>12) $monat=12;
  if($monat<1) $monat=1;
  }
  else $monat=date('n');
  
if ($jahr_auswahl!="")
  {
  if(is_numeric($jahr_auswahl)) $jahr=$jahr_auswahl;
  else die;
  }
  else $jahr=date('Y');


$aktueller_wochentag=date('w');
$erster=date('w', mktime(0,0,0,$monat,1,$jahr)); // auf welchen Wochentag fällt der erste des Monats
$insgesamt=date('t', mktime(0,0,0,$monat,1,$jahr));
$heute=date('d');
/*
echo "<hr>";
echo "monat: ".$monat."<br/>";
echo "jahr: ".$jahr."<br/>";
echo "aktueller_wochentag: ".$aktueller_wochentag."<br/>";
echo "erster fällt auf wochentag: ".$erster."<br/>";
echo "anzahl der tage des monats: ".$insgesamt."<br/>";
echo "tag heute: ".$heute."<br/>";
*/
if($erster==0){$erster=7;} //Sonntag, "amerikanische" Woche fängt nicht mit Montag sondern Sonntag an


/************************ Ziele Blätterfunktion ************************/
$vormonat=$monat-1;
$vorjahr=$jahr;
if ($vormonat=="0") {$vormonat="12";$vorjahr=$jahr-1;}

$kommender_monat=$monat+1;
$kommendes_jahr=$jahr;
if ($kommender_monat=="13") {$kommender_monat="1";$kommendes_jahr=$jahr+1;}


/************************ Darstellung des Kalenders ************************/

echo '<table class="monatsterminkalender_sd_sd">';
echo '<tr><th class="terminkalender_sd_vormonat"><a class="terminkalender_sd_vormonat" href="front_content.php?idart='.$terminkalender_sd_idart.'&monat_auswahl='.$vormonat.'&jahr_auswahl='.$vorjahr.'"><img src="'.$grafik_vormonat.'" alt="'.$alternativtext_grafik_vormonat.'" title="'.$alternativtext_grafik_vormonat.'"/></a></th>
      <th class="terminkalender_sd_aktueller_monat" colspan="5">'.$monate[$monat-1].' '.$jahr.'</th>
      <th class="terminkalender_sd_kommender_monat"><a class="terminkalender_sd_kommender_monat" href="front_content.php?idart='.$terminkalender_sd_idart.'&monat_auswahl='.$kommender_monat.'&jahr_auswahl='.$kommendes_jahr.'"><img src="'.$grafik_kommender_monat.'" alt="'.$alternativtext_grafik_kommender_monat.'" title="'.$alternativtext_grafik_kommender_monat.'"/></a></th></tr>'; // $monat - 1 da die erste Arrayposition nicht mit 1 sondern Null angesteuert wird
echo '<tr>
      <td class="terminkalender_sd_tage_woche">Mo</td>
      <td class="terminkalender_sd_tage_woche">Di</td>
      <td class="terminkalender_sd_tage_woche">Mi</td>
      <td class="terminkalender_sd_tage_woche">Do</td>
      <td class="terminkalender_sd_tage_woche">Fr</td>
      <td class="terminkalender_sd_tage_wochenende">Sa</td>
      <td class="terminkalender_sd_tage_wochenende">So</td>
      </tr><tr>';

if ($monat<10) {$monat="0".$monat;} // formatierung von einstelligen monaten auf zwei stellen: 4 -> 04

/* Auffüllen der <tr> mit Leerzellen bis der Monatserste in der passenden Spalte erreicht wird */

$i=1;
while($i<$erster){echo '<td class="terminkalender_sd_zelle_leer">&nbsp;</td>'; $i++;}

/* Ausgabe der Datumsziffern */
$i=1;
$arrayzeiger_idart_zum_termin=-1;
while($i<=$insgesamt)
{
$rest=($i+$erster-1)%7;
if ($rest==1) {echo "<tr>";}
if($i==$heute){echo '<td class="terminkalender_sd_zelle_heute">';}
else{echo '<td class="terminkalender_sd_zelle_standard">';}

if ($i<10) {$tag="0".$i;} // formatierung von einstelligen tagen auf zwei stellen für das checkdatum: 4 -> 04
else {$tag=$i;}

/* Prüfung, ob ein oder mehrere Termine auf Datum fallen, entsprechender <a>-Tag */

$checkdatum=$jahr.'-'.$monat.'-'.$tag;

if ($einzeltermine_anteasern=="false")
{
  if (count(array_keys($array, $checkdatum))==1){
  $arrayzeiger_idart_zum_termin=$arrayzeiger_idart_zum_termin+2;
  $artikel_idart=$array[$arrayzeiger_idart_zum_termin];
  echo '<a class="terminkalender_sd_ein_termin" href="'.$url.'?idart='.$artikel_idart.'">';
  $inarray="true";
  }
}

if ($einzeltermine_anteasern=="true")
{
$switch=0;
}
else
{
$switch=1;
}

if (count(array_keys($array, $checkdatum))>$switch){
$arrayzeiger_idart_zum_termin=$arrayzeiger_idart_zum_termin+count(array_keys($array, $checkdatum))*2;
echo '<a class="terminkalender_sd_mehrere_termine" href="'.$url.'?idart='.$terminkalender_sd_idart.'&termindatum='.$checkdatum.'&monat_auswahl='.$monat_auswahl.'&jahr_auswahl='.$jahr_auswahl.'">';
$inarray="true";
}

/* Ausgabe der Datumszahl */
$feiertag_ja="false";
if (in_array($checkdatum, $feiertage)) {$feiertag_ja="true";}
if($i==$heute){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_heute_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_heute">'.$i.'</span>';
    }
else if($rest==6){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_samstag_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_samstag">'.$i.'</span>';
    }
else if($rest==0){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_sonntag_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_sonntag">'.$i.'</span>';
    }
else{
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_normal_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_normal">'.$i.'</span>';
    }

/* Schließen des <a>-Tags */
if ($inarray=="true") {echo "</a>";}
$inarray="false";
echo "</td>"; // Schließen der Zelle
if($rest==0){echo '</tr>';}
$i++;
}

/* Auffüllen der <tr> mit Leerzellen wenn das Enddatum des Monats erreicht ist */

$p=7-$rest;
$q=0;
if ($rest!=0) 
  {
  while ($q<$p)
    {
    echo '<td class="terminkalender_sd_zelle_leer">&nbsp;</td>';
    $q++;
    }
  }
  
echo '</tr>';
echo '</table>';
?> 
terminkalender_sd_terminliste input

Code: Alles auswählen

    ?><?php
    /**
    * $RCSfile$
    *
    * Description: Newslist / ArticleList. Module "Input".
    *
    * @version 1.0.0
    * @author Andreas Lindner
    * @copyright four for business AG <www.4fb.de>
    *
    * {@internal
    * created 2005-08-12
    * }}
    *
    * $Id$
    *
    * Modified for terminkalender_sd_terminliste_gesamt: Markus Hübner 2010-04-30 (Zusammenspiel mit Modulen terminkalender_sd und terminkalender_sd_terminliste
    * forum: http://forum.contenido.org/viewtopic.php?f=60&t=30263&p=144294#p144294
    */

    #Select category
    $cms_idcat = "CMS_VALUE[1]";

    echo '<table cellpadding="0" cellspacing="0" border="0">';

    echo '
            <tr><td class="text_medium" style="padding:5px">Kategorie w&auml;hlen: </td></tr>
            <tr><td class="text_medium" style="padding:5px">';

    echo buildCategorySelect("CMS_VAR[1]", "CMS_VALUE[1]");
    echo '&nbsp;<input type="image" src="images/submit.gif">';

    echo '</td></tr>';

    // mod anfang
    /*
    #Select sort field and sort order
    $sortdate = 'checked';
    $cms_imgsize = "CMS_VALUE[14]";
    $cms_limit_articles = "CMS_VALUE[15]";
    $cms_sort_direction = "CMS_VALUE[16]";
    if ("CMS_VALUE[17]" != '') {
        $cms_include_start_article = ' checked';
    } else {
        $cms_include_start_article = '';
    }

    if ("CMS_VALUE[3]" == 'sortdate') {
        $sortdate = 'checked';
        $sortnum = '';
    }
    elseif ("CMS_VALUE[3]" == 'sortnum') {
        $sortdate = '';
        $sortnum = 'checked';
    }

    echo '
            <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung nach Datum").':</td>
              <td style="padding:5px;"><input type="radio" name="CMS_VAR[3]" value="sortdate" '.$sortdate.'></td>
            </tr>
            <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung nach Nummer").':</td>
              <td style="padding:5px;"><input type="radio" name="CMS_VAR[3]" value="sortnum" '.$sortnum.'></td>
            </tr>
    */
    //mod anfang
    #termine nur ab heute
    echo '
            <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Termine nur ab heute").':</td>
              <td style="padding:5px;">';
              if ("CMS_VALUE[100]" != "ja")
                 {
                 echo '<input type="checkbox" name="CMS_VAR[100]" value="ja"> ja';
                 } else {
                 echo '<input type="checkbox" name="CMS_VAR[100]" value="ja" checked> ja';
                 }
    echo'      </td>
            </tr>';
    //mod ende

    echo '  <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung aufsteigend").':</td>
              <td style="padding:5px;">';
    if (strtolower($cms_sort_direction) == 'desc') {
        echo '<input type="radio" name="CMS_VAR[16]" value="asc"/>';
    } else {
        echo '<input type="radio" name="CMS_VAR[16]" value="asc" checked/>';
    }
    echo '</td>
            </tr>
            <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung absteigend").':</td>
              <td style="padding:5px;">';
    if (strtolower($cms_sort_direction) == 'desc') {
        echo '<input type="radio" name="CMS_VAR[16]" value="desc" checked/>';
    } else {
        echo '<input type="radio" name="CMS_VAR[16]" value="desc"/>';
    }
    echo '</td>
            </tr>';

    $noimg = '';
    if ("CMS_VALUE[13]" == 'true') {
        $noimg = 'checked';
    }

    #Headline
    echo '
            <tr><td class="text_medium" style="padding:5px;">'.mi18n("&Uuml;berschrift").': </td></tr>
            <tr><td style="padding:5px;"><input type="text" name="CMS_VAR[4]" value="CMS_VALUE[4]"></td></tr>
            <tr>
              <td colspan="2" class="text_medium" style="padding:5px;"><b><u>'.mi18n("Bild f&uuml;r Teaser").':</u></b></td>
            </tr>
            <tr>
              <td colspan="2" class="text_medium" style="padding:5px;">'.mi18n("Es wird das erste Bild des Artikels angezeigt.").'</td>
            </tr>';
    #Image width
    echo '
            <tr><td class="text_medium" style="padding:5px;">'.mi18n("Bildbreite").': </td></tr>
            <tr><td style="padding:5px;"><input type="text" name="CMS_VAR[14]" value="'.$cms_imgsize.'" maxlength="3"></td></tr>';
    #Disable images
    echo '
            <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Kein Bild anzeigen").':</td>
              <td style="padding:5px;"><input type="checkbox" name="CMS_VAR[13]" value="true" '.$noimg.'></td>
            </tr>';
    #Number of articles
    echo '
            <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Anzahl Artikel begrenzen").':</td>
              <td style="padding:5px;"><input type="text" name="CMS_VAR[15]" value="'.$cms_limit_articles.'"></td>
            </tr>';
    #Include start article
    echo '
            <tr>
              <td class="text_medium" style="padding:5px;">'.mi18n("Startartikel in Liste einbeziehen").':</td>
              <td style="padding:5px;"><input type="checkbox" name="CMS_VAR[17]" value="yes"'.$cms_include_start_article.'></td>
            </tr>';

    echo '</table>';
    ?><?php
terminkalender_sd_terminliste output

Code: Alles auswählen

        <?php
        /**
        * $RCSfile$
        *
        * Description: Newslist / ArticleList. Module "Output".
        *
        * @version 1.1.0
        * @author Andreas Lindner
        * @copyright four for business AG <www.4fb.de>
        *
        * {@internal
        * created 2005-08-12
        * modified 2009-01-16 Rudi Bieller Added new Contenido_Url for creating URLs
        * }}
        *
        * $Id$
        *
        * Modified for terminkalender_sd_terminliste_gesamt: Markus Hübner 2010-04-30 (Zusammenspiel mit Modulen terminkalender_sd und terminkalender_sd_terminliste
        * forum: http://forum.contenido.org/viewtopic.php?f=60&t=30263&p=144294#p144294
        */

        //mod anfang
        $termine_nur_ab_heute="CMS_VALUE[100]";
        $timestamp = time();
        $datum_heute = date("Y-m-d", $timestamp);
        if($termine_nur_ab_heute!="ja") $datum_heute="";
        //mod ende

        cInclude('classes', 'class.article.php');
        cInclude('includes', 'functions.api.string.php');
        cInclude('includes', 'functions.api.images.php');

        if (!isset($tpl) || !is_object($tpl)) {
            $tpl = new Template();
        }

        $tpl->reset();

        $sql = "SELECT
                    htmlpath, frontendpath
                FROM
                    ".$cfg["tab"]["clients"]."
                WHERE
                    idclient = ".$client." ";

        $db->query($sql);

        if ($db->next_record()) {
            $htmlpath = $db->f('htmlpath');
            $frontendpath = $db->f('frontendpath');
        }

        // selected category
        $selcat = "CMS_VALUE[1]";
        $template = "terminkalender_sd_terminliste.html";
        // anzahl der zeichen text
        $mxtext = 200;

        $limit = "CMS_VALUE[15]";

        $cms_sort_direction = "CMS_VALUE[16]";
        if ($cms_sort_direction == '') {
            $cms_sort_direction = 'desc';
        }
        //mod anfang
        if ("CMS_VALUE[3]" == "sortdate") {
            $order = 'lastmodified';
        } else {
            $order = 'artsort';
        }
        // mod ende
            $order = 'title';
        if ("CMS_VALUE[17]" != '') {
            $with_start = true;
        } else {
            $with_start = false;
        }

        $newsheadline = "CMS_VALUE[4]";

        $tpl->set('s', 'TITLE', $newsheadline);

        if (strlen($selcat) > 0 && $selcat != '0') {
            $options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);

            $list = new ArticleCollection($options);

            $count = $list->count;

            if ($count > 0) {
                if (is_numeric($limit) AND strlen($limit) > 0) {
                    if ($limit < $list->count) {
                        $limit_art = $limit;
                    } else {
                        $limit_art = $list->count;
                    }
                } else {
                    $limit_art = $list->count;
                }

                for ($i = 0; $i < $limit_art; $i ++) {

                    $article = $list->nextArticle();

                    $article_id = $article->getField('idart');
        // mod anfang
        $article_title = $article->getField('title');
        $article_title=substr($article_title,0,10);
        //mod anfang
        if($article_title>=$datum_heute)
        {
        // mod ende

                    $teaser_img = '';
                    if ($noimg != 'true') {
                        $text_html = $article->getContent('CMS_HTML', 1);

                        $regEx = "/<img[^>]*?>.*?/i";
                        $match = array ();
                        preg_match($regEx, $text_html, $match);

                        $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
                        $img = array ();
                        preg_match($regEx, $match[0], $img);
                        $img_src = preg_split("/\//", $img[0]);

                        $img_name = $img_src[count($img_src) - 1];
                        $img_name = preg_replace("/\"/", "", $img_name);
                        $img_split = preg_split("/\./", $img_name);
                        $img_type = $img_split[count($img_split) - 1];

                        $img_split2 = preg_split("/_/", $img_split[0]);

                        $name = $img_name;

                        if (count($img_split2) > 1) {
                            $img_x = $img_split2[count($img_split2) - 1];
                            $img_y = $img_split2[count($img_split2) - 2];

                            if (is_numeric($img_x) AND is_numeric($img_y)) {
                                $suffix = "_".$img_x."_".$img_y.".".$img_type;
                                $name = preg_replace("/$suffix/", "", $img_name);
                                $name = $name.".[a-zA-Z]{3}";
                            }
                        }

                        $img_teaser = '';

                        if (strlen($name) > 0) {
                            $sql = "SELECT
                                                            *
                                                        FROM
                                                            ".$cfg["tab"]["upl"]."
                                                        WHERE
                                                            filename REGEXP '$name' ";

                            //echo "<pre>"; print_r($sql); echo "</pre>";

                            $db->query($sql);

                            if ($db->next_record()) {
                                $filename = $db->f('filename');
                                $dirname = $db->f('dirname');
                            }

                            $img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;

                            $img_size = "CMS_VALUE[14]";

                            $img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
                        } // end if strlen

                        if (strlen($img_teaser) > 0) {
                            $teaser_img = '<img src="'.$img_teaser.'" class="teaser_img">';
                        } else {
                            $teaser_img = '';
                        }

                    } // end if noimg       

                    $headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
                    $headline = str_replace($replace, " ", $headline);

                    /*          $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
                                $subheadline = str_replace($replace, " ", $subheadline);*/

                    $teaserheadline = /*$subheadline."&nbsp;-&nbsp;".*/
                    $headline;
                    // this is just for sample client - modify to your needs!
                    if ($cfg['url_builder']['name'] == 'front_content') {
                        $aParams = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $article_id);
                    } else {
                        $aParams = array('b' => array('lang' => $lang, 'idcat' => $selcat, 'idart' => $article_id),
                                        'idcat' => $selcat, // needed to build category path
                                        'lang' => $lang, // needed to build category path
                                        'level' => 1); // needed to build category path
                    }
                    try {
                        $href = Contenido_Url::getInstance()->build($aParams);
                    } catch (InvalidArgumentException $e) {
                        $href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
                    }
                    $teasertext = $article->getField('summary');

                    if (strlen(trim($teasertext)) == 0) {
                        $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
                        $teasertext2 = $teasertext;
                        $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
                        if ($teasertext!=$teasertext2) {
                            $teasertext.= '...';
                        }
                       
                    } // end if             

                    $teasertext = $teasertext."&nbsp;";

                    $tpl->set('d', 'HEADLINE', $teaserheadline);
                    $tpl->set('d', 'TEXT', $teasertext);
                    $tpl->set('d', 'HREF', $href);
                    $tpl->set('d', 'IMG', $teaser_img);
                    $tpl->set('d', 'MORE', mi18n("mehr"));

                    $tpl->next();
        //mod anfang
        }
        //mod ende
                } // end for

                $tpl->generate('templates/'.$template);

            }
        }
        ?>
DAnke schon mal wenn mir jemand helfen kann...

Gruß

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Fr 24. Aug 2012, 12:11

Hallo Goldfisch,

hat es einen Grund, warum Du die Codes aus dem ersten Beitrag hier noch einmal postest? Hast Du was am Code geändert? Wenn ja, was? Ein Link auf Dein Frontend wäre auch ganz praktisch um sich das Verhalten einmal anzuschauen... :D
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Gesperrt