Neu Kalender - Module 1.05

Hilfe zu Modulen und Tags
Post Reply
piratos

Neu Kalender - Module 1.05

Post by piratos »

Steht bei mir im Downlaodangebot.

XHTML Fehlerbeseitigung  (Ampersandregel).
piratos

Re: Neu Kalender - Module 1.05

Post by piratos »

Gute Idee !

Kann ich machen, aber nicht gleich.
Aus welchem Kalender hast Du das ?
Alex_Leipzig

Kalendertermine per RSS?

Post by Alex_Leipzig »

Hallo Piratos,

wäre es möglich, den Kalender um eine RSS-Funktion zu erweitern? Das wäre wirklich klasse!
piratos

Re: Neu Kalender - Module 1.05

Post by piratos »

Meinst du so etwas wie eine backend - funktion, bei denen die neuesten Termine als xml also für einne rss - reader ausgegeben werden ?
Alex_Leipzig

Re: Neu Kalender - Module 1.05

Post by Alex_Leipzig »

Eher Frontend, oder? Also ein Button neben/unter... dem Kalender oder den entsprechenden Pfad zum Einbinden ins Template - damit Opera und Firefox die entsprechenden RSS-Symbole einblenden.
piratos

Re: Neu Kalender - Module 1.05

Post by piratos »

Das Backend erstellt eine rdf - Datei (siehe z.B. http://www.tagesschau.de/newsticker.rdf) aus den vorhandenen Daten.

Dein Frontend wäre z.B. den Einsatz von Pirss in der cms oder der normale Einsatz eiens Browsers.

Den berühmten XML - Button aus der Erstinstallation der CMS , kannst du vergessen, weil mit dem versucht wird die entsprechende PHP - Datei zu öffnen, die natürlich weder XML noch RSS ist. Das würde auch so bei einer Linksetzung z.B. auf eine backend.php so laufen.

Mein Backend ist bereits fertig und läuft im Test. Es muss entweder in die index.php  oder besser in die include.php eingebunden werden.
Im Default wird die rdf - Datei alle 3600 Sekunden erneuert, aber auch nur, wenn es einen normalen Besucher der betreffenden Website gegeben hat, denn der veranlasst so den Check ob die Cachezeit abgelaufen ist und eine neue rdf - Datei angelegt werden muss.
Wegen der bereits vorhandenen Schreibrechte wird die rdf im Verzeichnis tmp angelegt.
piratos

Re: Neu Kalender - Module 1.05

Post by piratos »

Die Testversion im Ergebnis ist hier zu sehen :  http://piratos.coftware.de/index.php?page=Testseite

Die RDF - Datei in der aktuellen Testversion ist hier http://piratos.coftware.de/tmp/kalender.rdf

Die Scriptdatei backend.php wird in die index.php eingebunden. Um nicht eine volle Instanz von adodb aufzurufen (siehe Thema Speicerüberlauf unter aktuellen Linuxversionen) wird NUR mysql und zwar direkt verwendet. Daher ist das nicht unter postgresql lauffähig. Da ich annehme, dass 99,99% aller Anwender Mysql verwenden, sehe ich das nicht als störend an.

Bis jetzt ist die Steuerung so.
Es gibt folgende Parameter, die vom Anwender anzupassen sind.

$titel="Piratos Testsite";
$link="http://piratos.coftware.de/index.php";
$language="de_de";
$description='Testsite für Freunde von CMSMadeSimple';
$limit=30;
$cachezeit=300;

$link beinhaltet den Standardlink  - jeder Kalendereintrag trägt ihn.

$limit  enthält die Anzahl der aufzubereitenden Datensätze, ausgewertet werden nur Termine größer gleich Tag 0:0.
$cachezeit enthält den Wert der in der Rechnung aktuellertimeststamp plus timestamp der RDF- Datei zum Vergleich herangezogen wird.
Der Vergleich entscheidet, wann eine neue RDF - Datei geschrieben wird.

Da die Einbindung in der index.php erfolgt, sorgen die Besucher selbst für eine Aktualisierung der RDF - Datei, wenn die Auswertung der Timestamps es so bestimmt.

Es gibt nur einen Standardlink zur Homepage, da Kalender als Modul inline läuft, Link zum speziellen Termin ist auch nicht erfordelrich, weil die Details angezeigt werden - mehr gibt es da also nicht zu sehen.

Zur Zeit fummel ich noch ein wenig an der RDF - Datei herum. Die ist zwar 100% nach Norm, aber z.B. Firefox hat da ein Problem bei einbinden als News - Konto mit. Werde wahrscheinlich auf ein verkürztes Format gehen (wie bei der Tagesschau.de).
Alex_Leipzig

Re: Neu Kalender - Module 1.05

Post by Alex_Leipzig »

Super! Das ist ziemlich genau das, was ich mir vorgestellt hatte. Details braucht's, wie du gesagt hast, nicht, nur eben die knappen Infos. Danke!
piratos

Neu Kalender - Module 1.06

Post by piratos »

Update fertig, downloadangebot aktualisiert, anleitung in der readme.txt im download.

Axel : es werden die Details angezeigt um den Link zu sparen.
piratos

Re: Neu Kalender - Module 1.05

Post by piratos »

Achtung  das Downlaodangebot ab jetzt enthält eine backend - Version die direkt von Newsreadern verwendet wird.

Es wird keine RDF - Datei mehr geschrieben und somit werden immer die aktuellsten Daten aus dem kalender angeboten.

Wer die alte backend verwendet sollte vorher den include Eintrag aus der index.php entfernen.

Ein include ist nicht mehr erforderlich, im Gegenteil  nmit dieser Version schädlich !!
Piratos

Re: Neu Kalender - Module 1.05

Post by Piratos »

Habe ich auf die todo liste gesetzt, aber ich habe wenig Zeit.

Bekomme in den nächsten 2 Tagen einen Programmierauftrag für eine Maschinensteuerung und das hat Vorrang.
Piratos

Re: Neu Kalender - Module 1.05

Post by Piratos »

Kalender hat bei mir 0 Priorität, wenn ich Zeit habe will ich da eine Version mit Smarty - Templates draus machen.
evoluzzer
Forum Members
Forum Members
Posts: 27
Joined: Thu May 19, 2005 9:11 pm

Re: Neu Kalender - als CSS-Version

Post by evoluzzer »

Hi zusammen,

ich habe mir mal die Arbeit gemacht und die Kalenderausgabe in HTML und CSS getrennt.

Also ihr müssstet um davon in Genuss kommen eine Stylesheet erstellen, das mit Template verbinden und folgende Klassen einfügen:

Code: Select all

.kal-prev{}
.kal-monat{}
.kal-next{}
.kal-monat{
  text-align: center;
}

table.kal_gr_tabelle{
   border:1px;
   border-style: solid; 
   border-color: #fff;
   width:100%;
   text-align: center;
}

/*Weekday*/
.kal_gr_tabelle{
  text-align: center;
  width:14%; 
  vertical-align:top; 
  height:15px; 
  font-size: 2;
  color: #fff;
}

.kal_gr_tabelle_th_wochenende{
  border: 1px;
  border-style: solid; 
  border-color: #fff;
  background-color:#800000;
}
.kal_gr_tabelle_th_werktag{
  border: 1px;
  border-style: solid; 
  border-color: #fff;
  background-color:#000080;
}

/*Days*/
.kal_gr_tabelle_td_blank{
  
}
.kal_gr_tabelle_td_ohnetermin{
  border: 1px;
  border-style: solid; 
  border-color: #fff;
  vertical-align:top;
}

.kal_gr_tabelle_td_termin{
  border: 1px;
  border-style: solid; 
  border-color: #fff;
}
desweiteren müsste ihr folgende Datei aus dem Kalendermodul editieren:

Kalender/Kalender.module.php und die Funktion  generate_calendar durch diese ersetzen:

Code: Select all

function generate_calendar($year, $month, $days = array(), $month_href = NULL, $first_day = 0, $pn = array()){
    $first_of_month = gmmktime(0,0,0,$month,1,$year);
    $day_names = array();
    $n=0;
    while ($n<=6){
      $day_names[$n] = $this->lang['d'.$n];
      $n++;
     }
    list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
    $month_name=$this->lang['m'.date('n', $first_of_month)];
    $weekday = ($weekday + 7 - $first_day) % 7;
    $title   = $month_name.' '.$year;
  @list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable
    if($p) $p = '<span class="kal-prev">'.($pl ? '<a href="'.htmlspecialchars($pl).'">'.$p.'</a>' : $p).'</span> ';
    if($n) $n = ' <span class="kal-next">'.($nl ? '<a href="'.htmlspecialchars($nl).'">'.$n.'</a>' : $n).'</span>';
    $calendar2='<div class="kalender"><div class="kal-monat">'.$p.($month_href ? '<a href="'.$month_href.'">'.$title.'</a>' : $title).$n."</div>\n";
    $calendar= '<table class="kal_gr_tabelle" summary="Kalenderausgabe"><tr>';

        $w=0;
        foreach($day_names as $d){

         if ($w==0 OR $w==6) {
           $calendar .= '<th class="kal_gr_tabelle_th_wochenende">'.$d.'</th>';
           }
         else
          {
            $calendar .= '<th class="kal_gr_tabelle_th_werktag">'.$d.'</th>';
          }
         $w++;
        }

        $calendar .= "</tr>\n<tr>";
           
    $w=0;

    while($w<$weekday) {$calendar .= '<td  class="kal_gr_tabelle_td_blank" ></td>';$w++;}

    for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){
        if($weekday == 7){
            $weekday   = 0;
            $calendar .= "</tr><tr>";
        }
        if(isset($days[$day]) and is_array($days[$day])){
            @list($link, $classes, $content, $additional_content) = $days[$day];
            if(is_null($content))  $content  = $day;
            $calendar .= '<td class="kal_gr_tabelle_td_termin">'.
                ($link ? '<a href="'.$link.'">'.$content.'</a>' : $content);

            if(!is_null($additional_content)) // RKA addition
            	$calendar .= $additional_content;
            $calendar .= '</td>';
        }
        else $calendar .= '<td class="kal_gr_tabelle_td_ohnetermin">'.$day.'test</td>';
    }
    $w=$weekday;
    while($w <7) {$calendar .= '<td class="kal_gr_tabelle_td_blank"> </td>';$w++;}

    $calendar=str_replace('&','&',$calendar);
    $calendar=str_replace('&nbsp;',' ',$calendar);

    return $calendar2.$calendar."</tr>\n</table>\n</div>\n";
}
Im grossen und ganzen sollte es das gewesen sein. Umgesetzt wurde nur der HTML-Layout in CSS. Auch funktioniert das Ganze nur für die Monatsansicht und nicht für die Listenansicht.

Gruß
Christoph
Piratos

Re: Neu Kalender - Module 1.05

Post by Piratos »

gmmktime
Wie man unschwer erkennen kann bezieht sich das auf eine alte Version.

Damit das auch alles unter 4.4.X läuft  gmmktime  auf mktime ändern.
evoluzzer
Forum Members
Forum Members
Posts: 27
Joined: Thu May 19, 2005 9:11 pm

Re: Neu Kalender - Module 1.05

Post by evoluzzer »

HI,

ja klar ist die Version 1.06. Mir ist da noch ein Fehler aufgefallen und zwar um Zeile 1119 quasi der Else Zweig für Tag ohne Termine, so zumindest mein Verständnis. Fehlt das < für die Zelle und das Kalendermodul springt immer in den if-zweig nie in den else Zweig auch ohne Termin für den Tag. Oder hab ich den code falsch interpretiert?

Gruß
Christoph
Last edited by Anonymous on Fri Jan 27, 2006 4:53 pm, edited 1 time in total.
Post Reply

Return to “Module und Tags”