CCK Felder in Abhängigkeit von der Rolle des Autors anzeigen oder ausblenden
Eingetragen von gaia@drupal.org (10)
am 06.03.2009 - 14:28 Uhr in
am 06.03.2009 - 14:28 Uhr in
Hallo allerseits,
ich habe einen Inhaltstyp mit einigen Feldern erstellt. Der Inhaltstyp darf von zwei Rollen erstellt werden, beide Rollen sollen alle Felder ausfüllen dürfen. Für die Darstellung nutze ich ein eigenes Template, in dem ich die einzelnen Felder bspw. so aufrufe:
<?php
<?php if (content_format('field_strasse', $field_strasse[0]) != '') : ?>
<?php foreach ($field_strasse as $strasse) { ?>
<?php print content_format('field_strasse', $strasse) ?>
<?php } ?>
<?php endif; ?>
Wie kann ich es nun anstellen, dass bestimmte Felder nur dann angezeigt werden, wenn der Autor des Inhalts der Rolle A zugewiesen ist?
Besten Dank für eure Hilfe
- Anmelden oder Registrieren um Kommentare zu schreiben
Sieh mal unter
am 06.03.2009 - 14:58 Uhr
Sieh mal unter Userverwaltung>Berechtigungen nach. Für jedes CCK feld tauchen da Einstellmöglichkeiten auf.
Gruß
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Danke für die Antwort wla.
am 06.03.2009 - 15:28 Uhr
Danke für die Antwort wla. Aber das ist nicht was ich brauche. Da ich Drupal 5 benutze habe ich das Modul cck_field_perms bereits installiert. Damit kann ich allerdings nicht das erreichen, was ich brauche. Damit kann ich nur regeln, welche Userrolle bestimmte Felder anlegen, editieren oder sehen darf.
Die User der beiden Rollen sollen alle Felder ausfüllen und editieren dürfen. Der erstellte Inhalt soll von allen gesehen werden können. Nur eben mit der Einschränkung dass bestimmte Felder nur dann sichtbar sein sollen, wenn der Autor des Inhalts eine bestimmte Rolle hat.
Vielleicht ist das ein Ansatz. Mit diesem Snippet kann ich im Template in Abhängigkeit von der Rolle des eingeloggten Users bestimmte Felder einblenden:
<?php global $user;
if (in_array('authenticated user', $user->roles)) : ?>
irgendein cck_feld
<?php endif; ?>
Ich hoffe, ich habe mich verständlich ausgedrückt. Vielleicht eine andere Idee?
vielen Dank nochmal
habs
am 06.03.2009 - 17:29 Uhr
ok, das muss in die template
<?php
global $user;
$author = user_load(array('uid' => $node->uid));
if (in_array('premium', $author->roles))
{
print $node->field_homepage[0]['view'];
}
?>
habs hier gefunden: http://drupal.org/node/273346
CCK Feldeingabe anzeigen in Abhängigkeit einer bestimmten Eingab
am 24.06.2009 - 15:22 Uhr
Hallo zusammen,
fast wie das obige Problem habe ich folgendes vor:
Anstatt zu entscheiden, dass bestimmte, ausgefüllte, Felder in Abhängikeit von der Rolle angezeigt werden, sollen bei mir die Felder in Abhängigkeit zu einer bestimmten Eingabe in dem Formular angezeigt werden.
Beispiel:
Ich habe ein Inhaltstyp Verzeichnis:
Hier kann man Namen, Strasse etc. eingeben.
Nun gibt es ein Feld, welches der Benutzer nicht sieht und später vom Admin ausgefüllt wird (Ja nein). Nun soll Beispielsweise in der Ansicht des Inhalts die Eingabe "Namen" nur dann angezeigt werden, wenn der Admin vorher auf ja gestellt hat.
Wie kann ich das lösen?
Viele Grüße Dennis
--------------------------------------------------
http://www.datenbock.de
http://twitter.com/datenbock
http://www.xing.com/profile/Dennis_ReinertFrerich
gaia@drupal.org schrieb Die
am 25.06.2009 - 08:16 Uhr
Die User der beiden Rollen sollen alle Felder ausfüllen und editieren dürfen. Der erstellte Inhalt soll von allen gesehen werden können. Nur eben mit der Einschränkung dass bestimmte Felder nur dann sichtbar sein sollen, wenn der Autor des Inhalts eine bestimmte Rolle hat.
...
Ich hoffe, ich habe mich verständlich ausgedrückt. Vielleicht eine andere Idee?
vielen Dank nochmal
Sorry, dass ich nochmal nachfrage. Da ich nicht so gut PHP spreche verstehe ich auch deinen Code nicht. Nun würde ich aber gerne wissen, wass es für einen Sinn hat, wenn jemand zwar ein Feld ausfüllen darf, aber dann nicht ansehen darf was er ausgefüllt hat?
Gruss Roger
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Es geht weniger darum, dass
am 29.06.2009 - 15:28 Uhr
Es geht weniger darum, dass der eintragende das sieht aber aus rein marketing technischen gründen könnte man beispielsweise in einem Branchenverzeichnis den Endkunden eher dazu bekommen, den kostenpflichtigen Eintrag zu buchen.
1. da er sich die Arbeit mit der eintragerei bereits gemacht hat
2. damit bei Suchanfragen potentieller Kunden bessere und mehr Ergebnisse geliefert werden
Viele Grüße Dennis
--------------------------------------------------
http://www.datenbock.de
http://twitter.com/datenbock
http://www.xing.com/profile/Dennis_ReinertFrerich