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 - 19: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 - 06: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 - 09: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 - 11: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 - 13:58 Uhr

...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Genau,

Eingetragen von rhodes (631)
am 02.01.2016 - 14: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 - 21: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

  • [Gelöst] Menü wie hier samsung.com/de/ wie, mit Drupal?
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • [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
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Казино с минимальным депозитом
    vor 16 Minuten 7 Sekunden
  • Казино с минимальным депозитом
    vor 16 Minuten 45 Sekunden
  • Казино с минимальным депозитом
    vor 18 Minuten 2 Sekunden
  • Казино с минимальным депозитом
    vor 19 Minuten 39 Sekunden
  • Казино с минимальным депозитом
    vor 20 Minuten 27 Sekunden
  • melde mich mal wieder, da ich
    vor 2 Wochen 4 Tagen
  • Hey danke
    vor 2 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250238
Registrierte User: 20458

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 27 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