Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Wie aus einer SELECT Abfrage eine View erstellen.

Eingetragen von rhodes (631)
am 01.01.2016 - 20:17 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo zusammen,

ich habe einen Nodetype "documents" und soll nun benutzerspezifische View erstellen. Leider ist es nicht damit getan einfach die uid als Contextual Filter zu übergeben.

Die Nodes, die einem Benutzer angezeigt werden sollen, werden jeweils durch eine relativ komplexe SQL Abfrage erstellt. Diese Abfrage kann ich nicht direkt in der View erstellen.

Beispiel:
user id = 5
views-Pfad: meineneueview/5

Document Nids, die die Select Abfrage für User 5 zurückliefert: 14, 234, 777...892 (bis zu 40)

Diese nids möchte ich jetzt als Filter an die View übergeben, so dass nur Documents mit diesen nids in der View angezeigt werden, der User aber die Möglichkeit hat noch mit Views-Bordmitteln zu filtern und zu sortieren.

Ich bin auf hook_views_data und die views_filter gestossen.

class meinfilter_handler extends views_handler_filter {
  function query() {
        ???
    }
}

Allerdings habe ich keine Ahnung, wie ich der query function jetzt beibringe, welche nids sie an die View zurückmelden soll.

Hat jemand einen Tipp für mich?

Danke & Grüße

rhodes

‹ D6 nach D7 file field mit mehr als einer Datei Drupal 8: Kann kein Modul deaktivieren. ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

da übergibst du die user id

Eingetragen von caw (2762)
am 02.01.2016 - 07:50 Uhr

da übergibst du die user id (oder author id und evtl. beziehung zu author) als filter und die anderen filter kannst du ja als exposed setzen. schon fertig mit nur einem (1) view

  • Anmelden oder Registrieren um Kommentare zu schreiben

Leider nicht

Eingetragen von rhodes (631)
am 02.01.2016 - 10:39 Uhr
rhodes schrieb

Die Nodes, die einem Benutzer angezeigt werden sollen, werden jeweils durch eine relativ komplexe SQL Abfrage erstellt. Diese Abfrage kann ich nicht direkt in der View erstellen.
...

class meinfilter_handler extends views_handler_filter {
  function query() {
        ???
    }
}

...da die Nodes, die einem User in der View angezeigt werden sollen ausserhalb der View ermittelt werden. Es ist leider aufgrund der Komplexität und der vielen Parameter der Abfrage nicht möglich, diese SELECT Abfrage direkt in der View zusammenzubauen. Deshalb soll ein eigener Filter-Handler für die View geschrieben werden, der das Ergebnis der Abfrage an die View weitergibt. Und die Frage ist nun, wie ich diesem neuen Filter genau das beibringe...

  • Anmelden oder Registrieren um Kommentare zu schreiben

View ist Datenbankabfrage

Eingetragen von ronald (3857)
am 02.01.2016 - 12:37 Uhr

und generiert im Hintergrund eine (oder mehrere) entsprechende SQL-Query(s).

  • Anmelden oder Registrieren um Kommentare zu schreiben

...

Eingetragen von caw (2762)
am 02.01.2016 - 14:58 Uhr

...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Genau,

Eingetragen von rhodes (631)
am 02.01.2016 - 15:36 Uhr

Views ist selber ein Query-Generator. Nur ist der für meine Zwecke leider nicht geeignet (siehe oben). Mein node-array kommt aus einer anderen SELECT Abfrage.

Und meine Frage ist deshalb einfach nur, wie ich einen Array mit node IDs an eine selbst geschriebene Filtererweiterung übergebe. Es wäre toll, wenn das jemand wüsste.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst natürlich ein eigenes Modul schreiben,

Eingetragen von ronald (3857)
am 03.01.2016 - 22:11 Uhr

das das Ergebnis über hook_blocks zur Verfügung stellt.
Das Ergebnis kann ja dann die Struktur eines rendarable arrays haben, so wie es auch Views zur Verfügung stellt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 2 Wochen 4 Tagen
  • Textboxen mit Tabelle
    vor 2 Wochen 4 Tagen
  • Du sollst ja auch keine
    vor 2 Wochen 4 Tagen
  • Theme
    vor 2 Wochen 4 Tagen
  • Welches Theme benutzt du
    vor 2 Wochen 5 Tagen
  • Mit Responsive Raster hatte
    vor 2 Wochen 5 Tagen
  • Hallo Alex,um das Häkchen
    vor 2 Wochen 5 Tagen
  • Modul view_unpublished
    vor 3 Wochen 3 Stunden
  • Modul "override node options"
    vor 3 Wochen 21 Stunden
  • Im Grunde ist dass ein
    vor 3 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250270
Registrierte User: 20479

Neue User:

  • Stevebok
  • Robertnobia
  • AltonRaf

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 15 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association