verschiedene Nodes und deren namen ...
am 15.02.2012 - 20:37 Uhr in
Moin Moin,
ich versuch mir gerade nen einen kleinen Blog zu bauen und ich überlege gerade wie ich folgendes bewerkstelligen kann:
Ich hab 4 verschiedene Arten von Nodes:
- Photo
- Video
- Speech (MP3, SoundCloud, MixCloud)
und
- Text ...
jedes Node bekommt einen anderen Inhalt und einen anderes Icon oben Links ...
ich denke mir mal, dass ich dann für jeden Typen, den Node anpassen muss, zumindest was das Icon betrifft, oder liege ich da falsch ?
alles andere müsste ja über die Inhaltstypen zu steuern sein ...
Wie müssten dann die node.tpl.php heissen für die jeweiligen Inhaltstypen ?
liege ich da auf dem richtigen Weg oder eher total falsch ?
bin dankbar für jeden Rat und jede Tat ;)
Cheers
Skully
- Anmelden oder Registrieren um Kommentare zu schreiben
Oder per CSS-Sprite
am 16.02.2012 - 05:14 Uhr
Um die Nodes anzupassen kannst du dich hieran halten: http://drupal.org/node/1089656
In deinem Fall - wenn es nur um Icons gehen sollte - kannst du es auch anders machen: Du fügst ein CSS-Sprite ein, das alle Icons enthält und zeigst erst einmal das erste Icon davon an. Jeder Node-Typ sorgt für eine spezifische Klasse im body. Durch eine entsprechende CSS-Anweisung kannst du das CSS-Sprite je nach Klasse im body "durchschieben".
(Ja, dafür musst du dich mit CSS auskennen, und es kann auch nicht schaden, schon einmal was von CSS-Sprites gehört zu haben.)
Hallo Nicolai ... Danke auf
am 16.02.2012 - 12:12 Uhr
Hallo Nicolai ...
Danke auf jeden Fall schonmal für den Tipp :)
ich habe zwar schonmal was mit Sprites gemacht, aber irgendwie verstehe ich nicht so ganz, wie ich das dann im Template festlegen kann :(
hast Du eventuell ein Beispiel ? Es hört sich auf jeden Fall einfacher an, als wenn ich für jeden Bereich ein eigenes Node.tpl.php erstellen muss :)
Cheers
Skull
Beispiel
am 16.02.2012 - 15:30 Uhr
Ein Beispiel kann ich dir so nicht nennen. Entweder das Template spuckt dir bereits per Default ein HTML-Element aus, dass du für das Icon verwenden kannst. Oder du baust ein einfaches
<div class="icon"> </div>
in das node.tpl.php ein, das für alle Nodes gilt und nutzt dieses div für das CSS-Sprite.Siehe auch: http://www.webkrauts.de/2007/10/20/hovereffekte-mit-css-sprites/
Du würdest dein CSS-SPrite analog durchschieben, nur eben nicht als Hover-Effekt.
Hallo Nicolai ... soweit
am 16.02.2012 - 19:41 Uhr
Hallo Nicolai ...
soweit hatte ich das schon verstanden, nur irgendwie hapert es daran, dass ich nicht weiss, wie ich festlege, bei der Node erstellung, welches Icon dafür er ausgeben ausgeben soll.
Vielleicht mit einem Zusatz-Feld mit einem Scroll-Down-Menü wo ich dann zur auswahl habe : Text, Film, MP3 oder Foto ?
Taxonomy ist dafür gedacht
am 16.02.2012 - 19:45 Uhr
Um eine Kategorisierung vorzunehmen, ist Taxonomy das richtige Modul.
Hi Ronald ... ich glaub, ich
am 16.02.2012 - 20:01 Uhr
Hi Ronald ...
ich glaub, ich denke viel zu kompliziert bei dem ganzen :) .. da hätt ich eigentlich auch selber drauf kommen müssen ...
das einzige, was jetzt so noch offen ist, ist wie ich die Abfrage bewerkstellige ... wenn tax = text -> dann class = text.ico ...
hab da vielleicht was gefunden ... http://www.drupalcenter.de/node/24480#comment-87175 ...
sowas müsste dann doch in eine template.php oder wie stellt man sich das vor ?
auch hinter Taxonomy termen kann man CCK-Felder anlegen
am 16.02.2012 - 20:45 Uhr
Diese lassen sich auch wieder auswerten.
Keine Taxonomie
am 16.02.2012 - 21:58 Uhr
Nein, du brauchst keine Taxonomie mehr. Zumindest dann nicht, wenn du ohnehin schon verschiedene Nodetypen hast. 4 Nodetypen plus 4 Taxonomie-Werte sind doppelt. (Ich gehe hier davon aus, dass 4 verschiedene Nodetypen sinnvoll sind, weil du dort evtl. unterschiedliche Felder für deine Inhalte benötigst.)
Ändere "einfach" das node.tpl.php. Füge zu Beginn ein
<div class="icon"> </div>
hinzu. Dann per CSS zBdiv.icon { width: 32px; height: 32px; background: transparent url(icons.png) 0 0 no-repeat; }
body.node-nodetype1 div.icon { width: 32px; height: 32px; background: transparent url(icons.png) -32px 0 no-repeat; }
body.node-nodetype2 div.icon { width: 32px; height: 32px; background: transparent url(icons.png) -64px 0 no-repeat; }
Auf die Schnelle zumindest. Musst den Code natürlich noch etwas anpassen.