Node-Zugriffsrechte dynamisch vergeben?
am 17.02.2010 - 21:43 Uhr in
Hallo allerseits,
ich habe gerade eine etwas kniffligere Sache zu lösen, allerdings handelt es sich um einen ganz essentiellen Bestandteil der geplanten Seite, daher wäre es schön, wenn ich dafür eine Lösung finden würde. Der Sachverhalt ist insgesamt noch etwas komplizierter, ich vereinfache ihn einfach mal:
Benutzer sollen nur die (erweiterten) Profile der Benutzer sehen können, die älter sind als sie selbst. Ich denke, das mit dem View sollte eher unproblematisch sein, da nur die entsprechenden Profile anzuzeigen.
Aber: Was ist damit, wenn der Benutzer (z.B. Raten oder einen Link) direkt auf eins der Profile kommt, die er nicht sehen darf? Ihm soll in dem Fall ganz klar ein "Zugriff verweigert" angezeigt werden.
Normalerweise löst man sowas ja über Node Access (hab mir auch Content Acces und ACL angeschaut) und Rollen - aber in dem Fall kann man keine Rollen vergeben, schließlich ergibt sich das ja dynamisch von User zu User. Z.B. A ist älter als B ist älter als C. C dürfte dann alle Profile sehen, B nur das von A, A gar keins. Kommmt ein User D dazu, der altersmäßig zwischen B und C liegt, darf D das Profil von C sehen und A und B das von D. Es ist also immer eine noch nicht einmal reziproke 1:1-Beziehung. (Ok, im Anwendungsfall ist es so, dass die Berechtigungen reziprok verlaufen werden.)
Noch mal: Rollen sind für diesen Anwendungsfall nicht machbar.
Eigentlich ist die Sache doch einfach, oder sollte es sein: User X ruft Node auf, der von User Y erstellt wurde. In dem Moment muss eine Abfrage stattfinden, ob X älter als Y ist (Alter im CCK-Feld).
Wahrscheinlich muss ich da irgendwo mit einem klitzekleinen PHP-Schnipsel rein, aber wo? Muss ich da ein eigenes Modul schreiben, wo muss ich dann ansetzen?
(In irgendeiner handgeschriebenen PHP-Seite aus meiner Vor-Drupal-Zeit hätte ich sowas mit 'ner passenden Datenbankabfrage wohl in 5 Minuten eingebaut.)
Wichtig wie gesagt: Es geht um die Nodes selbst. Views denke ich in den Griff kriegen zu können. Oder 'nen View schreiben, der mir genau einen Node (oder je nach Alter der Person relativ zum eigenen gar nix) anzeigt, und die Nodes selbst komplett sperren?
Auch schon überlegt: In den View keinen Profillink, sondern nur eine Anfrage für Friendlist / User Relationships, so dass der andere erst bestätigen muss, dass man Zugriff hat.
Außerdem sollen die User sich PMs schreiben können. Das Modul ruft aber standardmäßig alle Usernamen über Ajax ab - das soll natürlich auch nicht sein! Eine Einschränkung geht auch hier nur über Rollen (und da auch erst nach dem Versandversuch), mir persönlich würde es reichen zu wissen, wie ich das Default-Ajax-Feld des Moduls in eine normales vorausgefülltes (und am besten nicht änderbares) Textfeld umwandle.
Oder kein PM-System, sondern die Nachrichten als Nodes mit zwei Userreferences bauen? Das normale Kontaktformular mit der E-Mail-Addy scheidet hier auch aus.
Vielleicht denke ich an einigen Stellen zu kompliziert oder sehe den Wald vor Bäumen bzw. die ganz naheliegende Lösung nicht. Irgendwie kriege ich das sicher gelöst, aber ob das nun grad von hinten durch die Brust ins Auge sein muss?
LG
Sonja
- Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Sonja, ist auf jeden
am 17.02.2010 - 23:58 Uhr
Hallo Sonja,
ist auf jeden Fall ne spannende Fragestellung. ;-)
Ich kenne das Rechtemodell von Drupal nicht gut genug, um dir eine "saubere" Lösung zu nennen. Die Rechtematrix wird ja aber mit zunehmder Benutzerzahl sehr komplex und gleichzeitig muss sie dynamisch bleiben, um die genannte Bedingung zu gewährleisten.
Mein Ansatz wäre Rules: Checke vor dem Betrachten eines Inhaltes, ob folgende Bedingung gültig ist: Nodeprofile A < Nodeprofile B. Wenn nein, Redirect auf eine andere Seite mit Fehlermeldung. Hat eben im Schnelldurchlauf mit 2 Nodes auf Anhieb funktioniert. Lässt sich vielleicht mit deinem PHP Schnipsel von damals gut ausbauen. ;-)
Viel Erfolg, Ronald
Zur ersten Frage mit dem
am 26.02.2010 - 14:48 Uhr
Zur ersten Frage mit dem Zugriff auf die Profile, das geht in der template.php in deinem Theme:
<?php
/**
* Override of template_preprocess_page()
*/
function phptemplate_preprocess_page(&$variables) {
// Du hast das komplette User Objekt in $variables['user']
$uid = $variables['user']->uid;
// Hier kannst du jetzt deine Bedingung abfragen.
if (bedingung nicht erfüllt) {
$variables['content'] = 'Zugriff verweigert';
}
}
?>
Zur Zweiten Frage, dazu brauchst du ein kleines eigenes Modul mit einem hook_form_alter(). Hier kannst du das Autocomplete Textfeld über die Form API in ein deaktiviertes vorausgefülltes Input Feld umwandeln. Falls du nicht weißt wie, helf ich gern nochmal im Detail weiter.
Dankeschön, auf die
am 18.02.2010 - 00:10 Uhr
Dankeschön, auf die Geschichte mit Rules bin ich eben auch schon gekommen - hatte damit nur noch nie wirklich gearbeitet bzw. für die dort sichtbaren Einstellungen in meinen Projekten (meist doch eher 1-Frau-Projekte bislang) noch keinen Bedarf gesehen und keine Zeit gehabt, mal rumzuprobieren.
Ich hab das eben mal in Abhängigkeit von der User-ID durchexerziert, das hat schon mal geklappt. Jetzt muss ich nur noch rausfinden, wie ich an das Token für die CCK-Felder rankomme, die werden dort nämlich nicht angezeigt ... mmh, mal überlegen, vielleicht per Token? :-)
Und dann das Regelset noch ein wenig komplexer, da kommt nämlich noch eine weitere Bedingung mit rein, aber wenn man das einmal raus hat.
Ach übrigens, das mit dem PHP-Schnipsel von damals hast Du missverstanden. Ich meinte nur, dass ich sowas früher in PHP schnell selbst geschrieben hätte. Und das hier dann evtl auch ein kleiner Schnipsel wenn-dann reicht ... ohne im Kopf zu haben, dass es dank Rules vielleicht sogar ohne geht.
Und dann bleibt da die PM-Frage, daher will ich's mal noch nicht als gelöst markieren hier.
LG
Sonja
Ich hatte das mit dem
am 18.02.2010 - 00:24 Uhr
Ich hatte das mit dem Schnippsel schon verstanden. Heute musst du ihn eben umschreiben, für Drupal Rules :-)
Je nachdem, was du mit Rules vergleichen willst, bietet dir das Modul schon sehr viel, du kannst Variablen aus Node- und Userobjekten laden. Ggf ist aber auch ein PHP 5 Zeiler schneller gemacht, wenn du Felder vergleichen willst.
Den Ansatz von Jochen finde ich auch charmant. Im Template den Content wegblenden, wenn eine bestimmte Bedingung erfüllt ist...
Viel Spaß beim Tüfteln, Ronald :-)
rkr@drupal.org schrieb Ich
am 18.02.2010 - 00:58 Uhr
Ich hatte das mit dem Schnippsel schon verstanden. Heute musst du ihn eben umschreiben, für Drupal Rules :-)
Wie soll ich einen Schnipsel UMschreiben, den es nie gegeben hat? Leider doch nicht verstanden. ;-)
Tja, an die Template-Sache habe ich relativ früh auch schon gedacht ... sind alles die Dinge, die ich irgendwie noch nie machen musste, weil rupal schon so verdammt viel kann, ohne dass man ihm an die Eingeweide geht.
Ich habe noch mal geschaut. Ich nehme ja als Bedingung in dem Fall Rules->Numerischer Vergleich (wenn ich jetzt einfach mal von Timestamp ausgehe). Und dann ein Token-Ersetzungsmuster - so dachte ich. Leider kann ich das CCK-Feld nur bei "Ersetzungsmuster für angezeigter Inhalt" finden, was insofern noch ok wäre, weil das Feld sowieso mit dem zur Debatte stehenden Content Type verknüpft ist und dadurch zufällig der Autor des Nodes abgedeckt wird - unter "Ersetzungsmuster für Autor des Inhalts" ist dieses Feld eben nicht zu finden. Und auch unter "Ersetzungsmuster für handelnder Benutzer" nicht - auf das zu seinem Profil (Content Profil) gehörende Feld müsste ich irgendwie zugreifen können. Und genau die Frage, wie ich da rankomme, würde sich dann übrigens auch für die Lösung mit dem Template stellen - da wäre ich diesbezüglich genauso ratlos. Denn die User-ID hilft mir ja gerade nicht weiter.
Ansonsten aber danke für den Tipp mit dem Formular, das hört sich spontan irgendwie so an, als könnte ich selbst rausfinden, wie das geht, zumal ich mich mit der Grundstruktur von Modulen schon mal ein wenig auseinander gesetzt habe.
LG
Sonja
Denn die User-ID hilft mir
am 26.02.2010 - 14:48 Uhr
Die User-ID ist ja nur ein Beispiel. In
$variables['user']ist das ganze User-Objekt drin. Ich glaube, bzw. könnte mir vorstellen, dass auch das Modul Content Profile hier den entsprechenden "User-Node" reinlädt.Wenn nicht gibt es bestimmt irgendeine Funktion im Modul Content Profile die du dafür verwenden kannst. Ich würde tippen auf:
/*** Returns an array suitable for use with drupal_render,
* that shows all content_profiles as configured by the admin.
*/
function content_profile_show_profiles($uid) {
[...]
}
Vermutlich ist es dieses
am 18.02.2010 - 10:02 Uhr
Vermutlich ist es dieses hier:
http://drupalcontrib.org/api/function/content_profile_load/6
Versuche mal, bei der Zahl
am 18.02.2010 - 10:17 Uhr
Versuche mal, bei der Zahl folgendes einzutragen:
<?php$myuser = user_load([author:uid]); profile_load_profile($myuser); $datum_autor = $myuser_profile_geburtsdatum; echo $datum_autor;
?>
Mit dieser Zeile müsste dann das Zahl-Feld den Wert des Profil-Feldes für's Geburtsdatum des Autors annehmen annehmen.
Exterior schrieb Versuche
am 18.02.2010 - 11:14 Uhr
Versuche mal, bei der Zahl folgendes einzutragen:
<?php$myuser = user_load([author:uid]); profile_load_profile($myuser); $datum_autor = $myuser_profile_geburtsdatum; echo $datum_autor;
?>
Mit dieser Zeile müsste dann das Zahl-Feld den Wert des Profil-Feldes für's Geburtsdatum des Autors annehmen annehmen.
Wo denn jetzt genau, in der template.php? Klingt auf jeden Fall schon mal gut, jetzt muss ich nur noch das Gleiche auch für den Benutzer durchziehen (da muss ich wohl einfach nur mal nachschauen, was statt author:uid rein muss, wahrscheinlich sowas wie user:uid *wildrumrat*). Die Vergleichsoperation sollte dann ja ein Kinderspiel sein.
Und ich muss es auf einen Nodetype (oder wenige) eingrenzen - ok, das packe ich vermutlich einfach als zusätzliche Bedingung mit rein.
Sorry übrigens, aber ich stehe derzeit einfach mal wieder vor einer gewissen Klippe in meiner persönlichen Drupal-Lernkurve. Es ging bislang so viel, auch an komplexen Abfragen, ohne wirklich in den Code reinzumüssen, dass ich einfach den Dreh, wo und wie ich jetzt ganz genau auf die API irgendwelcher Sachen zugreife und was wo zur Verfügung steht und wie angesprochen wird, noch nicht raus habe.
Danke bisher erstmal!
Ohne jetzt im Detail
am 18.02.2010 - 11:59 Uhr
Ohne jetzt im Detail nachzuschauen: Da beide Module (Rules, Content Profile) von fago sind, kannst du bestimmt mit Rules die Profile Objekte laden und vergleichen, ohne PHP zu schreiben. Es gibt da sehr ausgefeilte Rule Sets und Operatoren. Ob das tolle Performance ist, kann ich nicht beurteilen.
Grüße, Ronald :-)
Den PHP-Code von oben kannst
am 18.02.2010 - 13:28 Uhr
Den PHP-Code von oben kannst du beim nummerischen Vergleich für Rules verwenden. Damit müsstest du dann die Geburtsdaten vergleichen können und wenn das Datum des Profilbesitzers nicht älter ist, kannst du eine Weiterleitung zu einer Zugriff-Verboten-Seite machen oder sowas.
Exterior schrieb Den
am 18.02.2010 - 23:35 Uhr
Den PHP-Code von oben kannst du beim nummerischen Vergleich für Rules verwenden.
Kann sein, dass ich blind bin, aber ich finde da bei Rules nirgendwo ein Feld, um meinen eigenen PHP-Code auszuführen, wie man das ja in Drupal sonst an jeder Ecke irgendwo hat.
Oder kommt die Codezeile so, wie sie ist (mehr oder weniger zumindest), in das Feld rein, wo das Token auch reinkäme?
Das soll dort direkt in die
am 19.02.2010 - 11:34 Uhr
Das soll dort direkt in die Zeile für die Zahl:
http://s8b.directupload.net/file/d/2075/wclbl79w_jpg.htm
Hab's aber nicht probiert, musst du mal testen, ob's klappt.
Exterior schrieb Das soll
am 19.02.2010 - 13:02 Uhr
Das soll dort direkt in die Zeile für die Zahl:
http://s8b.directupload.net/file/d/2075/wclbl79w_jpg.htm
Hab's aber nicht probiert, musst du mal testen, ob's klappt.
Dankeschön, werde ich nachher probieren, hab nur grad ein paar eilige Kunden hier.
Mir kam aber vorhin auch schon der Gedanke, dass ... tata, ich in dieser einen Testinstallation vergessen haben könnte, das Core-Modul PHP-Filter zu aktivieren. Kein Wunder also, dass ich dort bis auf die Token-Ersetzungsmuster nichts gefunden habe ... und jetzt kriege ich da sogar verfügbare PHP-Variablen angeziegt, schick!
Ich habe die Tage noch zu jemandem gesagt, dass manchmal das Problem vor dem Computer sitzt ... manchmal kann ich das auch für mich selbst reklamieren, nobody is perfect!
So, mal ein kleiner
am 21.02.2010 - 18:07 Uhr
So, mal ein kleiner Zwischenstand: So langsam habe ich das raus, wie und wo ich auf die ganzen Werte zugreife (inkl. Ausgabe auch von verfügbaren Arrays in meiner Testumgebung), meine ganzen Operationen kann ich mir dann in PHP ja so zurechtlegen, wie ich das möchte.
Den PHP-Code gebe ich allerdings nicht beim numerischen Vergleich und der Zahl ein, da dort auch die Länge sehr ungünstig begrenzt ist. Habe aber nach meiner nachträglichen Aktivierung (s.o., shame on me) des PHP-Filters dann auch die Möglichkeit gefunden, direkt meinen benutzerdefinierten PHP-Code für eine Bedingung einzugeben - genau das ist es, was ich brauchte, so zu Fuß geht es dann einfach schneller und angepasster.
Nachdem meine Testregel jetzt richtig ausgewertet wird, kann ich dann jetzt in Ruhe meine etwas komplexere Regel bauen.
Auch nehme ich für die Sache mit dem Geburtsdatum und eine weitere Angabe, die da einfließt, jetzt doch das normale Profile-Modul, so wie es aussieht.
Danke bislang allen, die geholfen haben!
Sonja
Das hört sich ja gut
am 21.02.2010 - 19:03 Uhr
Das hört sich ja gut an.
Das mit dem PHP-Filter ist echt so ein Klassiker. Schon oft gedacht "ja spinn ich, hier konnte ich doch mal eine PHP Funktion aufrufen". :-)
Viel Erfolg, Ronald
Tja, für die Nodes bzw.
am 22.02.2010 - 10:24 Uhr
Tja, für die Nodes bzw. Profile hab ich's ja raus, jetzt felt mir aber irgendwie der Zugriff unter Views.
Ich komme dort weder an profile_geburtsdatum ran noch an *irgendein* Feld des Content Profile. Dass man an die zusätzlichen Felder unter Profile wohl nicht so recht als Filter zugreifen kann, da kein Node, ist mir jetzt schon irgendwo begegnet. Wobei: ich habe auch profile_geschlecht, und das funktioniert als Filter einwandfrei. Das Geburtsdatum ist aber - wer hätte es gedacht - als Date angelegt, aber da komme ich weder als Filter noch Argument ran. Dito für alle Sachen unter Content Profile, obwohl ich hier eine Beziehung hinzugefügt habe.
Ich wollte das ganze unter Arguments mit einem PHP Argument Handling Code machen, da ich ja ohnehin auch wieder eine Vergleichsoperation in Abhängigkeit des handelndenen Users machen will, komme hier aber nicht weiter. Selbst Ausgaben, die ich zur Probe angelegt habe, greifen weder für das profile_geburtsdatum noch für das Content Profile.
Grundsätzlich hätte ich das Geburtsdatum auch lieber im Profile als im Content Profile, weil ich es dann easy so einstellen kann, dass der User es nach der Registrierung nicht mehr ändern kann. Bei Content Profile habe ich auch in den Permissions noch keinen Weg gefunden, um zu verhindern, dass er es nachträglich immer wieder editiert, dort gibt es nur edit und view, edit muss ich aber freigeben, damit er überhaupt was eingeben kann. Mmmh, gibt da ja sicher auch irgendwo einen Weg, das zu unterbinden.
Im Prinzip geht es ja nur um: zeige mir alle User an, deren Profile ich sehen darf, basierend auf den Regeln, die ich ja beim Profilaufruf selbst jetzt schon erfolgreich anwende.
Viele Grüße
Sonja
Hint: unter Views sind
am 22.02.2010 - 10:27 Uhr
Hint: unter Views sind Date-Felder nicht unter "content" gruppiert, sondern in einer eigenen Gruppe "date". Habe mir auch schon mal den Wolf nach einem CCK Date-Feld gesucht. Könnte das sein?
Grüße, Ronald :-)
Nee, leider nicht! Da hatte
am 22.02.2010 - 11:33 Uhr
Nee, leider nicht! Da hatte ich auch schon drauf geachtet, das sind aber nur so Sachen wie Änderungsdatum etc. drin. Hatte auch schon mal in anderen Projekten so Sachen mit einfachem Terminkalender, da bin ich an die Daten auch rangekommen. Immerhin hat mich das aber auf die Idee gebracht, mal dort nachzuschauen, und dann ist mir aufgefallen, dass es ja die Auswahl zwischen date(node) und date(users) gibt, ich das aber nicht umgestellt hatte, da ich ja zuerst mit dem User rumhantiert habe. Und das Content Profile mit allen seinen Feldern ja ein Node ist. War nur irritiert, dass ich da auch über den PHP-Code auch nicht rankam.
Nun denn, meine Überlegung ist jetzt diese: Als Standardargument hatte ich an "Benutzer-ID des angemeldeten Benutzers" gedacht, aber vielleicht ist es geschickter, per PHP-Code direkt das Geburtsdatum (z.B. als Timestamp, würde mir auch rechnerisch viel erleichtern) zu holen. Da sollte ich noch mal schauen, ob ich den oben geposteten Schnipsel etwas anpassen kann.
Und dann im Validator ebenfalls mit PHP ran, und da müsste ich dann irgendwie jeden der anderen User holen und dessen Geburtsdatum vergleichen ... ich nehme mal an, dass die Validierung und Rückgabe von TRUE oder FALSE auf jeden einzelnen Datensatz bezogen ist?
Sonst würde mir nämlich jetzt echt keine andere Möglichkeit mehr einfallen.
LG
Sonja
Also mit Views kannst du
am 22.02.2010 - 12:10 Uhr
Also mit Views kannst du doch zwischen dem User (Argument) und dem Content Profile einfach eine Beziehung herstellen. Danach kannst du über die Beziehung auf alle Felder zugreifen.
Grüße, Ronald
Tja, wenn man in Drupal
am 22.02.2010 - 12:38 Uhr
Tja, wenn man in Drupal irgendwas EINmal angewendet hat, dann behält man meist, wie das geht, und kann das gleich auf zig andere Sachverhalte übertragen. Aber manche Sachen sind zunächst erstmal eine Blackbox und zu wenig dokumentiert, oder zu wenig für Fällen, die meinem ähneln. Und dann steht man erstmal da, sieht die ganzen Sachen, aber nicht unbedingt, was sie bewirken
Beim Rumspielen in Views mit den Argumenten habe ich dann auch gemerkt: Ah ja, ich kann jetzt aufgrund der Beziehung da unten ein Häkchen für das entsprechende Feld machen. Das Ganze auf den handelnden Benutzer übertragen, und im Moment nur hoffen, dass er mir wirklich das passende Argument ausspuckt. Das Argument kommt dann irgendwie in die Validierung (wobei da nach Anschauen der anderen Optionen wohl echt nur PHP in Frage kommt, aber daran soll es nicht liegen).
Aber nun brauch ich ja noch den Vergleich mit allen anderen Nutzern bzw. dem einen Feld in deren Content Profile, und wie macht man das jetzt? Da steh ich nun echt ratlos da. Ein zweites Argument, das sich dann genau wie unterscheidet? Irgendwie mit Wildcard? Oder im ersten Argument irgendwie in PHP mit einer Schleife oder einem Array arbeiten? Wie sag ich dem Kinde, dass es alle Benutzer holen und für jeden ein TRUE oder FALSE zurückgeben soll, um ihn anzuzeigen oder nicht anzuzeigen? Wobei gerade die Kombination Schleife und einzelen Wahrheitswerte nicht gerade vielversprechend klingt.
Ach ja, Typ des Views ist "Benutzer".
*Knoten im Hirn*
Hast du schon die
am 22.02.2010 - 13:42 Uhr
Hast du schon die Relationship "Node: Content Profile" hinzugefügt?
Grüße, Ronald
Ja, hab ich, darauf hatte
am 22.02.2010 - 13:57 Uhr
Ja, hab ich, darauf hatte ich
Ah ja, ich kann jetzt aufgrund der Beziehung da unten ein Häkchen für das entsprechende Feld machen.
bezogen.
Meine Frage ist eher so: für den handelnden User hab ich den Wert, aber wie hole ich den jetzt nochmal für alle anderen User und vergleiche den jeweils und gebe in Abhängigkeit davon die erlaubten User aus? Bzw. WO?
Wahrscheinlich ist das ganz einfach, man muss nur erstmal wissen, wie!
So, ich habe mich jetzt noch
am 23.02.2010 - 00:45 Uhr
So, ich habe mich jetzt noch einmal ein paar Stunden durch diverse Tutorials und auch Screencasts zu Views und seinen Arguments gewühlt, habe aber immer mehr das Gefühl, dass das auch nicht das ist, was mir bei meinem speziellen Filter hilft - aber irgendwo muss das doch gehen! Bin so langsam kurz davor, die komplette Anwendung selbst zu coden!
Grundsätzlich ist es doch so, dass die Argumente aus den URLs kommen bzw. allgemein eine ganze Menge damit zu tun haben. Ich kann aber auch ein Standardargument zur Verfügung stellen, z.B. "Benutzer-ID des angemeldeten Benutzers" (klingt in meinem Fall ja recht plausibel, zumindest als Ausgangsbasis). Oder einen PHP-Code, mit dem ich z.B. gleich das Geburtsdatum des handelnden Users als Argument übergeben könnte, wenn ich das richtig sehe. Ich könnte sicher auch die "Benutzer-ID des angemeldeten Benutzers" stattdessen als Argument in der URL haben.
Nun hab ich auch ein wenig was von der Validierung gesehen, und soweit ich das den Beispielen entnehmen konnte, geht es dort nur darum, ob im Ganzen TRUE oder FALSE zurückgegeben wird und so z.B. in Abhängigkeit der User-ID (wenn ich z.B. versuche, eine andere als meine eigene aufzurufen) eine Seite erst gar nicht angezeigt wird.
Was ich aber brauche - in meinem Beispiel gehe ich davon aus, kein Argument explizit in den URLs zu haben, und dass die Seite auf jeden Fall angezeigt wird - ist eben nur eine Filterung nach den Nodes oder Userprofilen, die der Benutzer in Abhängigkeit seines eigenen Geburtsdatums sehen darf. Die sollen dann angezeigt werden.
In den Beispielen, die ich jetzt hatte, ging es leider nur um so vergleichsweise triviale Sachen wie eigene Posts anzeigen. Das geht dann schon automatisch, sobald das Argument da ist (das ja mit den entsprechenden Nodes direkt verknüpft ist).
D.h. für mich würde es dann eventuell noch hinhauen, auf Profile oder Nodes mit dem gleichen Geburtsdatum zu filtern, wenn ich das mal übertrage. Aber ich muss ja auch noch mein "größer als" bzw. "kleiner als" irgendwo unterbringen. Muss das jetzt in den Argument-Code, muss das in die Validation, KANN das dort überhaupt funktionieren?
Bin immer noch der Meinung, auch wenn ich eine ganze Weile nix mehr selbst im Zusammenspiel PHP/MySQL gecodet habe, dass das doch mit ein jaar Joins und den richtigen Verschachtelungen ein Kinderspiel sein sollte.
Ach ja, ich habe auch noch das http://drupal.org/project/viewsphpfilter Modul angetestet - leider hat der Autor des Moduls es reingestellt, ohne auch nur den Hauch einer Anleitung oder mal ein Anwendungsbeispiel zu geben. Er schließt alle Issues mit der Begründung, keine Zeit für Support zu haben, und verweist aufs Forum. Wenn im Forum mal jemand nachgefragt hat, gab es nie (brauchbare) Antworten. Also Doku gleich Null, man hat keinen Anhaltspunkt, wie es reinpasst. Ich konnte lediglich sehen, dass mein eigener Code dann nicht "standalone" war, sondern irgendwo in andere Abfragen mit reingefummelt wurde, wo dann aber Variablen, die ich in meiner Abfrage nie benutzt hatte, nicht gefunden wurden.
Oder macht es Sinn, Views für den Zweck in die Ecke zu schmeißen und vielleicht ein eigenes Template zu basteln, dass mir den "View" anhand meiner eigenen Abfrage ausgibt?
LG
Sonja