SQL-Statements als View-Feld und/oder View-Filter implementieren?

am 08.03.2011 - 18:41 Uhr in
Hallo alle zusammen,
habe mich mal etwas mit Views auseinandergesetzt. Soweit ist ja alles gut, konnte auch schon einiges damit umsetzten (Userliste, Beitragsliste). Doch solangsam stoße ich an die Grenzen. Ich finde Views "etwas" unflexibel (aber gut, ich kenne auch noch nicht das ganze System, welches dahinter steckt).
Für mich wäre es aktuell das einfachste, wenn ich selbst SQL-Statements schreiben könnte und diese als Feld und/oder Filter verwenden kann. Müsste doch theoretisch möglich sein, denn Views macht doch eigentlich auch nichts anderes, als sich SQL-Statements zusammen zu basteln und dann abzufeuern.
Stelle mir das wie folgt vor: (Vorsicht! Wunschvorstellung des Authors! ;-)
Es gibt eine Liste / ein PHP-Array in dem einmal der Name des Feldes und das SQL-Statement drin steht, die man bearbeiten kann...
Gibt es soetwas (ähnliches)?
Wäre für Tipps sehr dankbar!
Gruß Klaus
- Anmelden oder Registrieren um Kommentare zu schreiben
Hiermit geht
am 08.03.2011 - 21:13 Uhr
Hiermit geht das:
http://drupalcontrib.org/api/drupal/contributions--views--docs--docs.php...
Zitat: This hook should be
am 09.03.2011 - 09:45 Uhr
This hook should be placed in MODULENAME.views.inc and it will be auto-loaded. This must either be in the same directory as the .module file or in a subdirectory named 'includes'.
Code
contributions/views/docs/docs.php, line 673
<?php
function hook_views_query_alter(&$view, &$query) {
// example code here
}
?>
Also wenn ich das richtig verstanden habe, habe ich 2 Möglickeiten den Hook zu platzieren:
- same directory as the .module (bei mir: /httpdocs/sites/all/modules/views) und dort in die Datei "MODULENAME.views.inc" (bei mir views.views.inc)
oder:
- in a subdirectory named 'includes' (bei mir: /httpdocs/sites/all/modules/views/includes) in die Datei "MODULENAME.views.inc" (bei mir views.views.inc)
Was mich an der Sache etwas verwirrt: Es gibt schon eine Datei namens "views.views.inc". Allerdings steckt diese im Verzeichnis "/httpdocs/sites/all/modules/views/modules".
Des Weiteren, würde mich mal interessieren, wie denn nun so ein verpacketes SQL-Statement in solch einem Hook aussieht.
Der Beispiel-Code ist für mich leider nicht sonderlich hilfreich. Würde gern wissen, wie der "example code" genau sieht.
Gruß Klaus
Das ist eigentlich für ein
am 09.03.2011 - 10:36 Uhr
Das ist eigentlich für ein eigenes Modul gedacht, was du selber schreibst.
Und das SQL kommt ja drauf an, was du abfragen willst. Vielleicht mal andersrum:
Für welche Zwecke findest du Views denn nicht ausreichend?
Hallo netzkoop, bitte
am 09.03.2011 - 11:24 Uhr
Hallo netzkoop,
bitte entschuldige, habe mich evtl. etwas missverständlich ausgedrückt.
Ich würde gern bei dem Modul "Views" bleiben (und kein eigenes schreiben ;-) ) Mit diesem Modul "Views" habe ich bisher durch Felder mir bestimmte Werte ausgeben lassen - zum Beispiel folgende:

Jetzt würde ich gern, wenn ich ein neues Feld anlege:

ein eigenes Feld benutzen.
Zum Beispiel fehlt mir die Option "Benutzer: Artikelanzahl". Also wäre es super, wenn ich das SQL-Statement:
SELECT Count( * )
FROM node
GROUP BY uid
als Feld in dem Modul "Views" verpacken könnte.
Gruß Klaus
Hier gibt es verschiedene
am 12.03.2011 - 12:47 Uhr
Hier gibt es verschiedene Lösungsansätze für dein Problem.