Forum
Eingetragen von mogul (6)
am 05.05.2009 - 12:17 Uhr in
am 05.05.2009 - 12:17 Uhr in
Hallo,
ich habe in Drupal einForum angelegt und möchte nun, dass hinter dem Namen des jeweiligen Autors auch seine Rolle, also Gast oder Admin ..., zu sehen ist.
Kann mir jemand sagen, wie ich das einstelle?
danke schonmal!
- Anmelden oder Registrieren um Kommentare zu schreiben
Themen...
am 05.05.2009 - 12:26 Uhr
Hi Rosa,
das kannst du mit ein wenig theming machen. Schau dir mal die Funktion http://api.drupal.org/api/function/theme_username/6 an. Damit kannst du in der template.php deines themes eine Funktion erstellen, die z.B. so aussehen könnte
<?php
function meintheme_username($object) {
if ($object->uid && $object->name) {
// Shorten the name when it is too long or it will break many tables.
if (drupal_strlen($object->name) > 20) {
$name = drupal_substr($object->name, 0, 15) .'...';
}
else {
$name = $object->name;
}
if (user_access('access user profiles')) {
$output = l($name, 'user/'. $object->uid, array('attributes' => array('title' => t('View user profile.'))));
}
else {
$output = check_plain($name);
}
// Hier wirds interessant
// Rollen des angemeldeten Users
$roles = $user->roles;
// Die Standardrolle für alle angemeldeten User entfernen
unset($roles[DRUPAL_AUTHENTICATED_RID]);
// Hat der User noch weitere Rollen?
if (count($roles) > 0) {
// Falls ja, die ROllen nacheinander mit Komma getrennt anhängen.
$output .= '<br/>Mitglied in '. implode(', ', $roles);
}
// Hier wirds wieder normal und Code aus dem Core
}
else if ($object->name) {
// Sometimes modules display content composed by people who are
// not registered members of the site (e.g. mailing list or news
// aggregator modules). This clause enables modules to display
// the true author of the content.
if (!empty($object->homepage)) {
$output = l($object->name, $object->homepage, array('attributes' => array('rel' => 'nofollow')));
}
else {
$output = check_plain($object->name);
}
$output .= ' ('. t('not verified') .')';
}
else {
$output = variable_get('anonymous', t('Anonymous'));
}
return $output;
}
?>
Ist jetzt nicht getestet oder sowas, sollte aber klappen.
Gruß,
McGo