einem Inhaltstypen über taxonomie eine css klasse / ID zuweisen
am 01.02.2012 - 12:22 Uhr in
Hallo,,
ich habe folgende frage:
Ich erstelle momentan eine Immobilienseite.
Hierfür habe ich via Views eine "Suchergebnissseite" erstellt, die mir
alle Häuser vom Typen "X" anzeigt.
Funktioniert auch alles reibungslos.
Jetzt möchte ich aber ein Feature hinzufügen. Und zwar, wenn die Immobilie
Verkauft wurde, möchte ich, das in der Suchergebnisseite das Haus zwar noch
mitaufgeführt wird, allerdings soll dieses dann eine transparente DIV bekommen
und die Aufschrift "Verkauft".
Ich habe dabei gedacht, ich kann dem entsprechenden Haus einfach über Taxonomie
die Kategorie "verkauft" zuordnen und diese dann mit CSS ansprechen.
Allerdings weis ich nicht, ob das überhaupt möglich ist?
Habt Ihr vielleicht eine andere Lösung/Idee parat?
Die Ansicht wäre:
haus 1
haus 2
haus 3 (hier transparenz + Verkauft-Schriftzug)
haus 4
haus 5
haus 6
haus 7 (hier transparenz + Verkauft-Schriftzug)
usw..
Vielen Dank und viele Grüße
Todda
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich würde da so rangehen: im
am 01.02.2012 - 16:11 Uhr
Ich würde da so rangehen:
im Inhaltstyp Haus ein Feld ergänzen, "Verkauft-Schriftzug"
Wenn ein Haus verkauft ist, dann trägst du dort ein: Verkauft.
Dieses Feld läßt du in der View nur anzeigen, wenn es nicht leer ist, also nur bei den verkauften Häusern.
und dann brauchst du das Feld nur noch per css an die richtige Stelle über das Bild zu schieben.
Das müsste eigentlich funktionieren.
liebe Grüsse
Berthold Lausch
Drupal Video-Tutorials
das ist mal ne ganz andere Idee..
am 01.02.2012 - 16:58 Uhr
das ist mal ne ganz andere Idee..
aber die gefällt mir schon sehr gut.. Vor allem kann ich es dann auch beliebig bennen, z.B. (Verkauft, Vermietet, Reserviert, etc..) das finde
ich wirklich genial..
Werde es so einmal ausprobieren.. Vielen Dank dafür.!!
funktionieren tut es...
am 07.02.2012 - 13:26 Uhr
funktionieren tut es..
wenn ich "verkauft" eintrage" wird es mir auch so angezeigt.
Jetzt ist es aber so, das ich eine Hintergrundgrafik darüber legen möchte.. das funktioniert meines erachtens nach nur,
wenn ich dem Node eine ID oder Klasse zuweise..
Also, zum Beispiel:
Haus XY ist verkauft.
Ich gebe bei diesem Node auf bearbeiten, wähle ein Feld "verkauft" aus (checkbox, taxonomie term, etc,)
und dieser soll dann die Klasse oder id "haus-verkauft" erhalten.
Gibt es hierfür eine Lösung? Bzw. Lösungsvorschläge?
Viele Grüße
Todda
Im node.tpl.php hast Du den
am 07.02.2012 - 15:31 Uhr
Im node.tpl.php hast Du den kompletten Node vorliegen und kannst also das Feld abfragen. Dann dem Div, das den Node umrahmt, eine passende Klasse hinzufügen.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
hallo Werner..
am 07.02.2012 - 16:44 Uhr
hallo Werner..
danke erstmal für deine Antwort..
Ich nutze für die darstellung views + Panels.
Kann ich da trotzdem auf die node.tpl.php zurückgreifen?
Ich hatte gedacht, ich könnte über views eine Abfrage hinzufügen..
wie würde es denn mit der node.tpl.php funktionieren?
Viele Grüße
Todda
Hast Du mit Panels eine
am 07.02.2012 - 17:11 Uhr
Hast Du mit Panels eine Node-Page erstellt? Dann kannst Du diese Varante clonen und eine weitere Bedingung hinzufügen, nämlich, daß das entsprechende Feld einen bestimmten Wert hat. In den General-Einstellungen legst Du dann eine passende CSS-Klasse fest (nur für die Ausgabe bei diesen Bedingungen). Damit hast Du was Du möchtest.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ja, das habe ich..
am 07.02.2012 - 17:24 Uhr
Ja, das habe ich..
habe momentan an die 40 Node-types.
Für jede eine Panel-Page.
Das wäre ja genial, wenn das so klappt. Ist es dann sinnvoller, ein Taxonomie-Vokabular anzulegen (Verkauft, Vermietet, etc..) und dann über Panels
den Wert abfragen? Oder besser ein CCK Feld?
Oder nimmt sich das beides nichts?
Hab erst einmal vielen vielen Dank!!!
Das ist jetzt eine
am 07.02.2012 - 17:49 Uhr
Das ist jetzt eine Glaubensfrage und Du solltest das von der sonstigen Verwendung abhängig machen. Es bedeutet aber auf jeden Fall, daß Du für die entsprechenden Node-Typen mehrere Panel-Varrianten erzeugen mußt (mindestens zwei).
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
todda schrieb habe momentan
am 07.02.2012 - 19:48 Uhr
habe momentan an die 40 Node-types.
Für jede eine Panel-Page.
Wenn es noch möglich ist, solltest du dir dringend Gedanken um den konzeptionellen Aufbau deiner Seite machen. 40 Nodetypen sind viel zu viel und werden dich garantiert noch jede Menge unnötige Arbeit/Nerven kosten (siehst du schon an den Panels). Wie kommt diese Menge denn zustande, hast du für jede Immobilienart (2-Raumwohnung, 3-Raumwohnung etc.) einen eigenen Nodetypen?
Do it with Drupal.
ja,, ich
am 07.02.2012 - 21:09 Uhr
ja.. ich habe für jeden inhaltstypen einen nodetype erstellt..
Zum einen Häuser (hier dann in 5 kategorien via taxonomy unterteilt) allerdings für jede kategorie eine panelseite. Dann gibt es
je typ 3 verschiedene ansichten (tabelle, galerie, detail) und halt der node an sich.
Und das für häuser, wohnungen, anlageobjekte, etc..
Ich hatte auch zuerst daran gedacht, das über argumente / kontexte zu machen,, allerdings sind mir zeitlich enorm die hände gebunden
und ich hatte einfach noch nicht genügend zeit, mich in das thema panels einzuarbeiten..
Gibt es hier einen besseren, schnelleren weg? (sicherlich, sonst hättest du es mir nicht gesagt. ;o) )
ich versuche die performance der seite natürlich so gering wie möglich zu halten.. allerdings kann ich mir gut vorstellen, das es
hierfür sicherlich weitaus zeitsparendere lösungen gibt..
Viele Grüße
Todda
Habe mir schon gedacht, dass
am 07.02.2012 - 22:37 Uhr
Habe mir schon gedacht, dass der Aufbau dermaßen kompliziert ist, bei 40 Nodetypen klingelten bei mir alle Alarmglocken.
Vielleicht als Inspiration, ich habe letztens selber eine Immobilienseite gebaut und bin mit drei Nodetypen ausgekommen:
1. Immobilien-Angebote
2. Immobilien-Gesuche
3. statische Seite (z.B für AGB)
Sämtliche weiteren Kategorisierungen wie: Art der Immobilie (2-Raumwohnung, 3-Raumwohnung etc.), Art des Angebot (Kauf oder Miete), Ort/Lage, Zustand, Ausstattung etc.pp. sind alles CCK-Felder, mit Ausnahme des Ortes, welches ein Taxonomy-Feld ist.*
Für die Auflistung der Immobilien gibt es dann zwei Views, die einmal alle Immobilenangebote und einmal alle Immobiliengesuche anzeigen. Mittels Exposed-Filtern ist dann bei beiden Views jeweils eine Suchmöglichkeit eingebaut, über die der Webseiten-Besucher die Auflistung per Ajax z.B. auf Immobilien reduzieren kann, die zum Verkauf stehen, einen Garten besitzen etc. Bei Klick auf die gewünschte Immobilie wird man dann zur detaillierten Nodeansicht mit weiteren Bildern, Kontaktmöglichkeit usw. weitergeleitet. That's it.
* Durch diesen Aufbau der Inhaltstypen bist du sehr flexibel, was künftige Änderungen/Erweiterungen angeht. Soll später mal bspw. eine neue Immobilienart auswählbar sein (z.B. Büroraum), erweiterst du lediglich das CCK-Feld um diesen einen Punkt. Fertig. Das Erstellen eines neuen Inhaltstypen "Büroraum" und das (vermutlich) umständliche Einbinden in die bestehende Seite ist nicht notwendig.
Do it with Drupal.
wie hast du denn....
am 07.02.2012 - 23:42 Uhr
wie hast du denn die cck felder benannt bzw. erstellt? hast du einfach dropdowns dafür erstellt?
und mit node-referenzen gearbeitet?
ich hatte zuerst gedacht, ich mache einfach 2-4 vokabulare und ordne dann den nodetypen diese zu..
aber als ich damit begonnen habe, habe ich gemerkt, dass es doch so nicht klappt für mein vorhaben..
habe das 3 mal umgeworfen.. zuletzt, weil ich mit custom pager arbeite, und diese mit den inhaltstypen bzw.
auch den terms nicht klar kam (wenn ein node z.B. mehrere Terms hat.. etc..)
aber das ist noch ne überlegung wert, das über cck felder zu regeln..
das einzige, womit ich dabei ein problem hätte, wäre wenn ich in Views "execlude from display"
dann hart "baujahr:, etage:, zimmer:, etc." hätte,,
und ich nicht weis, wie ich die label ausblende, wenn diese leer sind.. bei den feldern bzw. values ist das ja nicht das thema,
aber bei den labeln hab ich keinen plan.. alleine deswegen habe ich dann je nach typ einen nodetype erstellt..
Ich werde jetzt mal das mit den panels probieren, ob ich denen die klasse zuweisen kann.. und dann muss ich mal gucken, wie ich die anzeige hinbekomme..
aber erstmal nochmals vielen dank für deine / eure vorschläge.. (mich würd ja nur noch die cck umsetzung interessieren, will diesen thread jetzt aber nicht mit
anderen themen zuspammen.. ;o) )
.. Viele Grüße
NACHTRAG:
Ich habe grade mal die Variante dupliziert und dieser eine andere id zugewiesen.. wie sage ich jetzt aber bestehenden nodes, das sie, wenn sie zur kategorie "vekauft" gehören, dass diese auch diese PanelVariante nehmen?
Ich gehe auf den bestehenden node, sage bearbeiten, sage ihm "du gehörst zur kategorie "verkauft" " und speichere.. wenn ich jetzt über firebug gucke, welche id dieser node hat, ist es trotzdem noch der alte (trotz cache und theme registry.) ..
wenn ich auf der besagten seite auf "panel bearbeiten" gehe, springt er zu der "ersten" Variante, nicht zu der mit dem Kontext "Verkauft"..
aber, was etwas schlimmer ist,, das löst leider nicht mein problem.. bevor ich in die detailansicht "Haus" gehe, habe ich eine "Suchergebnisseite" .. ähnlich wie bei immobilienscout : Schritt 1: auswählen -> suchen Schritt 2: Ansicht aller Ergnisse -> Schritt 3.: Detailansicht.
Momentan bin ich ja quasi mit dem Panel in der Detailansicht (schritt 3).. ich möchte aber für den Schritt 2, also, in der ergebnisseite zeigen, das die immobilie verkauft ist..
meine überlegung hierfür ist, das ich über views einmal alles vom Nodytyp haus ausgebe und zusätzlich, als filter "verkauft" ..
Da ich aber meine Felder ausblende "exclude from display" und meine eigenen divs darum lege,, weis ich nicht, wie ich die "normalen" Häuser mit den "verkauften" Häusern merge..
HOffe, ich hab mich einigermaßen verständlich ausgedrückt?
kann leider noch keinen link hierfür geben, da ich es momentan nur local bei mir laufen habe....
Viele Grüße
Todda
Nochmal Nachtrag:
Zum verständnis hab ich mal ganz schnell und schmutzig skizziert, was ich meine:
todda schriebwie hast du
am 08.02.2012 - 22:04 Uhr
wie hast du denn die cck felder benannt bzw. erstellt? hast du einfach dropdowns dafür erstellt?
und mit node-referenzen gearbeitet?
Naja, die Felder habe ich halt so benannt, dass es halbwegs Sinn ergibt. ;) Dropdowns in Formularen gefallen mir optisch nicht, ich bevorzuge (insbesondere bei möglicher Mehrfachauswahl) Ankreuzfelder. Ich habe mal unten einen Screenshot angehängt, wie das Formular bei mir aussieht.
Node-Referenzen sind nur notwendig, wenn du zwei Nodes direkt miteinander referenzieren/verlinken willst. Dies war nicht notwendig bei mir.
wenn ich auf der besagten seite auf "panel bearbeiten" gehe, springt er zu der "ersten" Variante, nicht zu der mit dem Kontext "Verkauft"..
Sorry, zu den ganzen Problemen mit Panels kann ich nichts sagen. Ich habe noch nie mit diesem Modul gearbeitet und theme die Sachen immer direkt. Es geht auch sehr gut ohne dieses Modul, Views liefert von Haus aus reichlich HTML-Code zum themen und für die Nodeansichten kann man direkt die node.tpl.php themen bzw. für bestimmte Nodetypen auch eigene Vorlagen dieser Datei anlegen und verwenden. Bisher bin ich damit immer ausgekommen.
Da ich aber meine Felder ausblende "exclude from display" und meine eigenen divs darum lege,, weis ich nicht, wie ich die "normalen" Häuser mit den "verkauften" Häusern merge..
Zu deiner Skizze, nicht "exclude from display" verwenden, sondern stattdessen "hide if empty". Torfnase hat weiter oben ja schon die generelle Vorgehensweise erklärt. Ist das "Verkauft"-Feld leer, wird im View nichts angezeigt (halt "hide if empty"). Ist in dem Feld etwas eingetragen, erschient der Schriftzug im View und du kannst ihn dort themen, z.B. den Text per CSS mit einer Grafik "verkauft" austauschen und diese dann über das Bild der Immobilie positionieren.
Do it with Drupal.