2009-08-03 1 views
6

Ich habe eine Frage zu Ansichten, insbesondere zum Gruppieren einer Beziehung. Ich habe einen "Partner" -Knoten, der viele "Docs" hat, ich möchte den Namen des "Partners" zusammen mit den entsprechenden "Docs" unten auflisten. Ich habe die Beziehung richtig eingerichtet (denke ich), kann aber nicht herausfinden, wie oder wo ich es richtig gruppieren soll.Drupal: Ansichten: Gruppierungsbeziehung in Sperrliste

ich dieses:

partner name 1 
- doc name 1 
partner name 1 
- doc name 2 
partner name 1 
- doc name 3 
partner name 2 
- doc name 4 
partner name 2 
- doc name 5 
partner name 3 
- doc name 6 

aber würde dies mag:

partner name 1 
- doc name 1 
- doc name 2 
- doc name 3 

partner name 2 
- doc name 4 
- doc name 5 
- doc name 6 

Antwort

7

Es klingt wie Sie auf dem richtigen Weg sind. Damit die Gruppierung wie oben beschrieben funktioniert, müssen Sie den Anzeigestil auf "HTML-Liste" einstellen und dann unter den Stiloptionen das Gruppierungsfeld auf den Partnernamen setzen. Sobald dies funktioniert, können Sie das Feld für den Partnernamen bearbeiten und "Ausschließen von der Anzeige" auswählen, was Ihnen dann das gewünschte Format geben soll.

+1

Das ist die genaue Config Ich habe festgelegt, aber der Ausgang ist immer noch wie oben aufgeführt. – Ronn

+0

Dies ist ein guter Ratschlag, den Sie brauchen, um die Überschriftenzeile in den Feldern zu setzen, um sie von der Anzeige auszuschließen. http://drupal.org/node/486800#comment-1684306 – Kevin

2

Ich stieß heute auf das gleiche Problem. Bei dem Versuch, Fehler zu beheben, habe ich eine neue leere Installation von Drupal vorgenommen und nur meinen Inhaltstyp und die Beziehung hinzugefügt. Als ich die Ansicht erstellte, sah ich das Problem nicht. Als ich anfing, Module hinzuzufügen, stellte ich fest, dass der Themenentwickler im Entwicklungsmodul das Problem verursacht hat. Versuchen Sie es zu deaktivieren und laden Sie Ihre Ansicht neu. Sie können dies möglicherweise auch sehen, indem Sie das Element aktiviert lassen, einen anderen Browser öffnen und zur Ansicht gehen, wenn der Entwickler des Themas nicht angezeigt wird.

0

Ich hatte Erfolg mit dem views_field_view Modul, mit dem Sie eine Ansicht als ein Feld angeben können.

Zuerst erstellte ich eine Ansicht mit dem einzelnen Feld, das ich gruppieren wollte, und überzog dann die Abfrage mit dem folgenden Code.

function hook_views_pre_execute(&$view) { 
    if ($view->name == 'phone_search') { 
     $query = 'SELECT DISTINCT node_data_field_status.field_status_value AS node_data_field_status_field_status_value 
      FROM content_type_phone node_data_field_status'; 
     $view->query->query = $query; 
     $view->query->final_query = $query; 
     $view->query->count_query = $query; 
    } 
} 

Der Grund dafür ist, dass die Ansichten automatisch die nid und die vid Felder enthält, wenn Sie es unterschiedliche gesetzt haben so zu wählen, Sie eigentlich nicht die unterschiedlichen Werte bekommen. Durch das Hacken der Anfrage habe ich dieses Problem gelöst.

Das Modul views_field_view ermöglichte mir, eine zweite Ansicht mit den Feldern zu erstellen, die ich in den Gruppen angezeigt werden wollte. Wenn Sie das view_field zur primären Ansicht hinzufügen (der Ansicht, in der die Abfrage überschrieben wird), können Sie ein Feld angeben, das als Argument übergeben wird. Dieses Argument muss dann in der untergeordneten Ansicht angegeben werden.

Es ist alles ein bisschen kompliziert, aber ich hoffe, das war klar!

0

Dies ist etwas, bei dem Ansichten schwach sind.

Ich schreibe normalerweise ein Modul, um diese Art von Ergebnissen zu produzieren, da ich finde, dass SQL schneller und wartungsfreundlicher ist als Wrestling mit Ansichten, um es zu tun.

Das heißt, es gibt viele Ansichten Plugins, die diese Art von Funktionalität bieten. Ich habe sie nicht getestet, weil ich dies im Allgemeinen mit einer kleinen Menge an benutzerdefiniertem Code leichter behandle, aber hier sind ein paar Projekte, die versuchen, eine Lösung für diese Art von Dingen für Ansichten bereitzustellen.

https://drupal.org/project/views_complex_grouping

https://drupal.org/project/views_grouped_table

Es gibt viele andere, aber ich kann nur zwei Links posten, weil ich nicht oft Fragen auf dieser Seite beantworten :)

prost