role ellenőrzése comment.tpl.php -ban

joenavran képe

szeretném a fórumban a kommentelő neve mellé kírni, ha egy bizonyos csoport tagja.
az alábbi kóddal próbáltam, de sajnos nem nyert :)

<?php if (in_array('DOC', $author->roles)) {print "DOC";} ?>

mi a helyes megoldás?

Fórum: 
joenavran képe

D7 ez lemaradt :(

0
0
snufkin képe

Ez egy nagyon jo peldaja annak a funkcionalis logikanak, amit nem kellene a templatebe rakni. Template-be ugyanis elvileg csak valtozokat kellene printelni, es kesz, igy aztan barkinek akinek csak minimalis PHP tudasa van konnyu lesz a markupot valtoztatni.

En ugy oldanam meg, hogy csinalnek egy hook_preprocess_comment-et a template.php-be, valahogy igy:

function mytheme_preprocess_comment(&$variables) {
  $author = user_load($variables['comment']->uid);
  $variables['membership'] = in_array('DOC', array_values($author->roles)) ? t('DOC') : '';
}

Es ezutan a comment.tpl.php-ba csak annyit kellene irni, hogy print $membership;.

Most fejbol nem tudom, hogy a $variables['comment']-ben benne van-e a szerzo user object, meg kene nezni, hogy le lehet-e sporolni a user_load-ot.

A te template-dben a $author azert nem volt jo, mert ha megnezed a core altal keszitett preprocess fuggvenyt [https://api.drupal.org/api/drupal/modules%21comment%21comment.module/fun... (ami elokesziti neked a valtozokat), ott az $author az mar a lerenderelt szerzo (lasd a $variables['author'] = theme('username'...) sor).

4
0
joenavran képe

köszönöm a gyors segítséget, a megoldás tökéletes :)

0
0