PDA

Zobacz pełną wersję : Joomla 2.5 pobranie grupy zalogowanego użytkownika



lukmar
13-05-2012, 11:58
Zaczynam dopiero "zabawę" z Joomla jest to moja pierwsza praca na własne potrzeby i nie nie znam za bardzo funkcji itd.

Mam problem z pobraniem grupy zalogowanego użytkownika. Przeszukałem już sporo tematów i większość z nich prowadzi do JFactory::getUser() niestety z tego co zauważyłem od joomla! 1.6 zmieniała się struktura bazy danych a powyższa funkcja daje nam dostęp tylko do tabeli users w której to już nie ma danych o grupie użytkownika gdzie wcześniej była to chyba kolumna gid.
W wersji którą mam aktualnie grupa użytkownika jest w tabeli usergroups w kolumnie title. Zrobiłem z palca zapytanie do bazy danych odnosząc się do referencji i otrzymałem potrzebne dane, ale zdaje sobie z tego sprawę iż jest to złe rozwiązanie i na pewno jest coś lepszego.



$query = "SELECT * FROM #__user_usergroup_map, #__usergroups WHERE #__user_usergroup_map.group_id= #__usergroups.id AND #__user_usergroup_map.user_id = '$user_id' ";
$baza->setQuery($query);

if ($wyniki = $baza->loadObjectList()) {
foreach ($wyniki as $wynik) {
$nazwa_grupy = htmlspecialchars($wynik->title, ENT_QUOTES); (...)



Natrafiłem na klasę JUser ale nie potrafię z tego skorzystać, oraz nie wiem czy jest poprawne.

Jeśli można to proszę o podpowiedź jak w Joomla! można w dobry sposób odczytać nazwę grupy zalogowanego użytkownika, bardzo wdzięczny będę za przykład :)

Z góry dziękuje za pomoc

palyga007
13-05-2012, 12:09
Coś takiego?
http://docs.joomla.org/JUser::getAuthorisedGroups/1.6

lukmar
13-05-2012, 15:13
Już wcześniej tam poszperałem :)
No i właśnie tutaj mam problem z zastosowaniem jakiejkolwiek funkcji z tej klasy gdyż nie ma tam żadnych przykładów, a ja dopiero raczkuje w temacie jeśli w ogóle można to już raczkowaniem nazwać :)

Bo teraz z tego przykładu jeżeli chce zastosować tamte funkcje to zrobiłem coś takiego:

$group =& JUser::getAuthorisedGroups();
echo "group - : .$group "


I tutaj dostaje odpowiedź w formacie tablicy czyli:
group - Array

I tutaj nie wiem za bardzo co zrobić, próbowałem coś takiego jak w JFactory::getUser()



$user =& JFactory::getUser();
echo "User login : " . $user->username ;


W moim przypadku spróbowałem zrobić tak:



$group =& JUser::getAuthorisedGroups();
echo "grupa: " . $group->title;


title, gdyż analogicznie chiałem aby zwróciło dane z kolumny title bo tam jest nazwa grupy w tabeli users. Wiem że to trochę głupie ale kto nie próbuje :D
No ale to niestety też nie działa, dodatkowo jeszcze na localu dostaje informacje z wykrzyknikiem typu:

Notice: Undefined property: serwisViewtest::$_authGroups in C:\wamp\www\AWSD\libraries\joomla\user\user.php on line 450
Notice: Undefined property: serwisViewtest::$id in C:\wamp\www\AWSD\libraries\joomla\user\user.php on line 457

JFactory::getUser(); jest ładnie opisane z przykładami i tam nie było problemu, to tutaj jest tylko nazwa klasy w którą jak klikniemy dostaniemy nazwy funkcji i nic więcej :( Nie wiadomo za bardzo jakie tam metody są jak tego użyć, przynajmniej dla mnie zielonego :)
Dlatego jeśli można prosić o poinstruowanie jak użyć tych funkcji bądź krótki przykład w kodzie byłbym wdzięczny :)