Na CMS Drupal 7.7 jsem si vytvořil kromě admina i běžného uživatele. Nikdy mne to v průběhu nenapadlo, ale najednou jsem začal postrádat tlačítko nebo odkaz pro odhlášení uživatele. Pátral jsem na diskusi drupal.cz a našel jsem instrukce, že mohu kdekoliv do bloku zapsat kód pro odhlášení. Jednalo se o následující řádky:
<a href="http://nejakyweb.localhost:8082/?q=user/logout">Odhlášení</a> , čímž jsem vytvořil hypertext odkaz pro "Odhlášení".
a pak jsem chtěl za text/odkaz "Odhlášení" doplnit jméno uživatele a na fóru byl tento kód:
<?php
global $user;
echo check_plain($user->name);
?>
Zkoušel jsem, ale jako neznalý jsem na toto už nestačil. Po vložení do těla bloku se mi opět zobrazil jen tento kód:
Má přibližná představa je dát do těla bloku přibližně to co dělají běžně diskusní fóra, tedy:
Odhlášení: [ jmeno_prihlaseneho ]
Můžete, prosím, poradit, nebo máte jinou, lepší variantu?
Děkuji za odpovědi.
Abych osvětlil situaci. Na diskusním fóru drupal.cz chtěl jeden z uživatelů pomoci při zápisu do těla bloku. Jednalo se mu o odhlášení Přihlášeného uživatele. Jeden z diskutujících mu poradil ať provede zápis "/logout" a další z diskutujících poradil zápis s odhlášením uživatele s jeho nickem, proto další zápis "php global $user; print check_plain($user->name); ?>". Proto jako neznalý jsem provedl výše uvedený zápis.
Nicméně zkusil jsem Váš zápis, ale z celého se stane hypertext "Odhlášení [<?php global $user; print check_plain($user->name); ?>]" tak jak píši, bez uvozovek. Jméno, nebo nick se neobjeví, je to jako text v hranatých závorkách.
Rád bych vyřešil s Vaší pomocí tento problém z pochopitelného důvodu. Když jsem já jako uživatel u cizího PC a neodhlásím se, přihlášení trvá i po opětovném zapnutí počítače. Proto si myslím, že by měl mít uživatel možnost se odhlásit.
Děkuji za pozornost a Váš čas.
Mělo by to vypsat něco jako "Odhlášení [Jan Polzer]". Kam a jak to vkládáte? Mělo by to jít třeba do bloku se vstupním formátem PHP. Podle popisu soudím, že jste tam nechal aktivní HTML jako vstupní formát.
Případně prostě někam dejte klasický odkaz na adresu /user/logout.
Odkaz pro odhlášení Drupal zobrazuje také v menu Navigation, jehož blok si můžete kdekoli umístit.
Vytvořil jsem blok "Odhlášení uživatele". Do "Tělo bloku" jsem vložil Vámi napsaný kód:
"<a href="/user/logout">Odhlášení [<?php global $user; print check_plain($user->name); ?>]</a>" (bez uvozovek)
a po uložení bloku jsem dostal výsledek na domovské stránce webu: "Odhlášení [name); ?>]". Formát textu jsem nechal na Full HTML pak jsem zadal "Zobrazit blok jen určitým rolím - přihlášený uživatel". Jak jinak se s tím poprat, nevím...
Jak vám píšu. Nemůžete čekat, že když vložíte kód v PHP do bloku se svtupním formátem Full HTML, že se kód v PHP interpretuje...
Máte dvě možnosti:
1. Zapněte modul PHP Filter, nastavte vstupní formát PHP a použijte tu variantu s kouskem PHP kódu.
2. Nebo zůstaňte u Full HTML a vytvořte normální odkaz na adresu /user/logout, bez jakéhokoli doplňování PHP.
Jak jste napsal, že "Mělo by to jít třeba do bloku se vstupním formátem PHP" jsem poprvé nepochopil. Až teď, když jsem si přečetl o povolení modulu PHP Filter mi došlo o co Vám jde. Je to napsáno i v knize, ale nevěnoval jsem tomu tolik pozornosti. Velmi děkuji za vysvětlení!
Takže předpokládám vyřešeno?
Ano, k plné spokojenosti vyřešeno.
Bohužel, u některých problémů se ještě neumím vyjádřit tak abych byl pochopen na poprvé a naopak, některý výklad nejsem schopen pochopit především díky neznalosti kódu PHP. Učím se ale každým krokem v postupech Drupalu, knihu čtu a postupy aplikuji po druhé...
Ještě jednou velmi děkuji.
Moc jsem to nepochopil. Toto nefunguje?
<a href="/user/logout">Odhlášení [<?php global $user; print check_plain($user->name); ?>]</a>