Seite 1 von 1
Farbe pro Kategorie
Verfasst: Mo 19. Mär 2007, 14:26
von damian2you
Hallo
Bin mir nicht sicher ob das der richtige Ort ist, also bitte verschieben falls falsch:
Ich möchte pro Kategorie eine Farbe definieren (Hex Code, 6 Zeichen), um diese dann später in einem Navigationsmodul wieder auszulesen (aus DB) und darzustellen. Leider weiss ich aber nicht wie der Kategorienbaum erstellt wird (von Contenido). Darum meine Frage:
Kann man den Kategorienbaum erweitern? Wenn ja, wie viel Aufwand schätzt ihr und wo finde ich die Scripts / Funktion? Oder hat dies schon jemand gemacht?
Thx damian
Verfasst: Mo 19. Mär 2007, 15:38
von HerrB
An die Funktionen zur Kategorie würde ich nicht gehen. Wieviele Leute werden denn an dem System arbeiten (also "Nur ich" oder "x Redakteure")?
Es gibt mehrere Wege, da ranzugehen.
- Man könnte z.B. in den Titel der Kategorie die Farbe eintragen und dann die Ausgabe manipulieren (intern: "Wichtig [ff0000]", extern: "Wichtig").
- Man könnte in der CSS-Datei einfach für Klassen und IDs die Kategorie-ID verwenden.
- Man könnte die Farben pro Kategorie als Mandanten-Property speichern
- Du könntest die vorhandene Kategorie-Klasse in contenido/classes/contenido verwenden und das über eine Property speichern (
Code: Alles auswählen
cInclude("classes", "contenido/class.category.php");
$oCat = new cApiCategory($idcat);
$sColor = $oCat->getProperty("color", "cat"); # (lesen)
$oCat->setProperty("color", "cat", "ff0000"); # (schreiben)
)
Gruß
HerrB
Verfasst: Mo 19. Mär 2007, 16:50
von damian2you
guet ideen, vorschlag 1 ist mir ein bischen ein gebastel, vorschlag 2 & 3 zu statisch und bei vorschlag 4verstehe ich die funkzionsweise nicht ganz.
Habe es nun anders gelösst:
brauche die farbe (hex-code) in einem Navmodul. Nun habe ich eine Tabelle erstellt id, name und hexcode. In der Moduladministration (Input des Navmoduls) der Kategorie kann man die Farbe auswählen(select-box mit werten aus db) und schreibe danach den idwert (Primärschlüssel) davon in die cat-tabelle (habe ein feld (Fremdschlüssel)) hinzugefügt.
Im Output Modul, welches ein Teil der Navigation darstellt, lese ich sowieso die cat-tabelle aus. Somit kann ich mittels fremdschlüssel die farbe definieren.
thx trotzdem
Verfasst: Di 20. Mär 2007, 17:34
von HerrB
Auch wenn Du es anders gelöst hast, noch eine kurze Erläuterung:
Code: Alles auswählen
cInclude("classes", "contenido/class.category.php"); # Kategorie-Klasse einbinden
$oCat = new cApiCategory($idcat); # Kategorie-Objekt anhang idcat holen
$sColor = $oCat->getProperty("color", "cat"); # Farbe der Kategorie lesen
$oCat->setProperty("color", "cat", "ff0000"); # Farbe der Kategorie speichern
In der Moduladministration (Input des Navmoduls) der Kategorie kann man die Farbe auswählen(select-box mit werten aus db) und schreibe danach ...
... via $oCat->setProperty("color", "cat", <Wert>); den Wert in die DB (als Eigenschaft der Kategorie).
Im Output Modul, welches ein Teil der Navigation darstellt, lese ich ...
... via $sColor = $oCat->getProperty("color", "cat"); den Wert wieder aus.
- Keine Änderung in Contenido-Tabellen erforderlich
- Keine Probleme bei Updates
- für beliebig viele Informationen verwendbar
Die Liste der möglichen Werte könnte man wie bei Dir aus einer zus. Tabelle ermitteln, im Modul-Input hartcoden oder auf anderem Weg als Property speichern (aber ich selbst würde es auch als zus. Tabelle machen).
Gruß
HerrB
Verfasst: Mi 21. Mär 2007, 08:52
von damian2you
Danek für den Tipp. Habe es eigntlich nun genaus so gelösst, einfach ein bisschen mit anderen Abfragen. Ich habe meine Farben in einer Tabelle und lese diese im Input aus um danach, wenn man eine auswählt, als prop. in die cat-tabelle zu schreiben.
gruss damian