Návod na použití třídy JUser v Joomla 1.5 | Redakční systémy zdarma

  • Zapomenuté heslo?
  • Zapomenuté uživatelské jméno?
  • Vytvořit účet
Nejnovější verze: drupal 7.14 joomla 2.5.4 wordpress 3.3.2 prestashop 1.4.8 zencart 1.5.0
  • Domů
  • Všeobecně
    • Novinky
    • Články
    • Odkazy
  • Joomla
    • Novinky
    • Články
    • Komponenty
    • Videonávody
    • Demo
    • Fix it
    • Šablony
    • Šablony zdarma
  • Wordpress
    • Novinky
    • Články
    • Videonávody
    • Demo
    • Šablony
  • Drupal
    • Novinky
    • Články
    • Demo
    • Šablony
    • Videonávody
  • Prestashop
    • Novinky
    • Demo
    • Články
    • Šablony zdarma
    • Videonávody
    • Šablony
  • Zencart
    • Demo
    • Články
    • Šablony
  • Ostatní
    • Vision CMS
    • MyPage File CMS
    • Albireo
    • MNews CMS
 
 
Úvodní strana \ Joomla \ Joomla \ Návod na použití třídy JUser v Joomla 1.5

Návod na použití třídy JUser v Joomla 1.5

Pátek, 21 Srpen 2009 12:28

joomla logoNedávno jsem psal jeden menší skript pro Joomlu, a jeden z předpokladů byl aby skript rozeznal přihlášeného uživatele. Rozhodl jsem se Vám tedy ukázat, jak získat informace pro Vaše skripty o daném uživateli. Je to jednoduší, než složitě sepisovat dotazy na databázi. Podívejme se tedy na tuto třídu.
Pro získání informací o přihlášeném uživateli můžeme s výhodou využít Joomla Framework. Pro získání informacích o uživateli použijeme funkci třídy JFactory getUser().
$uzivatel = JFactory::getUser();
Poté můžeme snadno získat informace z proměnných, které si popíšeme o kousek níže. Například základní informace vypíšeme takto:
echo "Jméno: {$uzivatel->name}, email: {$uzivatel->email}, už. jméno {$uzivatel->username}";
Všechny proměnné obsahující objekt user jsou tyto:
  • id - Jedinečné číslo uživatele, které ho jednoznačně identifikuje v tabulce databáze
  • name - Celé jméno, ne uživatelské
  • username - přihlašovací jmméno
  • email
  • password - zašifrovaná verze uživatelského hesla
  • password_clear - Nastavuje se, pokud se mění hlavní heslo. Jinak zůstává prázdné.
  • usertype - Role uživatele do Joomla!. (Super Administrator, Editor, atd.)
  • gid - Id skupiny uživatele
  • block - Nastavte na '1 ', když je uživatel nastaven na' blokován' v Joomla!.
  • registerDate - Den registrace
  • lastvisitDate - Poslední návštěva
  • guest - Pokud není uživatel přihlášen, tato proměnná bude nastavena na'1 '.
Mimo proměnné, které jsou uložené v databázi přímo, jsou zde ještě další hodnoty, které si uživatel nastavuje sám, je to jazyk, editor, časové pásmo, atd.
Tyto informace získáme pomocí funkce getParam();
$user = JFactory::getUser();
$language = $user->getParam('language', 'vychozi');
Tímto jsme do proměnné language dostali jazyk, který uživatel používá. Text vychozi udava co se bude zadavat, pokud uživatel nemá vyplněnou žádnou hodnotu.
Další velmi užitečnou věcí je proměnná guest. Zjistí, zda-li je daný uživatel přihlášen nebo ne.
$user =& JFactory::getUser();
 
 if ($user->guest) {
 echo "Musíte se nejprve přihlásit";
 } else {
 
 echo "Privátní sekce stránek";
 }
Ne všechny ověřené uživatele je poskytnuta stejná práva. Například Super Administrátor může být schopen upravovat jakýkoliv obsah, zatímco Vydavatel mohou upravovat pouze jejich vlastní články. Funkci authorize() lze použít k určení, zda je současný uživatel oprávněn k provedení daného úkonu. První parametr je používán pro určení, které komponenty nebo funkci chceme ověřovat. Druhý představuje úkol. Třetí a čtvrtá jsou nepovinné určují, typ záznamů a oprávnění k přístupu.
Ukažme si to na příkladu:
$user = JFactory::getUser();
 
 if ($user->authorize('com_content', 'edit', 'content', 'all')) {
 echo "<p>Můžete editovat veškerý obsah.</p>";
 } else {
 echo "<p>Nemůžete upravovat veškerý obsah.</p>";
 }
 
 if ($user->authorize('com_content', 'publish', 'content', 'own')) {
 echo "<p>Můžete publikovat Vaše vlastní články.</p>";
 } else {
 echo "<p>Nemůžete publikovat vaše vlastní články.</p>";
 }
Toto určitě pro základní práci s uživateli stačí, snad se bude pokročilým uživatelům hodit. Článek byl částečně přeložen ze stránek jlleblanc.com

Komentáře (13)
Neni zac
13 Pondělí, 30 Listopad 2009 17:14
Kalby
Neni za co, hlavne at se dari :)
jumi
12 Pondělí, 30 Listopad 2009 16:24
HM
Tak s JUMI je to opravdu funkční a asi nejjednodušší varianta.
Díky moc za pomoc!
HM
RE Kalby
11 Pondělí, 30 Listopad 2009 06:07
HM
Vidím, že se mám ještě hodně co učit.
Možná jsem to vzal od začátku za špatný konec... předpokládal jsem, že jediná možnost, jak do joomly vložit externí php skript, je přes wrapper. Samozřejmě si to chci komplikovat co nejméně, takže zvolím nejjednodušší cestu... pokud tou cestou bude plugin Jumi, tak se mu jdu hned podívat na zoubek.
Zatím moc děkuji, HM.
Juser
10 Neděle, 29 Listopad 2009 20:29
Kalby
Vidím problém v tom, že ten soubor chceš spouštět mimo Joomlu, prostě zavolat přímo skript, že? Tam bys musel nejdříve includovat všechny soubory, které dané třídy využívají a že jich je hodně. Dobré je vzít si třeba plugin jumi Pomocí té includovat tvuj soubor do obsahové části stránky, popř do modulu. A potom zadávat místo cesty ke skriptu normalne tu joomla stránku.

Kdyby jsi chtel includovat vsechny soubory sam tak se asi zblaznis: Protoze pouzivas jimport tak musis includovat loader.php, dale chces includovat tridu JFactory ktera vola getUser, jenze v teto funkci je potreba tridy JUser, tato trida ale pouziva JObject, ta zase JError atd. atd. :) Takze doporucuji vlozit kod primo nekam do stranky kde sou vsechny tyto tridy jiz inicializovane
RE
9 Neděle, 29 Listopad 2009 11:35
HM
S tím jimport('joomla.factory'); jsem to zkoušel hned v prvním pokusu, ale házelo to chybu: Fatal error: Call to undefined function jimport();
Zkusil jsem i kombinaci:
require_once ( 'libraries/loader.php' );
jimport('joomla.factory');
... pak to sice chybu neháže, ale výsledkem je prázdná obrazovka.
Určitě dělám něco špatně... :-/
uzivatel
8 Pátek, 27 Listopad 2009 12:03
Administrator
zdravim pokdu vkladate soubor factory.php musite pote jeste inicializovat danou tridu neco jako JFactory = new ....

doporucuji misto require_once pouzit:

jimport('joomla.factory');


ktery to udela za vas pak by to jiz melo jit
wrapper
7 Pátek, 27 Listopad 2009 10:46
HM
prosím o pomoc.
potřebuji v externím php souboru (v joomle typ wrapper) načíst jméno přihlášeného uživatele. Snažím se použít JFactory, ale nefunguje mi to. do kódu toho externího php souboru jsem musel vložit:
require_once ( 'libraries/loader.php' );
require_once ( 'libraries/joomla/factory.php' );
, jinak to házelo chybu "...Class 'JFactory' not found...".
dále mám v kódu:
$user = JFactory::getUser();
echo "jmeno:{$user->username}";

ale výsledkem je prádzná stránka (dokonce se ani nezobrazí nic z dalšího kódu, který je v tom externím souboru za zmíněnými řádky).
Moc prosím o nějaké nakopnutí, co dělám špatně...
Registrovani pridavani clanku
6 Úterý, 20 Říjen 2009 09:33
Kalby
Ahoj, to urcite tak jednoduche nebude. Musel by jsi najit komponentu com_content a tam prava zmenit, ale joomla kontroluje prava pri kazdem kroku takze by si musel urcite zmenit vic souboru. Podle me by bylo o dost jednodusi v globalnim nastaveni priradit registrovanym uzivatelum primo prava redaktor. Jak to funguje: Kdyz se uzivatel registruje nebude pouze registrovany ale rovnou redaktor tudiz muze pridavat clanky. Upravuje se to v Globalni nastaveni> System>Nastaveni uzivatele>Typ registrace noveho uzivatele a tam si vyber co potrebujes
oprávnění uživatelů
5 Úterý, 20 Říjen 2009 08:39
David
Ahoj,
potřeboval bych radu, potřebuji upravením kódu joomly (1.5.14) docílit, aby mohli vkládat články uživatelé s oprávněním "registrovaní". Bohužel se mi nedaří najít soubor, kde jsou zanesena oprávnění.

Prosím o odpověď a předem děkuji.
externi
4 Úterý, 15 Září 2009 07:44
Administrator
Zdravim je mozne pokud mate skript na eterni strance ze nemate primi pristup k tride JFactory. Pokusil bych se ji importovat..

Soubor se nachazi v libraries/joomla/factory.php, ale vam by melo stacit vlozit pred vas kod toto:

jimport('joomla.factory');
Čtení uživatele z externí stránky
3 Úterý, 15 Září 2009 07:30
Honza
Dobrý den, chci se odkázat na externí formulář (mám jej ve wrapperu) a odkaz na něj je jen pro registrované uživatele. Potřeboval bych načíst jméno uživatele a s formulářem jej odeslat ale hlásí to chybu:

Fatal error: Class 'JFactory' not found in.....

k databázi joomly jsem připojen, můžete mi prosím poradit?
chyba oprava
2 Úterý, 25 Srpen 2009 14:17
Administrator
ano mate pravdu, diky za upozorneni
menší chybka
1 Úterý, 25 Srpen 2009 11:52
Radek Pelikán
skvělý článek, díky, moc mi pomohl, ale je tam hned na začátku chyba, na druhém řádku mají být proměnné takto:
echo "Jméno: {$uzivatel->name};

Přidej Váš komentář

BoldItalicUnderlineStrikethroughSubscriptSuperscriptEmailImageHyperlinkOrdered listUnordered listQuoteCodeHyperlink to the Article by its id
Vaše jméno:
Předmět:
Komentář:

Další odkazy

  • Fórum
  • Chat - podpora - NOVÝ
  • Facebook
  • Podpořte nás
  • RSS
  • Registrace uživatele

Spřátelené weby

  • JoomlaDev.eu
  • RS WordPress

Anketa

O jakém RS by jste chtěli více článků
 

Uživatelé na chatu

  • No users online

Stavební materiál  |  Levné kontaktní čočky  |  Ochrana osobních údajů  |  Mapa stránek  |  design a kód Klasdesign  |  Redakční systémy, rs@redakcni-systemy.com