mod_calendar

Diskussion zu nicht so umfangreichen Modulen und Start-Up für neue Module. Ansonsten bitte die speziellen Kategorien benutzen!
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

mod_calendar

Beitrag von MarkusR »

Da ich nun schon einige Versuche beobachtet habe, bei denen umfangreiche Veranstaltungskalender-Systeme in ConPresso-Auftritten integriert (oder auch nicht) wurden, nur um einen kleinen Kalender abbilden zu können statt einer Terminliste, habe ich ein kleines PHP-Script um die Möglichkeit zum Auslesen von ConPresso-Inhalten erweitert.

Dabei können beliebige Rubriken als Grundlage dienen, die Felder für das Veranstaltungsdatum frei gewählt werden (Meta-Felder oder Content-Textfelder) und das Design mittels CSS angepasst werden.

Das ist nur mal eine Vorschau (daher auch kein Download). Der Kalender funktioniert, nur ist es noch kein Modul, d.h. die Einstellungen geschehen derzeit im Quellcode und nicht über Moduleinstellungen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Klingt sehr interessant. Hast du auch die Möglichkeit bedacht, dass es mehrere Artikel für ein Datum geben kann?
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Nicht wirklich, dennn ich weiß nicht, wie zwei oder mehr Links auf einem Kalendertag liegen könnten. Das ginge dann nur mit einem JS-Framework.
Vielleicht müßte es eine alternative Verlinkung auf eine Suche statt direkt auf die Artikel geben...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Hier mal eine erste beta-Version.

Es gibt jetzt ein Backend für die Einstellungen.
Außerdem kann man als Zielseite zwischen Rubrik-, Artikel- und einer Suchseite wählen.
Die Suchseite kann man nutzen, wenn man mehr als einen Termin pro Tag hat.

Anwendung: In den Einstellungen gibt man das Feld ein, in dem das Veranstaltungsdatum steht und gibt das Datumsformat an.

Den Kalender kann man nun entweder mittels

Code: Alles auswählen

<?php echo getCalendar(); ?>
oder in einem Seitentemplate mittels

Code: Alles auswählen

<!-- Function: GetCalendar; -->
ausgeben.

Für die Formatierung ergänzt man entweder seine eigene CSS-Datei oder bindet zusätzlich ../mod_calendar/cal.css ein.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Und hier gleich eine beta 2

Einzige Änderung: Es lassen sich mehrere Kalender einsetzen, denen eine Differenz in Monaten mitgegeben werden kann.

Seitentemplates:

Code: Alles auswählen

<!-- Function: GetCalendar; -->
<!-- Function: GetCalendar; 1; -->
<!-- Function: GetCalendar; 2; -->
PHP:

Code: Alles auswählen

<?php 
echo getCalendar();
echo getCalendar(1);
echo getCalendar(2); 
?>
erzeugt untenstehendes erstes Bild. Das lässt sich beliebig erweitern.

Z.B. ins Negative (max +/- 12 Monate) und nebeneinanderstehend

Code: Alles auswählen

<div style="float:left"><!-- Function: GetCalendar; -2; --></div>
<div style="float:left"><!-- Function: GetCalendar; -1; --></div>
<div style="float:left"><!-- Function: GetCalendar; --></div>
<div style="float:left"><!-- Function: GetCalendar; 1; --></div>
<div style="float:left"><!-- Function: GetCalendar; 2; --></div>
siehe zweites Bild.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Im Rahmen eines neuen Projektes ist der Kalender noch etwas gepimpt worden. Neben XHTML-Kompatibilität gibt es jetzt eine intelligentere Umsetzung bei mehreren Terminen an einem Kalendertag.
Zum einen werden alle Termine schon im Kalender gezeigt (title-Tag), zum anderen kann man zwei neue Varianten wählen, z.B. "Automatisch (Such- und Artikelseite)" verlinkt bei nur einem Termin auf die Artikelseite, bei mehreren auf die moduleigene Suchseite (die als Grundlage einer Rubrik genutzt werden sollte).
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Wegen Firefox und PHP 5.4 wurde der Kalender nochmal überarbeitet und ist jetzt die 4.1
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Neue Version 4.2:
- Blättern mittels AJAX (asynchrone Datenübertragung)
- endloses Weiterblättern (statt bisher +/-12)
- Einbinden "fremder" Termine aus beliebigen Modulen wie mod_appointments, mod_eventDB, mod_vacancy etc. mittels calendar_handler

Wie geht das mit den fremden Terminen?
1.) im eigenen Modul definiert man in common-module.inc.php einen calendar_handler

Code: Alles auswählen

$hdlr_calendar_content['test']  = array('include: '.CPO_BASEDIR.'mod_testmodul/test_appointments.inc.php');
2.) in der so für die Kalendererzeugung referenzierten Datei füttert man nun das Array $calData mit den Werten für title, rubric_id, nr, url, und calDate

Code: Alles auswählen

	$calData['Erster Weihnachtsfeiertag'] = array(
		'title'     => 'Erster Weihnachtsfeiertag',
		'rubric_id' => '',
		'nr'        => '',
		'url'       => 'http://www.conpresso4.de',
		'calDate'   => date("Y").'-12-25 00:00:00'
		);
bei Nutzung von rubric_id und nr wird ein ConPresso-Artikel verlinkt, bei Nutzung von url ein externer Artikel bzw. eine spezielle URL.
Eine Datei test_appointsments.inc.php wird mitgeliefert.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
philosapiens
ConPresso-Newbie
Beiträge: 13
Registriert: 22.06.2016 18:22
Wohnort: Berlin

Beitrag von philosapiens »

Hallo zusammen,

erst einmal vielen Dank an MarkusR für das schicke Modul!

Ich schau mir nun schon die Augen blutig, daher frage ich jetzt einfach:

Wenn ich die Tage mit Terminen farblich kennzeichnen möchte, welche class oder id ist das dann in der cal.css?

Und gibt es eigentlich eine Eingabemöglichkeit über das Backend?

Momentan erstelle ich einen Artikel in der Rubrik Termine und gebe dem das Verfallsdatum vom Termin. Geht aus so, wäre dann aber weg, wenn der Tag vorüber ist. Möchte ich nicht unbedingt.

Danke mal wieder im voraus für die Mühe und Geduld mit meinen Fragen. :wink:
Der höchste Lohn für unsere Bemühungen ist nicht das, was wir dafür bekommen, sondern das, was wir dadurch werden.

Mein nebenberufliches Hobby http://idealseiten.de

Und hier meine erste Conpresso-Projektseite:
www.insulaner.cidsnet.de/conpresso4/
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

.calDayEmpty sind die Tage ohne Termin (empty)
.calDayApp sind die Tage mit Termin (appointment)
.calDayToday ist der heutige Tag (today)

Code: Alles auswählen

td.calDayEmpty{
    background: #ccc;
}
td.calDayApp{
    background: #ddffdd;
	cursor: pointer;
}
td.calDayToday{
    background: #ffdddd;
}
Wenn die vergangenen Termine nicht verschwinden sollen könnte das hier gehen:

in calendar_appointments.inc.php einfach BEIDE Vorkommen von

Code: Alles auswählen

AND verfallsdatum>='".date('Y-m-d H:i:s', time())."'
entfernen.

Ungetestet!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
philosapiens
ConPresso-Newbie
Beiträge: 13
Registriert: 22.06.2016 18:22
Wohnort: Berlin

Beitrag von philosapiens »

Hallo MarkusR,

danke für Deine mal wieder sehr schnelle Antwort.

Die drei classes hatte ich auch schon im Visier. Doch leider ändert sich da nix, wenn ich andere Farben definiere. Habe ich den Kalender falsch eingebunden?
Der höchste Lohn für unsere Bemühungen ist nicht das, was wir dafür bekommen, sondern das, was wir dadurch werden.

Mein nebenberufliches Hobby http://idealseiten.de

Und hier meine erste Conpresso-Projektseite:
www.insulaner.cidsnet.de/conpresso4/
Benutzeravatar
philosapiens
ConPresso-Newbie
Beiträge: 13
Registriert: 22.06.2016 18:22
Wohnort: Berlin

Beitrag von philosapiens »

Aktuelle cal.css:

Code: Alles auswählen

...
td.calDayEmpty{
    background: #ccc;
}
td.calDayApp{
    background: #aaaaff;
	cursor: pointer;
}
td.calDayToday{
    background: #ffaaaa;
...
Der höchste Lohn für unsere Bemühungen ist nicht das, was wir dafür bekommen, sondern das, was wir dadurch werden.

Mein nebenberufliches Hobby http://idealseiten.de

Und hier meine erste Conpresso-Projektseite:
www.insulaner.cidsnet.de/conpresso4/
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Wenn jetzt noch die cal.css auf der Seite benutzt würde dann könnte man ggf. was sehen...

Code: Alles auswählen

<link href="../mod_calendar/cal.css" rel="stylesheet" type="text/css" />
Zuletzt geändert von MarkusR am 23.06.2016 21:46, insgesamt 1-mal geändert.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
philosapiens
ConPresso-Newbie
Beiträge: 13
Registriert: 22.06.2016 18:22
Wohnort: Berlin

Beitrag von philosapiens »

Wenn ich mir alle verwendeten CSS-Dateien der Seite anzeigen lasse, so wird dort die cal.css nicht angezeigt.

Muss ich die noch irgendwo einbinden? :oops:
Der höchste Lohn für unsere Bemühungen ist nicht das, was wir dafür bekommen, sondern das, was wir dadurch werden.

Mein nebenberufliches Hobby http://idealseiten.de

Und hier meine erste Conpresso-Projektseite:
www.insulaner.cidsnet.de/conpresso4/
Benutzeravatar
philosapiens
ConPresso-Newbie
Beiträge: 13
Registriert: 22.06.2016 18:22
Wohnort: Berlin

Beitrag von philosapiens »

Sorry, nun klappt es besser! :oops: :oops: :oops:
Der höchste Lohn für unsere Bemühungen ist nicht das, was wir dafür bekommen, sondern das, was wir dadurch werden.

Mein nebenberufliches Hobby http://idealseiten.de

Und hier meine erste Conpresso-Projektseite:
www.insulaner.cidsnet.de/conpresso4/