views-Ergebnis als dropdown-Auswahl in backend-Formular ?
am 24.04.2013 - 17:34 Uhr in
hallo,
weiß jemand eine Möglichkeit, ein view-result (also DB-Abfrage mit bestimmten Kriterien) als Auswahl-Feld im edit-Formular eines content-Types unterzubringen?
Der Sinn der Frage:
Ich möchte im Edit-Formular eines konkreten Nodes (für die Detail-Ansicht) zusätzlich zu den normalen (Text-, Bild- ...) Feldern
noch Links zu bestimmten anderen Nodes zuordnen können, die mit diesem (zu bearbeitenden) Node in Beziehung stehen.
Diese Beziehung ist in einem view definiert, der liefert auch das richtige Ergebnis - aber wie krieg ich das als Feld ins Formular?
Genauer gesagt,
soll dieses view-result nicht direkt im Node-Formular zugeordnet werden, sondern über eine field-collection (für mehrere Zuordnungen mit noch weiteren Feldern außer der Node-Id aus dem view),
aber das ist wohl das gleiche Problem: Wie kriege ich ein view-result als Auswahl-Feld in ein BE-Formular?
mfG, Michael
- Anmelden oder Registrieren um Kommentare zu schreiben
Hier mal eine Lösung für
am 24.04.2013 - 17:58 Uhr
Hier mal eine Lösung für Drupal 6 aber Drupal 7 sollte ganz ähnlich aussehen.
Wenn du eine View hast, dann kannst du in einem Template oder auch in einer anderen Funktion (bei dir vielleicht hook_form_alter) diese View auch "mit der Hand" auslesen.
Das geht ungefähr so:
<?php
$view = views_get_view("NAME_DER_VIEW");
$view->execute();
foreach($view->result AS $ergebnis)
{
// mach irgendetwas mit dem Ergebnis ($ergebnis), z.B. daraus eine Select-Box
}
?>
Gruß
Berthold
Drupal Video-Tutorials
mit viewfield. dort kannst du
am 25.04.2013 - 06:46 Uhr
mit viewfield. dort kannst du dann parameter übergeben. oder mit nodereferences direkt je nachdem wie du das strukturiert hast. oder auch entityreference...
C.A.W. Webdesign
das war ein Mißverständnis,
am 25.04.2013 - 13:33 Uhr
ich will's mal genauer erklären:
- es gibt mehrere Content-Types für verschiedene Inhalte, die jeweils noch durch Taxonomies strukturiert sind,
- es gibt einen Content-Type "CenterPages" für die Übersichts-(Listing-)Seiten der Navigation, aus denen die Menüstruktur erzeugt wird,
- für jede dieser CenterPages gibt es eine view, die ein Listing für den jeweiligen Content-Type + Taxonomy-Term erzeugt,
was im Frontend als Teaser-Liste ausgegeben wird (mit Verlinkung zu den Detailansichten)
Nun sollen auf den Übersichtsseiten zusätzlich zu den (allen) Inhalten, die durch die view für diesen Menüpunkt erzeugt werden, noch einige von diesen als "HighLights" besonders dargestellt werden.
D.h., ich brauche im Edit-Formular für diese CenterPage eine Möglichkeit, aus diesen allen einige als Inhalts-Element der CenterPage zuzuordnen.
Das kann man über eine Entity-Referenz machen - hat aber den Nachteil, daß ich dann eine Auswahlliste aller Inhalte eines Content-Types bekomme, und nicht nur diejenigen, die zum entsprechenden Taxonomy-Term dieser konkreten CenterPage gehören.
Oder gibt es eine Möglichkeit, den Entity-Referenz-Feldern eine Bedingung mitzugeben (Tax-Term) ?
Es gibt die Modus-Einstellung bei Entity-Referenz-Feldern - damit komme ich überhaupt nicht klar:
No eligible views were found. Create a view with an Entity Reference display, or add such a display to an existing view.
- die view existiert aber doch schon !
Die einzige Möglichkeit, die ich sehe, ist für jeden Menüpunkt einen extra Content-Type anzulegen - das könnten aber schnell mal 30 - 40 werden ...
Vielleicht hat ja doch noch jemand einen Tipp,
mfG, Michael
mit viewfield sollte das
am 25.04.2013 - 13:40 Uhr
mit viewfield sollte das gehen, da du dort parameter übergeben kannst
C.A.W. Webdesign
mit einem viewfield kann man
am 25.04.2013 - 14:45 Uhr
- wenn ich das richtig verstanden habe - im BE-Formular eine view auswählen und ggf. mit Parametern versorgen, und das result wird dann auf der Seite ausgegeben.
Ich möchte aber, daß ein Redakteur beim Bearbeiten einer centerPage die Möglichkeit hat, aus dem viewResult ein bestimmtes Element auszuwählen (bzw. auch mehrere einzeln festzulegen),
d.h. ich suche eine Möglichkeit, die viewResult-Liste als Elemente z.B. einer Dropdown-Box (die Titel der nodes) in das BE-Formular einzubauen -
also wie ein entity-reference-field, nur eben noch weiter eingeschränkt (taxonomy-term).