Csoport nevének kiírása tartalomba

szogedi képe

Hali!

Órák óta próbálom kinyomozni, hogy miként tudnám a felhasználó csoportjának nevét kiírni a tartalom elejére.

<?php print $user->group vagy role, vagy roles, stb. ?>

Melyik az a paraméter, amely kiírná nekem a bejelentkezett felhasználó csoportjának nevét?

Drupal verzió: 
Bálint képe

Szia!
A $user objektumnak a roles nevű adattagjában lesz, ami neked kell, és ez egy tömb.
Vagyis, ha mondjuk szépen, vesszővel ellválasztva szeretnéd kiíratni a csoportok nevét, amibe a felhasználó tartozik, akkor azt megteheted így:

<?php
  global $user;
  print implode(', ', $user->roles);
?>

Érdemes ilyenkor, ha nem vagy valamiben biztos print_r-rel kíratni a tömböt, vagy az objektumot, pl. most így:

<?php
  print '<pre>';
  print_r($user);
  print '</pre>';
?>
A <pre>
0
0
szogedi képe

...szeretném, ha az "authenticated user" megnevezés nem kerülne a kiíratásba, csak a "csoport1" csoport neve pl. Alapvetően a felhasználók mind-mind csak egy csoportba tartoznak.

Van erre is megoldás?

0
0
Bálint képe

3-as kulccsal lesz a $user->roles tömbben a következő csoport, amibe tartozik a felhasználó, de ha kipróbáltad volna a print_r-t, ahogy javasoltam, akkor te magad is láthattad volna.
Vagyis akkor így írathatod ki a csoportod nevét:

  print $user->roles[3];
0
0
Bálint képe

Ha pedig mégis azt szeretnéd, hogy legyen felsorolva az összes csoport neve, kivéve az 'anonymus user' és az 'authenticated user', akkor azt én így csinálnám:

<?php
  global $user;
  $role = $user->roles;
  unset($role[1]); // az anonymus user nevű csoport 1-es kulccsal szerepel
  unset($role[2]); // az authenticated user nevű csoport 2-es kulccsal szerepel
  if($role) print implode(', ', $role); 
  else print "Ez a felhasználó nem tagja egyetlen csoportnak sem";
?>
0
0
szogedi képe

... a print_r funkciojat idaig nem ismertem, de legalabb tanultam mast is.

Meg egyszer koszonom a segitseget.

0
0