Neu Kalender - Module 1.05
Neu Kalender - Module 1.05
Steht bei mir im Downlaodangebot.
XHTML Fehlerbeseitigung (Ampersandregel).
XHTML Fehlerbeseitigung (Ampersandregel).
Re: Neu Kalender - Module 1.05
Gute Idee !
Kann ich machen, aber nicht gleich.
Aus welchem Kalender hast Du das ?
Kann ich machen, aber nicht gleich.
Aus welchem Kalender hast Du das ?
Kalendertermine per RSS?
Hallo Piratos,
wäre es möglich, den Kalender um eine RSS-Funktion zu erweitern? Das wäre wirklich klasse!
wäre es möglich, den Kalender um eine RSS-Funktion zu erweitern? Das wäre wirklich klasse!
Re: Neu Kalender - Module 1.05
Meinst du so etwas wie eine backend - funktion, bei denen die neuesten Termine als xml also für einne rss - reader ausgegeben werden ?
Re: Neu Kalender - Module 1.05
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.
Re: Neu Kalender - Module 1.05
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.
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.
Re: Neu Kalender - Module 1.05
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).
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).
Re: Neu Kalender - Module 1.05
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!
Neu Kalender - Module 1.06
Update fertig, downloadangebot aktualisiert, anleitung in der readme.txt im download.
Axel : es werden die Details angezeigt um den Link zu sparen.
Axel : es werden die Details angezeigt um den Link zu sparen.
Re: Neu Kalender - Module 1.05
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 !!
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 !!
Re: Neu Kalender - Module 1.05
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.
Bekomme in den nächsten 2 Tagen einen Programmierauftrag für eine Maschinensteuerung und das hat Vorrang.
Re: Neu Kalender - Module 1.05
Kalender hat bei mir 0 Priorität, wenn ich Zeit habe will ich da eine Version mit Smarty - Templates draus machen.
Re: Neu Kalender - als CSS-Version
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:
desweiteren müsste ihr folgende Datei aus dem Kalendermodul editieren:
Kalender/Kalender.module.php und die Funktion generate_calendar durch diese ersetzen:
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
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;
}
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(' ',' ',$calendar);
return $calendar2.$calendar."</tr>\n</table>\n</div>\n";
}
Gruß
Christoph
Re: Neu Kalender - Module 1.05
Wie man unschwer erkennen kann bezieht sich das auf eine alte Version.gmmktime
Damit das auch alles unter 4.4.X läuft gmmktime auf mktime ändern.
Re: Neu Kalender - Module 1.05
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
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.