Einen Node nur für "athenticated user" anzeigen, nicht für andere Rollen
am 20.08.2008 - 09:57 Uhr in
Hallo,
ich erstelle gerade eine Website für einen Verein. Mittels node access habe ich einige Seiten nur für die Rollen "bestätigtes Mitglied" und "Vorstand" freigegeben. Diese Rollen werden von der Vorsitzenden per Hand vergeben.
Nun hätte ich gerne, dass jemand, der sich gerade neu angemeldet hat, auf der Startseite einen Hinweis bekommt, dass er für die zusätzlichen Inhalte erst noch freigeschaltet werden muss. Dumm daran: Auch bestätigte Mitglieder, Vorstand, Editor und was ich sonst noch so an Rollen vergebe haben alle zusätzlich und nicht umkehrbar die Rolle "athenticated user" und bekommen diesen Node daher auch angezeigt. Gibt es eine Möglichkeit, einen Node anzuzeigen für "ist authenticated, aber keine weiteren Rollen zugewiesen"? Es geht nur um diesen einen Node, es sollte also auch nichts sein, wofür ich 4 neue Module installieren muss, das wäre etwas Overkill. ;-)
Ich benutze Drupal 6.4
- Anmelden oder Registrieren um Kommentare zu schreiben

Selbst wenn Du 4 Module noch
am 21.08.2008 - 06:28 Uhr
Selbst wenn Du 4 Module noch installieren müsstes, wieso wäre das Overkill? Nun ja, egal.
Aber generell solltest Du das mit einem Snippet in der Art
http://www.bywombats.com/blog/ryan/10-25-2007/checking-if-drupal-user-ha...
entsprechend lösen können
-------------------
gruss
drupalino
Modul
am 21.08.2008 - 09:03 Uhr
http://drupal.org/project/nodeaccess
P.S. - Sorry - habe mich eher von der Überschrift als vom Beitrag inspirieren lassen. Der Beitrag des vorredners ist bestimmt hilfreich.
tumblingmug
am 21.08.2008 - 09:16 Uhr
http://drupal.org/project/nodeaccess
P.S. - Sorry - habe mich eher von der Überschrift als vom Beitrag inspirieren lassen.
Ja, das glaub ich auch. Denn node access hab ich schon. ;-)
Leider kann ich auch mit den PHP Snippets nur bedingt was anfangen. Ich kenn zwar so einige Sprachen, aber PHP gehört nicht dazu. Muss ich mich wohl mal reinvertiefen, um zu sehen, ob das was bringt.
Trotzdem danke für eure Antworten.
---
Drupal 6.4 auf http://www.gochsheim-evangelisch.de und http://www.ps2000-bayern.de/test/
Relativ einfach
am 21.08.2008 - 09:47 Uhr
... ginge es evtl. auch so:
<?php global $user; if ($user->uid > 0 && $user->created + (24 * 60 * 60) > time()): ?>Du wirst für zusätzliche Inhalte <strong>innerhalb der nächsten 24 h</strong> erst noch freigeschaltet!
<?php endif; ?>
Da wird innerhalb des Textkörpers einer Node für die Anzeige der Message einfach nur abgefragt, ob die Erstellzeit des Benutzkontos älter als 24 h ist. Natürlich kann man das auch auf 5 sec. setzen (
$user->created + 5), womit ziemlich wahrlich nur einmal eine Anzeige erfolgt.Wenn Du das PHP-Modul nicht aktivieren und nicht mit dem PHP-Eingabfilter arbeiten willst, kann man das so auch in eine node-4711.tpl.php (nur für node 4711 gültig) schreiben.
PS: sorry für die Ausbesserungen - kann heute gar nicht rechnen :)
Wow.
am 22.08.2008 - 14:17 Uhr
Klasse.
Das ist natürlich absolut super und noch besser als mein ursprüngliches Anliegen.
Vielen Dank.
---
Drupal 6.4 auf http://www.gochsheim-evangelisch.de und http://www.ps2000-bayern.de/