# Kalender - Wochentagname in einem Feld via eTemplate

**URL:** <http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558>\
**Category:** eGW-german\
**Created:** [November 4, 2007, 3:06am UTC](http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558 "2007-11-04T03:06:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ShortD](http://discourse.egroupware.org/letter_avatar_proxy/v4/letter/s/8797f3/32.png) [@ShortD](http://discourse.egroupware.org/u/ShortD)\
**Post date:** [November 4, 2007, 3:06am UTC](http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558/1 "2007-11-04T03:06:02Z")

</div>

Hallo,

erstmal Danke für die großartig gelungene groupware.  
Infolog, Adressbuch, Dateiverwaltung und Kalender machen das Leben doch sehr viel leichter im Alltag!

Hier meine Frage:  
Ich habe den Kalender via eTemplate ein wenig angepaßt. (neue Spalten (KFZ, Technische Leitung, Sonstiges) hinzugefügt)  
Wird auch in die DB geschrieben und gelesen - alles super.  
Nun versuche ich aus der Listenansicht einen “Arbeitsplan” zu machen, der nur bestimmte Spalten enthält. Das habe ich auch soweit alles schon gemacht.  
In der ersten Spalte steht das Start- und das Enddatum, allerdings hätte ich gerne noch eine Spalte davor, in der nur der Wochentag (Montag, Dienstag, etc.) erscheint.  
Ich hab herusgefunden, dass eine Spalte vom Typ “Datum” mit “${row}[start]” als Name und “,16” als “Option” das Datum mit dem Wochentag davor ausgibt.  
Wie aber kann ich nur den Wochentagnamen bekommen? Gibt es dafür auch eine Option?  
Und wenn ja, gibt es dazu noch eine Möglichkeit die Samstage und Sonntage farblich anders zu gestalten als den Rest der Woche?

Freue mich über jede hilfreiche Antwort

Gruß  
Shorty

P.S.:Gibt es eine Dokumentation über die Optionen die “übergeben” werden können?  
(wie z.B.: ,noPrint ,noShow ,noWrap etc.)

---

<div class="post-metadata">

**Author:** ![Ralf\_Becker\_6](http://discourse.egroupware.org/user_avatar/discourse.egroupware.org/ralf_becker_6/32/1306_2.png) [@Ralf\_Becker\_6](http://discourse.egroupware.org/u/Ralf_Becker_6)\
**Post date:** [November 4, 2007, 9:35am UTC](http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558/2 "2007-11-04T09:35:07Z")

</div>

Hi,

ShortD schrieb:

> Hallo,
> 
> erstmal Danke für die großartig gelungene groupware.  
> Infolog, Adressbuch, Dateiverwaltung und Kalender machen das Leben doch sehr  
> viel leichter im Alltag!

🙂

> Hier meine Frage:  
> Ich habe den Kalender via eTemplate ein wenig angepaßt. (neue Spalten (KFZ,  
> Technische Leitung, Sonstiges) hinzugefügt)  
> Wird auch in die DB geschrieben und gelesen - alles super.  
> Nun versuche ich aus der Listenansicht einen “Arbeitsplan” zu machen, der  
> nur bestimmte Spalten enthält. Das habe ich auch soweit alles schon gemacht.  
> In der ersten Spalte steht das Start- und das Enddatum, allerdings hätte ich  
> gerne noch eine Spalte davor, in der nur der Wochentag (Montag, Dienstag,  
> etc.) erscheint.  
> Ich hab herusgefunden, dass eine Spalte vom Typ “Datum” mit "${row}[start]"  
> als Name und “,16” als “Option” das Datum mit dem Wochentag davor ausgibt.  
> Wie aber kann ich nur den Wochentagnamen bekommen? Gibt es dafür auch eine  
> Option?

Nein, bisher nicht.

Du mußt den dow (day of week) Wert in der get\_rows Methode zB. mittels  
date() berechnen und in die entsprechende Zeile schreiben. Dann kannst  
du ein readonly Wochentagsauswahl benutzen um es anzuzeigen.

> Und wenn ja, gibt es dazu noch eine Möglichkeit die Samstage und Sonntage  
> farblich anders zu gestalten als den Rest der Woche?

Geht so ähnlich: Du trägst die für jede Zeile in der get\_rows Methode,  
abhänig vom Wochentag eine css Klasse ein. Die verwendest du dann im  
Template statt der dort eingetragen “row” (2 Farben abwechselned).

> Freue mich über jede hilfreiche Antwort
> 
> Gruß  
> Shorty
> 
> P.S.:Gibt es eine Dokumentation über die Optionen die “übergeben” werden  
> können?  
> (wie z.B.: ,noPrint ,noShow ,noWrap etc.)

Das sind einfache CSS Klassen aus calendar/templates/default/app.css

## Ralf

Ralf Becker  
eGroupWare Training & Support ==\> [http://www.egroupware-support.de](http://www.egroupware-support.de)  
Outdoor Unlimited Training GmbH [[www.outdoor-training.de](http://www.outdoor-training.de)]  
Handelsregister HRB Kaiserslautern 3587  
Geschäftsführer Birgit und Ralf Becker  
Leibnizstr. 17, 67663 Kaiserslautern, Germany  
Telefon +49 (0)631 31657-0

* * *

This [SF.net](http://SF.net) email is sponsored by: Splunk Inc.  
Still grepping through log files to find problems? Stop.  
Now Search log events and configuration files using AJAX and a browser.  
Download your FREE copy of Splunk now \>\> [http://get.splunk.com/](http://get.splunk.com/)

* * *

egroupware-german mailing list  
[egroupware-german@lists.sourceforge.net](mailto:egroupware-german@lists.sourceforge.net)  
[https://lists.sourceforge.net/lists/listinfo/egroupware-german](https://lists.sourceforge.net/lists/listinfo/egroupware-german)

---

<div class="post-metadata">

**Author:** ![ShortD](http://discourse.egroupware.org/letter_avatar_proxy/v4/letter/s/8797f3/32.png) [@ShortD](http://discourse.egroupware.org/u/ShortD)\
**Post date:** [November 5, 2007, 11:47am UTC](http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558/3 "2007-11-05T11:47:35Z")

</div>

Hi,

Danke für die schnelle Antwort.

> [@](#):
>
> Du mußt den dow (day of week) Wert in der get\_rows Methode zB. mittels  
> date() berechnen und in die entsprechende Zeile schreiben. Dann kannst  
> du ein readonly Wochentagsauswahl benutzen um es anzuzeigen.

Das mit einem readonly Wochentagsauswahlfeld zu machen hatte ich mir schon gedacht, und es ehrlich gesagt schon (natürlich) ohne Erfolg versucht, da ich den dow wohl erst selbst “herausfinden” muß.

Hab mich mit einigen Programmiersprachen schon auseinandergesetzt, allerdings noch nicht so wirklich mit php.  
Habe das gesamte egroupware-Verzeichnis nach einer get\_rows-Methode durchsucht, allerdings taucht dieser Begriff nur in der eTemplate Dokumentation auf.  
Hast Du vielleicht noch einen weiteren Hinweis wie ich die Berechnung genau machen kann?  
Ändere ich etwas im Code, oder geht es von eTemplate aus?  
get\_rows im Feld “Name” oder “Optionen”!?!  
Eine neue Funktion schreiben und via eTemplate aufrufen!?!

> [@](#):
>
> Geht so ähnlich: Du trägst die für jede Zeile in der get\_rows Methode,  
> abhänig vom Wochentag eine css Klasse ein. Die verwendest du dann im  
> Template statt der dort eingetragen “row” (2 Farben abwechselned).

Auf der suche nach der get\_rows-Methode… 🙂

THX

Shorty

---

<div class="post-metadata">

**Author:** ![ShortD](http://discourse.egroupware.org/letter_avatar_proxy/v4/letter/s/8797f3/32.png) [@ShortD](http://discourse.egroupware.org/u/ShortD)\
**Post date:** [November 6, 2007, 12:07am UTC](http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558/4 "2007-11-06T00:07:01Z")

</div>

Hallo,

ich hab’s denn doch gefunden…

habe in der class.uilist.inc.php folgenden code hinzugefügt:

$mweek = array(“Sonntag”,“Montag”,“Dienstag”,“Mittwoch”,“Donnerstag”,“Freitag”,“Samstag”);  
$dow = date(“w”, $event[‘start’]);  
$event[‘mdow’] = “$mweek[$dow]”;

Das Feld ist kein Wochentag-Auswahlfeld mit Schreibschutz, sondern ein einfaches Textfeld.

Wenn ich das Wochentagfeld eingesetzt habe, bekam ich zwei Tage angezeigt, von denen keiner der gesuchte Wochentag war.

Jetzt brauche ich “nur” noch die Lösung des CSS finden.

Gruß

Shorty

---

<div class="post-metadata">

**Author:** ![ShortD](http://discourse.egroupware.org/letter_avatar_proxy/v4/letter/s/8797f3/32.png) [@ShortD](http://discourse.egroupware.org/u/ShortD)\
**Post date:** [November 11, 2007, 8:56pm UTC](http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558/5 "2007-11-11T20:56:40Z")

</div>

Hi,

Ich habe versucht das zu tun, was du beschrieben hast, aber leider ohne Erfolg…  
Ralf Becker-3 wrote:

> Geht so ähnlich: Du trägst die für jede Zeile in der get\_rows Methode,  
> abhänig vom Wochentag eine css Klasse ein. Die verwendest du dann im  
> Template statt der dort eingetragen “row” (2 Farben abwechselned).

Ich habe in eTemplate unter “Attribute der Tabellenzeile” “mW” (für ‘myWeek’) als “Class” eingetragen.

Allerdings verstehe ich nicht ganz wie ich jedem Tag eine andere Klasse zuweisen kann.

in “app.css” habe ich Folgendes hinzugefügt: (angelehnt an calTimeRowOff)

.mW{  
/\* background-color: silver; \*/  
background-color: #FFFFFF;  
}

.mW,.mWE{  
background-color: #FF0000;  
}

Eine Abfrage ist ja eigentlich auch nicht so schwierig:  
Da ich den $dow ja schon habe (siehe vorheriges Posting) nutze ich einfach switch um…tja…wie die Klasse zuzuweisen?  
Da ich im Template als Class “mW” eingetragen habe, werden alle Reihen in Stil “mW” (also weiß) dargestellt.  
Wenn der $dow nun 0 oder 6 (Sonntag oder Samstag) ist, würde ich gerne die “mWE” (myWeekEnd) zuweisen. Aber wie?

switch ($dow) {  
case 0:  
…  
break;  
case 6:  
…  
break;  
}

Danke im Vorraus für einen Tipp

Shorty

---

<div class="post-metadata">

**Author:** ![ShortD](http://discourse.egroupware.org/letter_avatar_proxy/v4/letter/s/8797f3/32.png) [@ShortD](http://discourse.egroupware.org/u/ShortD)\
**Post date:** [November 12, 2007, 6:10pm UTC](http://discourse.egroupware.org/t/kalender-wochentagname-in-einem-feld-via-etemplate/20558/6 "2007-11-12T18:10:56Z")

</div>

Tach,

> [@](#):
>
> Jetzt brauche ich “nur” noch die Lösung des CSS finden.

Habe es nach unzähligen Versuchen hinbekommen und der Vollständigkeit halber (gibt nichts schlimmeres als "Danke ich hab’s selbst herausgefunden’ in einem Forumals letzten Post) hier meine Lösung.

Habe im app.css Folgende Teile hinzugefügt:

.Monday{  
background-color: #FFFFFF;  
}  
.Tuesday{  
background-color: #FFFFFF;  
}  
.Wednesday{  
background-color: #FFFFFF;  
}  
.Thursday{  
background-color: #FFFFFF;  
}  
.Friday{  
background-color: #FFFFFF;  
}  
.Saturday{  
background-color: #DDDDDD;  
}  
.Sunday{  
background-color: #CCCCCC;

Im Template habe ich als “Class” folgendes eingetragen:

$row\_cont[mdow]

Damit geht es denn nun endlich.

In Abänderung zu meinem vorigen Post, habe ich für die Wochentagberechnung das Array mit den englischen Wochentagnamen gefüllt, da sie ja von egroupware übersetzt werden.  
Sieht also so aus:

$mweek = array(“Sunday”,“Monday”,“Tuesday”,“Wednesday”,“Thursday”,“Friday”,“Saturday”);  
$dow = date(“w”, $event[‘start’]);  
$event[‘mdow’] = “$mweek[$dow]”;

Falls es jemand ebenfalls ändern möchte, die drei Zeilen habe ich in class.uilist.inc.php (im Verzeichnis /calendar/inc) ab Zeile 290 eingefügt.

Weiß nicht, ob es die eleganteste Lösung ist, aber sie funktioniert.

Gruß  
Shorty
