CCK Felder ein- und ausblenden
am 05.03.2010 - 12:54 Uhr in
Hallo,
ich habe einen Inhaltstyp erstellt, der zwei CCK-Felder A und B enthält. Wenn ich nun den Node aufrufe, bekomme ich beide Felder A und B angezeigt. Klar, soll ja auch so sein. Jetzt will ich aber einen Umschalter einbauen, der es mir erlaubt global zu steuern, welche CCK Felder in dem Node angezeigt werden sollen. D.h. Bei Klick auf Schalter soll nur noch Feld B angezeigt werden.
Wie kann ich das realisieren? Hab leider nirgends etwas darüber gefunden.
Konkretes Beispiel:
Ich habe eine Lexikon mit vielen Einträgen, die über jeweils eine Kurzbeschreibung und ausführliche Beschreibung (jeweils ein CCK-Feld) verfügen. Nun möchte ich zwei Ansichtsmodi erstellen - Kurz und Ausführlich - welche global für das ganze Lexikon gelten sollen.
Hoffe mir kann jemand helfen.
Schönen Gruß,
Boris
- Anmelden oder Registrieren um Kommentare zu schreiben
Views
am 05.03.2010 - 15:39 Uhr
Klassischer Fall für Views.
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!
Danke für den Tipp. Jedoch
am 07.03.2010 - 16:47 Uhr
Danke für den Tipp. Jedoch komm ich damit nicht wirklich weiter. Klar, ich kenne Views einigermaßen. Ich verstehe aber nicht, wie ich mit Views einen vorhandenen Node (der ja vollständig ist) durch eine View ersetze ohne daß sich der Pfad ändert.
Würd mich also freuen, wenn du mir einen weiteren Tipp geben kannst.
Gruß,
Boris
Der Zusammenhang zwischen
am 07.03.2010 - 17:00 Uhr
Der Zusammenhang zwischen deiner Ausgangsfrage und deinem Beispiel ist mir nciht ganz klar. Dein Beispiel ist ein klassischer Anwendungsfall für Teaser bzw. volle Nodeansicht. Das lässt sich bereits auf Ebene des Inhaltstyps in den Sichtbarkeitseinstellungen der CCK-Felder einstellen. Zusätzlich kann man über das Theming des Inhaltstypen weiter Einfluss nehmen.
Das hat aber nichts mit irgendeinem magischen Schalter zu tun, der wie von Geisterhand global ändert, was angezeigt wird und was nicht.
Suchmaschinenoptimierung (SEO) & Drupal
Ich steh irgendwie aufm
am 11.03.2010 - 12:27 Uhr
Ich steh irgendwie aufm Schlauch...
Also nochmals zur Erklärung:
Ich habe eine (mit Views erstellte) Liste, eine Übersicht aller Nodes, in denen nur der Name (Titel) angezeigt wird. Nun möchte ich erreichen, dass wenn ich einen Node über diese Liste aufrufe, dieser Node (der ja schon existiert) mir in einer bestimmten Variante angezeigt wird. z.B. möchte ich das CCk-Feld "Beschreibung" nicht mit angezeigt bekommen. Dafür habe ich mich im Vorfeld entschieden (also einen Button gedrückt), dass ich alle Nodes in dieser Art sehen will. Genauso kann ich mich aber auch jederzeit entscheiden, die volle Ansicht angezeigt zu bekommen.
Teaser-Ansicht bringt mich hier ja nicht wirklich weiter, da ich ja diese Ansicht nur als Vorschau angezeigt bekomme, also z.B. zeig mir alle Nodes mit Taxonomie "Vogel" in der Teaseransicht. Dadurch bekomme ich eine Liste, von der aus ich auf den kompletten Beitrag komme.
Oder denke ich hier völlig falsch?
Danke fürs mitdenken.
Views mit Argumenten.
am 11.03.2010 - 12:56 Uhr
Wie wärs mit folgender Variante?
Erstelle doch einfach noch je eine Ansicht für die beiden Varianten, wie Du sie haben möchtest, einmal mit Langtext und einmal mit Kurztext. Verpasse den Ansichten je ein Argument (Ich würde nid) nehmen. In der View die Du bereits beisammen hast (Liste), packst Du noch 2 Links auf jede Zeile, die das Argument für dievorherigen Views liefern und schon kann User bei jeder Wahl von gleich sagen welche Variante er/sie sehen will. Was btw. auch etwas flexibler ist als von anfang an zu bestimmen was man wären der ganzen Session sehen will.
Das müsste doch gehen?
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Das hört sich nach einer
am 11.03.2010 - 16:00 Uhr
Das hört sich nach einer Lösung an, trifft den Nagel aber noch nicht auf den Kopf. Denn das "globale" Umschalten ist in diesem Fall ziemlich wichtig für die spätere Verwendungsweise der Seite. Ich schau mir das mal an, bin aber weiterhin auf der Suche nach der perfekten Lösung.
Also, wenn noch jemand eine Idee hat, bin ich dankbar über jeden Tipp.
Konkrete Beispiele?
am 11.03.2010 - 16:14 Uhr
Vielleicht könntest du einfach auch ein bisschen konkretere Beispiele geben? Oder einen Screenshot?
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!
Globales Umschalten
am 11.03.2010 - 16:16 Uhr
Na dann würde ich mir folgende Überlegung machen.
2 Views die die gleichen sind, aber verschiedenen Pfaden folgen (2 Menü-Einträge) bei der Node anzeige, kannst Du dann auf dem einen Pfad den View verwenden mit den langen Texten und auf dem anderen Pfad den mit den kurzen. Das einfach als Idee, ich habe jetzt noch nicht zu Ende gedacht, wie ich das im Detail lösen würde. Evtl. lässt sich das auch über 2 Argumente lösen, die dem Pfad mit gegeben werden.
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
@Frank: Was meinst du mit
am 11.03.2010 - 17:22 Uhr
@Frank: Was meinst du mit konkreter? Ich habe doch oben schon im Detail alles erklärt. Aber ich versuche es nochmal auf eine andere Art, vielleicht mehr von der Programmierseite her:
Ich stell mir das so vor:
Ich habe einen Node A mit z.B. 4 CCK-Feldern, also:
Node A: F1, F2, F3, F4
Jetzt setze ich ein globale Variable X, welche mir die Art der Ansicht speichert. X kann also folgende Werte haben:
X=k oder X=l
Nun rufe ich Node A auf, in diesem Moment schaut das System nach, welchen Wert X hat und zeigt mir das entsprechende Ergebnis an. Also:
Fall 1:
Für X=k ist das Ergebnis Node A: F1, F2
Fall2:
Für X=l ist das Ergebnis Node A: F1, F2, F3, F3
Aber: Mir wird immer Node A angezeigt, nicht ein Node A_1 oder so!
Modul "CCK Field Privacy"
am 11.03.2010 - 18:07 Uhr
Hm, ich würde - wie schon von anderen vorgeschlagen - mit Views und Argumenten/Parametern arbeiten.
Ansonsten könntest du das auch mit dem Modul CCK Field Privacy und entsprechenden Rollen realisieren.
"Konkreter" hieße: Wer soll wann warum was zu sehen bekommen? Ist dann eine Platzfrage (zu lösen mit Teasern) oder eine Berechtigungsfrage? Oder geht es um einen Workflow? So was in der Art ;-)
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!
Bob hat wieder zugeschlagen
am 11.03.2010 - 20:28 Uhr
Möglicherweise hilft dir das neueste Video vom Senfkorn-Bob einige Ideen zu entwickeln schaus Dir an und überlege, ob das evtl. dein Problem lösen kann. mit Display Suite kannst Du eigene Asichtslayouts machen und die Felder verwenden die du willst.
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Zitat: Das lässt sich bereits
am 07.07.2010 - 14:38 Uhr
Das lässt sich bereits auf Ebene des Inhaltstyps in den Sichtbarkeitseinstellungen der CCK-Felder einstellen.
Diese Funktion konnte ich leider nicht entdecken. Wo steht das genau?
Ich benutze ein Drupal 6.x. Ist das da nicht vorhanden?
Gilt Dein Schalter absolut
am 07.07.2010 - 16:00 Uhr
Gilt Dein Schalter absolut systemweit für jeden User?
Wenn man also das inhaltstyp-node.php.tpl in zwei varianten bereithielte und dann im richtigen moment (also beim umlegen des schalters)
durch umbenennen das richtige template zöge, wäre sowas eine lösung?
x=k: inhaltstyp-node.php.tpl-a -->
x=l : inhaltstyp-node.php.tpl-b -->
--> inhaltstyp-node.php.tpl
Müsste manhalt durch ein Modul bewerkstelligen...
*edit* nachstehende exterior-lösung gefällt mir besser...
lg leda
"Du liebst es, Du brauchst es oder Du gibst es weg"
www.leda.ch
Die Frage, die sich mir
am 07.07.2010 - 15:54 Uhr
Die Frage, die sich mir stellt: Wer kann den Schalter betätigen?
Fall 1: Du als Admin betätigst den Schalter und kannst damit die globale Ansicht ändern
Fall 2: Jeder User hat seinen eigenen Schalter und kann für sich entscheiden, wie er es angezeigt haben will
Fall 1 -->
Das kann man direkt bei den Einstellungen des Inhaltstyps machen, da kann man bestimmte CCK-Felder ausblenden lassen.
Oder man macht ein eigenes kleines Modul, welches einen solchen Button implementiert und bei einem Klick darauf wird dann ein bestimmter Wert in der Tabelle "Variable" gesetzt.
Nun legt man für den Inhaltstyp eine eigene node.tpl.php an und prüft darin den Wert in der Tabelle. Je nach Wert werden die Felder ausgegeben.
Fall 2 -->
So ähnlich wie Fall 1.
Eigenes kleines Modul für den Button und zusätzlich eine eigene kleine Tabelle mit 2 Spalten: UID und Status oder so
Dann kann jeder User auf den Button klicken und dann wird in der eigenen Tabelle nach der User-ID gesucht und der entsprechende Anzeige-Status geändert.
Dann wieder eine eigene node.tpl.php für den Inhaltstyp, darin die Tabelle nach der ID des $user-Objekts durchsuchen, den Status auswerten und entsprechende Felder ausgeben.
Alle Varianten dürften keine sonderlich große Arbeit erfordern.
Rollenspiele ?
am 07.07.2010 - 18:49 Uhr
Man könnte auch je nach Rolle in der tpl.php umschalten.
Sepp