it-swarm-eu.dev

Jak funguje globální proměnná $ user?

Zde je můj scénář:

Vytvářím nového uživatele a dynamicky pro něj vytvářím obsah, jehož je vlastníkem.

Každý uživatel se může přihlásit, zobrazit jeho obsah a upravit svůj profil. Používám blok, ve kterém mám menu odkazy na každý obsah a na jeho profil.

Tématický výstup funkce bloku používá global $user; pro získání aktuálního přihlášeného uživatele.

Zvláštní však je, že $user->uid vrátí naposledy vytvořeného uživatele v systému a nikoli aktuálního přihlášeného uživatele. Také $user->language je posledním vytvořeným uživatelem v systému. Proč?

Uživatel se odhlásí pomocí user/logout; to je příkaz k odhlášení, že? Musím po odhlášení uživatele udělat více, jako je resetování proměnných GLOBAL?

4
Ek Kosmos

Chtěl bych zkontrolovat, zda blok není v mezipaměti, nebo že nepoužíváte něco jako Boost (statické ukládání do mezipaměti).

Zní to, že se obsah bloku blokuje.

5
Kevin

global $user by se VŽDY mělo vztahovat na aktuálně přihlášeného uživatele.

Existuje dobrá šance, že pravděpodobně resetujete globální $user proměnná ve vašem vlastním kódu. Dobrou praxí při jednání s uživatelskými účty je použití $account proměnná pro rozlišení mezi nimi, viz ser_save () pro příklad.

3
tim.plunkett