Terminkalender mit Mehrfachterminen und Blätterfunktion

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

Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Di 20. Apr 2010, 22:42

Der Kalender zeigt den aktuellen Tag in jedem Monat an, ebenso Samstag/ Sonntag und auch bundesweite Feiertage der Jahre 2010 bis 2012. Tage, an denen mindestens ein Termin vorhanden ist, werden entsprechend der CSS-Klassen gekennzeichnet. Sofern nur ein Termin vorhanden ist, kann die Datumszahl direkt mit dem Terminartikel verlinkt werden oder, wie im Falle von mehreren Terminen, zunächst ein Anteasern unterhalb des Kalenders erfolgen. Über den/ die Teaser kann der gewünschte Termin aufgerufen werden.

Standardmäßig wird der gerade aktuelle Monat aufgerufen, es besteht jedoch die Möglichkeit monatsweise vor und zurück zu blättern.

Bild

Eine "Live-Demo" könnt ihr euch hier anschauen: http://www.seamless-design.de/cms/front ... swahl=2011. Voreinstellung ist Dezember 2011, damit auch ein paar Termine sichtbar sind...

Die zip-Datei mit allen Bestandteilen gibt es hier: http://www.seamless-design.de/cms/front ... p?idcat=73

INSTALLATION

* Download des Modulpakets und entpacken
* Anlegen der Module "terminkalender_sd" und "terminkalender_sd_terminliste" durch die Importfunktion
* Anlegen des Modultemplates "terminkalender_sd_terminliste.html"
* Einfügen der CSS-Infos aus der Datei "terminkalender_sd.css" in die eigene CSS-Datei
* Upload der Grafiken in ein beliebiges Verzeichnis
* Anpassen folgender Variablen im Output des Moduls "terminkalender_sd":
$url="http://www.MEINEDOMAIN.de/cms/front_content.php";
$terminkalender_sd_idart=idart des Artikels der den Kalender enthält;
$grafik_vormonat="Pfad zur Datei pfeil_vormonat.gif";
$grafik_kommender_monat="Pfad zur Datei pfeil_kommender_monat.gif";

* Anpassen folgender CSS-Klasse:
a.terminkalender_sd_ein_termin,
a.terminkalender_sd_mehrere_termine {
...
background-image: url('Pfad zur Datei bullet_termin.gif');
...
}

* Anlegen eines neuen Templates, dass die Module "terminkalender_sd" und direkt darunter "terminkalender_sd_terminliste" enthält

ANLEGEN DES TERMINKALENDERS UND DER TERMINE

* Anlegen der Kategorie "Terminkalender" mit der Unterkategorie "Termine"
* Anlegen mehrerer, normaler Artikel in der Unterkategorie "Termine", deren Titel im Reiter Eigenschaften mit einem Datum nach dem Schema JJJJ-MM-TT beginnt (Beispiel: 2010-04-16 - Eröffnungsfeier) Das ist zwingend notwendig, da die Selektion der Termine nach diesem Schema erfolgt.
Bild
* Anlegen des Artikels "Terminkalender" in der Kategorie "Terminkalender" mit folgender Konfiguration
Bild

Hinweis

Je nach Version von Contenido kann es bei der Terminliste zu einer Fehlermeldung kommen: "Fatal error: Class 'Contenido_Url' not found in..." In diesem Fall wird Contenido in einer Version < 4.8.12 installiert sein, die die o.g. Class nicht "kennt". In diesem Fall bitte den Output des Moduls "terminkalender_sd_terminliste" durch diesen hier ersetzen: output_terminkalender_sd_terminliste_fix_class_contenido_url.txt


Wer die Einzelheiten nicht aus der zip-Datei holen möchte, findet hier das was er sucht:
Modul "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
Modul "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.seamless-design.de/cms/front_content.php";
$terminkalender_sd_idart=93;
$monate=array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
$grafik_vormonat="../cms/upload/bullets/pfeil_vormonat.gif";
$alternativtext_grafik_vormonat="zum Vormonat";
$grafik_kommender_monat="../cms/upload/bullets/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'
);


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 $array[$arrayzeiger_idart_zum_termin];
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>';
?>  
Modul "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$
*/

#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>';

#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>
        <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
Modul "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: Markus Hübner 2010-04-13
*/

//mod anfang
$datum=htmlspecialchars($_GET['termindatum']);
if ($datum!="")
{
//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]";
//mod anfang
//$template = "teaser-standard.html";
$template = "terminkalender_sd_terminliste.html";
//mod ende
// anzahl der zeichen text
$mxtext = 200;

$limit = "CMS_VALUE[15]";

$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
    $cms_sort_direction = 'desc';
}

if ("CMS_VALUE[3]" == "sortdate") {
    $order = 'lastmodified';
} else {
    $order = 'artsort';
}

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);
if ($article_title==$datum)
{
//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
} //if ($article_title==$datum)
//mod ende
        } // end for

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

    }
}
//mod anfang
}// if ($datum!="")
//mod ende
?>
Modul-Template "terminkalender_sd_terminliste.html"

Code: Alles auswählen

<div class="terminkalender_sd_terminliste_title">
  {TITLE}
</div>
<div class="terminkalender_sd_terminliste_block">
<!-- BEGIN:BLOCK -->
   <a class="terminkalender_sd_terminliste_headline" href="{HREF}">{HEADLINE}</a><br/>
   <p>{IMG}{TEXT} <a class="terminkalender_sd_terminliste_mehr" href="{HREF}" title="{MORE}">{MORE} &rsaquo;</a></p>
<!-- END:BLOCK -->
</div>
CSS-Datei "terminkalender_sd.css"

Code: Alles auswählen

/********************* terminkalender_sd_sd und terminliste **********************/

span.terminkalender_sd_samstag,
span.terminkalender_sd_sonntag,
span.terminkalender_sd_normal_feiertag,
span.terminkalender_sd_samstag_feiertag,
span.terminkalender_sd_sonntag_feiertag,
span.terminkalender_sd_heute_feiertag {
color: #ff0000;
font-weight: 900;
}
span.terminkalender_sd_normal {}
span.terminkalender_sd_heute {}

a.terminkalender_sd_vormonat,
a.terminkalender_sd_kommender_monat {}

a.terminkalender_sd_vormonat:hover,
a.terminkalender_sd_kommender_monat:hover {}

a.terminkalender_sd_ein_termin,
a.terminkalender_sd_mehrere_termine {
font-weight: 900;
background-image: url('../upload/bullets/bullet_termin.gif');
background-repeat: no-repeat;
background-position: 25px 5px;
display: block;
text-decoration:none;
color: #000000;
}

table.terminkalender_sd  {
background-color: #ffffff;
}

th.terminkalender_sd_vormonat,
th.terminkalender_sd_kommender_monat {
border-bottom: 1px dotted #555555;
}
th.terminkalender_sd_aktueller_monat {
font-weight: 900;
color: #555555;
font-size: 16px;
border-bottom: 1px dotted #555555;
}

td.terminkalender_sd_tage_woche {
color: #555555;
width: 35px;
}
td.terminkalender_sd_tage_wochenende {
color: #555555;
font-weight: 900;
width: 35px;
}
td.terminkalender_sd_zelle_leer {
background-color: #ffffff;
}
td.terminkalender_sd_zelle_heute {
background-color: #999999;
color: #000000;
}
td.terminkalender_sd_zelle_standard {
border: 1px solid #999999;
}

div.terminkalender_sd_terminliste_title {
color: #000000;
text-decoration: underline;
margin-top: 10px;
margin-bottom: 10px;
}
div.terminkalender_sd_terminliste_block {}

a.terminkalender_sd_terminliste_headline {
color: #555555;
font-weight: 900;
text-decoration: none;
}
a.terminkalender_sd_terminliste_headline:hover {
text-decoration: underline;
}
a.terminkalender_sd_terminliste_mehr {
text-decoration: none;
}
a.terminkalender_sd_terminliste_mehr:hover {
text-decoration: underline;
}
Für den Fall, dass der o.g. "Contenido_Url"-Fehler bei einer älteren 4.8er auftritt:
output_terminkalender_sd_terminliste_fix_class_contenido_url.txt

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Newslist / ArticleList. Module "Output".
*
* @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: Markus Hübner 2010-04-13
*/

//mod anfang
$datum=htmlspecialchars($_GET['termindatum']);
if ($datum!="")
{
//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]";
//mod anfang
//$template = "teaser-standard.html";
$template = "terminkalender_sd_terminliste.html";
//mod ende
// anzahl der zeichen text
$mxtext = 200;

$limit = "CMS_VALUE[15]";

$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
    $cms_sort_direction = 'desc';
}

if ("CMS_VALUE[3]" == "sortdate") {
    $order = 'lastmodified';
} else {
    $order = 'artsort';
}

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);
if ($article_title==$datum)
{
//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;
            $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
} //if ($article_title==$datum)
//mod ende
        } // end for

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

    }
}
//mod anfang
}// if ($datum!="")
//mod ende
?>
Viel Spass damit und tonnenweise Termine! :D
Zuletzt geändert von McHubi am Fr 24. Aug 2012, 14:48, insgesamt 4-mal geändert.
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)

GOLD
Beiträge: 71
Registriert: Sa 14. Aug 2004, 22:24
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von GOLD » Do 29. Apr 2010, 16:04

Hallo McHubi, hab deinen Kalender gerade eingebaut. Sieht sehr gut aus! Besten Dank dafür!

Da der Kalender bei mir auf jeder Seite zum Einsatz kommt, hab ich die statische idart durch die Variabel $idart ersetzt. Funktioniert einwandfrei :D

Eine Frage/Bitte noch: Was muss ich ändern, damit die Termine des aktuellen Tages direkt unter dem Kalender angezeigt werden, sodass der Nutzer nicht erst noch auf den aktuellen Tag klicken muss?

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 30. Apr 2010, 10:12

Hallo Gold,

das ist ne gute Idee. Werde ich mir mal anschauen....

Bis dann,

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)

GOLD
Beiträge: 71
Registriert: Sa 14. Aug 2004, 22:24
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von GOLD » Fr 30. Apr 2010, 10:38

Darüber hinaus habe ich noch ein Anliegen: Ich finde ist gut, dass für jeden Termin ein neuer Artikel angelegt wird. Über die Artikelliste Advaned lässt sich dann eine schöne Terminübersicht erzeugen. Als Sortiermethode wähle ich dafür "Seitentitel Backend" aus. Hier habe ich allerdings das Problem, dass alte Termin auch mit angezeigt werden. Löschen oder offline setzen ist aufwendig... und außerdem will man ja auch wissen, welche Termine in der Vergangenheit stattgefunden haben.

Mein Lösungsansatz wäre, dass man die Artikelliste Advanced bearbeitet:

$today = date("Y-m-d");
$datumtitel=substr($article_title,0,9);

Beim SQL-Statement müsste dann noch was mit rein, à la "WHERE $datumtitel >= $today"

Allerdings ist das Modul so komplex, dass ich nicht in der Lage bin, diese Änderung vorzunehmen. Kann mir jemand helfen?

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 30. Apr 2010, 11:19

Okay, ist recht simpel:

Neu einfügen im INPUT des Moduls "terminkalender_sd_terminliste" (fett markiert):
...
<tr><td style="padding:5px;"><input type="text" name="CMS_VAR[4]" value="CMS_VALUE[4]"></td></tr>
<tr><td class="text_medium" style="padding:5px;">'.mi18n("&Uuml;berschrift heute").': </td></tr>
<tr><td style="padding:5px;"><input type="text" name="CMS_VAR[5]" value="CMS_VALUE[5]"></td></tr>

...

Damit kannst Du eine eigene Überschrift der Auflistung für das aktuelle Datum festlegen.

Im OUTPUT löschst Du zunächst diese Zeile

Code: Alles auswählen

$newsheadline = "CMS_VALUE[4]";
Die wird nämlich woanders untergebracht.

Der OUTPUT wird durch das hier (wieder fett markiert) ergänzt:

<?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 monatskalender_sd: Markus Hübner 2010-04-13
*/

//mod anfang
$datum=htmlspecialchars($_GET['termindatum']);

$termine_heute="nein";
$newsheadline = "CMS_VALUE[4]";
$timestamp = time();
$pruefdatum_heute = date("Y-m-d", $timestamp);
if ($datum==$pruefdatum_heute) $newsheadline="CMS_VALUE[5]";
if ($datum=="")
{
$datum = date("Y-m-d", $timestamp);
$newsheadline="CMS_VALUE[5]";
}

if ($datum!="")
{
//mod ende
...

...
//mod anfang
$article_title = $article->getField('title');
$article_title=substr($article_title,0,10);

if ($article_title==$pruefdatum_heute) $termine_heute="ja";

if ($article_title==$datum)
{
//mod ende
...

...
if($datum==$pruefdatum_heute AND $termine_heute!="ja") echo 'keine';
?>


Für "Faule" :wink: :

neuer 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$
*/

#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>';

#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>
        <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 class="text_medium" style="padding:5px;">'.mi18n("&Uuml;berschrift heute").': </td></tr>
        <tr><td style="padding:5px;"><input type="text" name="CMS_VAR[5]" value="CMS_VALUE[5]"></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
neuer 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 monatskalender_sd: Markus Hübner 2010-04-13
*/

//mod anfang
$termine_heute="nein";
$datum=htmlspecialchars($_GET['termindatum']);
$newsheadline = "CMS_VALUE[4]";
$timestamp = time();
$pruefdatum_heute = date("Y-m-d", $timestamp);
if ($datum==$pruefdatum_heute)  $newsheadline="CMS_VALUE[5]";
if ($datum=="")
  {
  $datum = date("Y-m-d", $timestamp);
  $newsheadline="CMS_VALUE[5]";
  }
  
if ($datum!="")
{
//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]";
//mod anfang
//$template = "teaser-standard.html";
$template = "terminkalender_sd_terminliste.html";
//mod ende
// anzahl der zeichen text
$mxtext = 200;

$limit = "CMS_VALUE[15]";

$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
    $cms_sort_direction = 'desc';
}

if ("CMS_VALUE[3]" == "sortdate") {
    $order = 'lastmodified';
} else {
    $order = 'artsort';
}

if ("CMS_VALUE[17]" != '') {
    $with_start = true;
} else {
    $with_start = false;
}

$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);
if ($article_title==$pruefdatum_heute) $termine_heute="ja";
if ($article_title==$datum)
{
//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
} //if ($article_title==$datum)
//mod ende
        } // end for

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

    }
}
//mod anfang
}// if ($datum!="")
//mod ende

if($datum==$pruefdatum_heute AND $termine_heute!="ja") echo 'keine';
?>
Die Termine für heute bleiben auch bei einem "Durchklickern" zu anderen Monaten erhalten. Mit einer weiteren Datumsprüfung könntest Du hier natürlich auch wieder die Anzeige unterbinden...

Viel Spass! :D
Zuletzt geändert von McHubi am Fr 30. Apr 2010, 12:55, insgesamt 1-mal geändert.
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)

GOLD
Beiträge: 71
Registriert: Sa 14. Aug 2004, 22:24
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von GOLD » Fr 30. Apr 2010, 11:55

Genau so hatte mir das vorgestellt. Super! Danke, dass du das so schnell bereitgestellt hast. So erschließt sich dem Nutzer viel mehr, dass er das was klicken kann.

Um nochmal auf die Darstellung aller Termine einzugehen: Wie machst du das denn mit deiner Übersicht der Termine? Bietest du nicht die kommenden Termine auf einer Seite an?

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 30. Apr 2010, 11:57

Hallo Gold,

Tja, die article-list-advanced ist scho so ein Ding... :mrgreen:

Deine Aufgabenstellung kannst Du durch folgendes Modul "terminkalender_sd_terminliste_gesamt" lösen, dass ist eine (auf die Schnelle erfolgte) Abänderung des Moduls "terminkalender_sd_terminliste". Insofern solltest Du Dich hier auch leichter zurechtfinden.

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
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);

        }
    }
    ?>
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)

GOLD
Beiträge: 71
Registriert: Sa 14. Aug 2004, 22:24
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von GOLD » Fr 30. Apr 2010, 12:30

Hi Markus, meinen besten Dank für das alles. Funktioniert auf Anhieb und ist genau so wie ich mir ein Kalendermodul vorstelle. Wirklich gut :!:

maTTos
Beiträge: 130
Registriert: Fr 27. Jun 2003, 14:14
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von maTTos » Fr 30. Apr 2010, 21:34

Mir ist ein kleines Bedienbarkeitsproblem aufgefallen: Wählt man eine Terminvorschau für einen Tag in einem kommenden Monat aus, so springt die Kalenderansicht wieder auf den aktuellen Monat zurück. Das ist irritierend und man ist gezwungen, erst wieder zu dem Monat zu navigieren, um sich für einen anderen Tag die Vorschau anzusehen.

Ansonsten finde ich den Terminkalender klasse!

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

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Sa 1. Mai 2010, 22:47

Hallo maTTos,

ja, da hast Du recht. Das kann man aber recht einfach beheben. Tausche einfach im Output des Moduls terminkalender_sd

Code: Alles auswählen

echo '<a class="terminkalender_sd_mehrere_termine" href="'.$url.'?idart='.$terminkalender_sd_idart.'&termindatum='.$checkdatum.'">';
gegen

Code: Alles auswählen

echo '<a class="terminkalender_sd_mehrere_termine" href="'.$url.'?idart='.$terminkalender_sd_idart.'&termindatum='.$checkdatum.'&monat_auswahl='.$monat_auswahl.'">';
aus. (Der Code des Output im ersten Posting ist schon angepasst.)

Damit wird der angeblätterte Monat auch beim Anklicken eines Termins übertragen und bleibt erhalten. :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)

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. Sep 2010, 12:41

Nachtrag:

Im letzten Post hatte ich ja eine kleine Korrektur zur Beibehaltung des Monats eingefügt. Natürlich tritt ein ähnliches Problem auf, wenn man in ein anderes Jahr als das aktuelle blättert. Also die Zeile 229

Code: Alles auswählen

echo '<a class="terminkalender_sd_mehrere_termine" href="'.$url.'?idart='.$terminkalender_sd_idart.'&termindatum='.$checkdatum.'&monat_auswahl='.$monat_auswahl.'">';
nochmal etwas erweitern:

Code: Alles auswählen

echo '<a class="terminkalender_sd_mehrere_termine" href="'.$url.'?idart='.$terminkalender_sd_idart.'&termindatum='.$checkdatum.'&monat_auswahl='.$monat_auswahl.'&jahr_auswahl='.$jahr_auswahl.'">';
Damit ist die Sache dann auch behoben :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)

stefan2010
Beiträge: 1
Registriert: Mo 17. Jan 2011, 10:03
Kontaktdaten:

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von stefan2010 » Mo 17. Jan 2011, 10:08

Wie kann man den den Kalender größer machen bzw. welcher Eintrag in der CSS-Datei ist dafür verantwortlich?

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

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Mo 17. Jan 2011, 23:38

Hallo Stefan2010 und willkommen im Forum :D

Die Optik des Kalenders wird durch ein Zusammenspiel verschiedener CSS-Klassen beeinflusst. Es gibt also keine spezielle Klasse, bei der Du festlegen kannst das der Kalender insgesamt und in allen Elementen größer wird.

Um Dich mit den einzelnden Klassen vertrauter zu machen, wäre es sinnvoll sich den Output des Moduls und die entsprechenden class="..." anzuschauen um sie dann in der CSS-Datei einfach einmal hier und da zu verändern. Wenn Du also die Größe der Bereiche für die Datumszahlen ändern möchtest, könntest Du statt

Code: Alles auswählen

td.terminkalender_sd_zelle_standard {
border: 1px solid #999999;
}
zum Beispiel per padding die Zellen schnell vergrößern:

Code: Alles auswählen

td.terminkalender_sd_zelle_standard {
border: 1px solid #999999;
padding: 10px;
}
Dann kannst Du natürlich auch noch die Schriftgröße in den entsprechenden Klassen anpassen oder die Dicke der Rahmen und so weiter und so fort...

Probier einfach mal rum.
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 » Mi 26. Jan 2011, 18:45

Hallo McHubi,

vorerst ein großes Danke für das tolle Modul !
Ich habe folgendes Problem mit dem Modul.
Ich habe besten Gewissen die Anleitung befolgt - und ich war auch recht erfolgreich (denk ich). Jedoch bekomme ich die Termin nicht angezeigt.
Um mal zu verdeutlichen, was ich meine, hänge ich 2 Screenshots dran.

Ich bin mit Contenido leider nicht so erfahren (bzw. kein PHP Guru). Könnt ihr mir helfen?
Irgendwie scheint das Modul die Termin anzuerkennen, jedoch werden sie nicht angezeigt (s. Screenhot). Bei Klick auf "mehr" oder auf einen Tag mit Termin werde ich auf meine Startseite geleitet :(

MFG, Julian
Dateianhänge
modulfehler2.jpg
Dies ist das Ergebnis.
modulfehler2.jpg (13.36 KiB) 11353 mal betrachtet
modulfehler1.jpg
Kategorien und Termine korrekt erstellt oder?
modulfehler1.jpg (61.67 KiB) 11353 mal betrachtet

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

Re: Terminkalender mit Mehrfachterminen und Blätterfunktion

Beitrag von McHubi » Mi 26. Jan 2011, 22:00

Hallo Julian,

willkommen im Forum :D

Ich hab mal versucht den "Fehler" der bei Dir auftritt zu reproduzieren. Mir "gelingt" das, wenn ich im Output des Moduls "terminkalender_sd_terminliste" ab Zeile 190 ff. eine Änderung durchführe. Zwei Zeilen direkt nach Zeile 190 und etwas weiter unten sehen so aus:

Code: Alles auswählen

$headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
...
$teasertext = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
Hier wird festgelegt, dass aus dem CMS-Typ Überschrift (CMS_HTMLHEAD) die Daten für die Anzeige zu ziehen sind. Die 1 steht dabei für die erste Headline und die 2 für die zweite, also die Subheadline. Wenn ich hier statt der 1 und 2 eine 3 und 4 eintrage, habe ich das gleiche Bild wie Du: es wird nur der "mehr"-Button angezeigt. Hier müsstest Du also mal schauen, aus welchem CMS-Typ Du die Daten für die Überschrift ($headline) und den Teaser ($teasertext) ziehen willst. Evtl. hilft es Dir schon weiter, wenn Du bei den Modulen die Outputs von "Headline" (Hier findest Du $sText = "CMS_HTMLHEAD[1]";) und der "Sub_Headline" (da findest Du $sText = "CMS_HTMLHEAD[2]";) anschaust. Steht hier die 1 und 2?

Nächste Hinweismöglichkeit: Schau Dir im Layout oder den Templates an welche CMS-Typen Du in den Artikeln einbindest die in Deiner Terminliste angeteasert werden sollen. Wenn hier die Headline und/ oder Sub_Headline fehlt, kann die Anzeige nicht funktionieren da die Liste keine Daten findet.

Ich habe bei mir auch mal die beiden Kategorien (die in der der Artikel mit dem Terminkalender- und Listenmodul sowie die Kategorie in der die anzuteasernden Terminartikel liegen) geschützt um zu schauen ob es ggf. daran liegt. Das ist jedoch nicht der Fall.

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)

Gesperrt