Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 01. März 2015 16:31

Cherry
CMSMS-Profi
Registriert: 15. Dezember 2010
Beiträge: 531

Re:

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

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Schaffst du es denn, alle Kategorien auszulesen, denen ein Eintrag angehört?


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#3 05. März 2015 10:55

Cherry
CMSMS-Profi
Registriert: 15. Dezember 2010
Beiträge: 531

Re:

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

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Cherry schrieb:

Per get_template_vars komme ich leider nicht weiter.

Hast du die erweiterte Variante im Einsatz?


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#5 06. März 2015 11:40

Cherry
CMSMS-Profi
Registriert: 15. Dezember 2010
Beiträge: 531

Re:

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

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Genau darauf bezog sich meine Frage

cyberman schrieb:

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?


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#7 07. März 2015 19:34

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.058

Re:

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)

Offline

#8 07. März 2015 20:42

Cherry
CMSMS-Profi
Registriert: 15. Dezember 2010
Beiträge: 531

Re:

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.058

Re:

Hab's gerade getestet.
CMSms 1.11.13
CGCalendar 1.14.6
Funktioniert.

Offline

#10 08. März 2015 13:01

Cherry
CMSMS-Profi
Registriert: 15. Dezember 2010
Beiträge: 531

Re:

sorry, war mein Fehler: hatte es an falscher Stelle untergebracht. *autsch*

Offline

Fußzeile des Forums

Powered by FluxBB