3 Stimmen

Eine Tabelle für Views freigeben

Ich habe eine Tabelle, die von einem Modul erstellt wurde. Ich muss einige ihrer Felder in eine bestehende Ansicht aufnehmen.

Ich habe es mit das Modul Tabellenassistent aber es wird lediglich eine separate Ansicht für diese Tabelle erstellt. Ich möchte in der Lage sein, Felder aus dieser Tabelle auszuwählen, die in eine bestehende Ansicht als zusätzliche Felder oder durch Beziehungen oder etwas Ähnliches hinzugefügt werden. Gibt es einen Workaround für das, was ich vorhabe?

4voto

kurreltheraven Punkte 116

Ah. Ansichten. Hat auch bei mir eine Weile gedauert. Diese Antwort ist für Drupal 6 und in der Zusammenfassung zeigt, wie man Felder zu definieren sowie mit einer Beziehung zu ermöglichen, die Felder, um die Knoten-Tabelle zu verknüpfen.

Innerhalb von modulname.module soll eine Funktion mit dem Inhalt:

function modulename_views_api() {
  return array(
    'api' => 2,
  );
}

Dann müssen Sie eine Datei mit dem Namen modulename.views.inc erstellen und eine Funktion wie die folgende definieren:

function modulename\_views\_data() {
    $data\['modulename\_table'\] = array(
        'table'     => array(
            'group'     => 'ModuleName',
            'title'     => 'Module name title',
        ),
        'join'  =>  array(
            // to join to node, we'll use a field in modulename\_table called 'nid'
            'node'      => array(
                'left\_field'    =>  'nid',
                'field'         =>  'nid',
            ),
        ),
    );

    // now we define the fields in the table like this
    // check out modules/views/handlers to see more specific handlers

    $data\['modulename\_table'\]\['fieldname'\] = array(
        'title'     => 'fieldname',
        'help'      => 'fieldname description',
        'field'    => array(
            'handler' => 'views\_handler\_field',
        ),
    );

    $data\['modulename\_table'\]\['nid'\] = array(
        'title'     => 'related node',
        'help'      => 'the field that relates back to {node}',
        // here we implement a relationship to nid
        'relationship'  => array(
            'base'      => 'node',
            'field'     => 'nid',
            'handler'   => 'views\_handler\_relationship',
            'label'     => 'modulename row node',
        ),
        // this relationship can be turned on in views
    );

    return $data;
}

1voto

googletorp Punkte 32775

Sie können hook_views_data verwenden, um Ihre Tabelle im Code zu definieren. Solange Sie nicht wollen, dass Views spezielle Manipulationen vornehmen, ist es fast so einfach wie die Definition der Tabelle mit der Schema-API.

1voto

Mixologic Punkte 950

Die andere Möglichkeit ist, den Tabellenassistenten zu verwenden, um die Tabellen der Datenbank zugänglich zu machen, und dann das Migrationsmodul zu verwenden, um die Ansichten zu erstellen. http://drupal.org/project/migrate

1voto

Scott Evernden Punkte 37117

Ich habe festgestellt, dass die Ansichten Benutzerdefiniertes Feld Modul kann ich so ziemlich alles machen, was ich brauche, um seltsame Felder zu Ansichten hinzuzufügen vielleicht hilft das ja.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X