Pagefeld als Filter für eigenen Inhaltstyp [gelöst]
am 08.02.2010 - 19:15 Uhr in
Hallo,
hab jetzt schon ne Menge Sachen mit CCK und dem Views Modul angestellt, aber das passende Ergebnis noch nicht erzielt. Was ich erreichen möchte ist das man bei der Erstellung einer page ein zusätzliches Feld auswählen kann. Anhand dieses Feldes soll nun unterhalb der page eine Liste eines eigenen Inhalttyps angezeigt werden. Dabei soll das Pagefeld als Filter dienen.
Unter Inhaltsverwaltung->Inhaltstypen->page->felder verwalten habe ich ein neues Feld angelegt. (Problem dabei das feld soll nicht mit ausgegeben werden sondern nur zur Filterung des neuen Inhalttyps dienen, hab zwar ein eigenes Node Template erstellt aber das Feld wird mit im Node Content ausgegeben)
Danach habe ich einen neuen Inhaltstyp "Termin" definiert. Dieser bekommt das gleiche Feld und soll bei der Erstellung mit ausgewählt werden um später alle gleichen Termine einer Page zuzuordnen. (Problem hierbei die view Argumente kommen über die URL und nicht aus einer page)
Hat jemand einen Lösungsansatz?
grüße
- Anmelden oder Registrieren um Kommentare zu schreiben

Also CCK-Felder, die Du
am 08.02.2010 - 20:04 Uhr
Also CCK-Felder, die Du nicht zeigen willst, kanst Du unter Felder anzeigen ausschalten.
Wenn Views keine Argumente bekommt (Blöcken in Views kann meine keine Argumente über die URL geben, da der Block nicht über eine URL aufgerufen wird), kann man die über PHP-Code erzeugen (was tun wenn kein Argument > standard Argument > PHP-Code). Dabei läßt sich auch auf den Titel der Seite und weiteres zugreifen. Jede Seite ist ein Node. Jeder Node hat eine Nummer. Jede Seite wird also intern über node/nummer angesprochen. Mit
arg(1)bekommst Du die Nummer und kannst damit mittels$node = node_load(arg(1));den node laden. Mit$node->titlegreifst Du dann z.b. den Titel ab.Beste Grüße
Werner
interessanter Ansatz
am 09.02.2010 - 09:40 Uhr
Hallo, danke für die schnelle Hilfe. Das man Felder von Views von der Anzeige ausschließen kann habe ich schon gefunden. Mir geht es aber darum ein zusätzliches Feld des Standard Inhaltstypen Page von der Anzeige auszuschließen. Weil dieses Feld lediglich als Filter dienen soll. Außerdem möchte ich nicht über die URL gehen. Ich erklär es mal an einem Beispiel.
Ich lege eine neue Page an und fülle Titel und Body aus sowie das zusätzliche Feld namens Termintyp (Auswahlliste). Wenn diese neue Seite nun von einem Besucher aufgerufen wird soll im unteren Bereich als Block noch eine Liste der Termine mit dem passenden Typ erscheinen.
Für die Termine selber habe ich einen neuen Inhaltstyp angelegt. Dort gibt es ebenfalls ein Feld Termintyp welches beim anlegen der Termine ausgefühlt wird. Mit den Views kann man wunderbar eine Liste ausgeben lassen. Nur weiß ich nicht wie ich am elegantesten die Termine zur ihrer jeweiligen Seite zuordnen kann. Vielleicht ist ja das einfügen von PHP-Code der richtige Weg ohne ein eigenes template für die page-node.tpl.php anzulegen.
grüße
Das geht viel einfacher mit
am 09.02.2010 - 10:32 Uhr
Das geht viel einfacher mit Taxonomie. Das liefert Dir das von Hause aus.
Damit kannst Du in Views filtern, wie Du möchtest.
Beste Grüße
Werner
klingt super
am 09.02.2010 - 12:42 Uhr
Hallo Werner,
mit der Taxonomie habe ich mich noch nicht genauer ausseinander gesetzt. Mein erster Versuch ging schief, ich hatte den Eindruck das ich für jeden Typ ein eigenes Vokabular anlegen mußte damit ich eine genaue Filterung vornehmen kann. Das fand ich nicht so clever weil das Formular zum anlegen einer Seite dann so viele Checkboxen enthält. Schau ich mir auf jedenfall nochmal an bevor ich bei den template overide Funktionen weitermache.
grüße
die Lösung
am 09.02.2010 - 14:24 Uhr
http://drupaleasy.com/blogs/ryanprice/2008/06/using-views-2-drupal-6-cre... macht so ziemlich genau das was ich erreichen wollte. Danke Werner das du mich auf die richtige Fährte gebracht hast.
grüße