Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 01. März 2015 16:31
- Cherry
- arbeitet mit CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 529
[GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Hallo,
In der CGCalendar Version 14.x gibt es ja die Möglichkeit den Kategorien Farben für Hintergrund und Schriftfarbe zuzuweisen und diese dann mit dem jeweiligen Event auch im Frontend ausgeben zu lassen. Soweit, so gut. Das klappt auch prinzipiell. Wie aber könnte man die Farbe einer bestimmten Kategorie auslesen? Das wäre halt dann hilfreich, wenn ein Event mehreren Kategorien angehört. Per get_template_vars komme ich leider nicht weiter. Ich erhalte nur immer die Farben des Events, aber nicht die der zugehörigen Kategorie.
Hat das schon mal jemand probiert und eine Idee für mich?
Beitrag geändert von Cherry (06. März 2015 20:45)
Offline
#2 04. März 2015 22:55
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Schaffst du es denn, alle Kategorien auszulesen, denen ein Eintrag angehört?
Offline
#3 05. März 2015 10:55
- Cherry
- arbeitet mit CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 529
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Die Kategorien habe ich.
Mit deren Hilfe könnte man halt die Farben eindeutig zuweisen, was über das Event nicht geht. Ein Event kann mehreren Kategorien angehören, die jeweils eine andere Farbe bekommen. Leider ist nicht einmal die Farbausgabe in Backend und Frontend konsistent. Also muss ich mir was einfallen lassen. Momentan habe ich das statisch im css gelöst. Das heißt aber, dass ich die Farbzuweisung an zwei Stellen pflegen muss. (Kalender-Backend und css). Nicht optimal, geht aber erst mal. So oft werde ich die Farben ja auch nicht ändern.
Bin dabei mir per UDT was zusammen zu knobeln. Weiß aber noch nicht ob's was wird. Wenn ja, stelle ich's hier ein.
Offline
#4 05. März 2015 20:23
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Per get_template_vars komme ich leider nicht weiter.
Hast du die erweiterte Variante im Einsatz?
Offline
#5 06. März 2015 11:40
- Cherry
- arbeitet mit CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 529
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Ja hab's auch damit probiert.
Das "Problem" ist, dass man die Farbe über $event.fgcolor bzw $event.bgcolor bekommt.
Das funktioniert ja auch solange jedes Event nur einer Kategorie angehört. Praktischer wäre aber $event.category.fgcolor oder so ähnlich.
Die Farbe wird ja in der DB auch bei der Kategorie hinterlegt und nicht beim Event ( was ja auch logisch ist):
category_id | category_name | category_order | category_bgcolor | category_fgcolor
CG hat sich da was Schickes ausgedacht .. nur leider noch nicht zu Ende gedacht. Leider ist das mit den Feature Requests ja auch so ne Sache, wenn man aus D kommt.
Na ich werd mal weiter schauen, was sich per UDT machen lässt.
Offline
#6 07. März 2015 16:07
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Genau darauf bezog sich meine Frage
Schaffst du es denn, alle Kategorien auszulesen, denen ein Eintrag angehört?
Anders formuliert ... kannst du dir im Event-Detail anzeigen lassen, welchen Kategorien dieser Event angehört? Falls ja, mit welcher Variable?
Offline
#7 07. März 2015 19:34
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Ich hab mir mal den Quellcode angeschaut.
Für jeden Event werden alle zugehörigen Kategorien ermittelt.
Hat eine Kategorie eine Farbe, wird diese Farbe dem Event zugewiesen.
Und das war's dann.
Egal ob da noch andere Kategorien/Farben kommen.
Der Event selber hat ein Array mit den Namen seiner Kategorien {$event.category_names}.
Zusätzlich hat er noch ein Array mit den Kategorie IDs {$event.categories}.
Die Kategorie IDs kann man an einen UDT übergeben, sich mit Hilfe von CGCalendar die Kategorien holen und Smarty zuweisen:
/* Code als UDT unter "get_cgc_evecats" speichern */
$categories = array();
foreach($params['categories'] as $catid)
{
$categories[$catid] = \CGCalendar\category::load($catid);
}
$smarty =& cmsms()->GetSmarty();
$smarty->assign('cgc_evecats', $categories);
Und im Template:
{get_cgc_evecats categories=$event.categories}
{foreach from=$cgc_evecats item="cat"}
{$cat.bgcolor}
{/foreach}
(Hab's nicht getestet, aber ich denke, man sieht worauf es hinauslaufen soll)
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#8 07. März 2015 20:42
- Cherry
- arbeitet mit CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 529
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Vielen Dank erst mal dafür.
Ich bekomme dabei folgende Fehlermeldung. Komme leider nicht drauf, was die mir sagen will.
Warning: Invalid argument supplied for foreach() in ....../lib/classes/class.usertagoperations.inc.php(265) : eval()'d code on line 4
Offline
#9 07. März 2015 21:06
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
Hab's gerade getestet.
CMSms 1.11.13
CGCalendar 1.14.6
Funktioniert.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#10 08. März 2015 13:01
- Cherry
- arbeitet mit CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 529
Re: [GELÖST] CGCalendar 1.14.x Farbe der Kategorie ausgeben?
sorry, war mein Fehler: hatte es an falscher Stelle untergebracht. *autsch*
Offline
Seiten: 1