Přihlásit se

Důležité Zobrazení jména uživatele

22. led 2013 19:37 #102647
Zobrazení jména uživatele od Pavel
Zkušený uživatel
Dobrý večer,
potřeboval bych prosím poradit s náledujicím:
Chtěl bych aby se uživateli po přihlášení na stránky www.rob-pce.cz zobrazovalo např. vedle datumu jeho jméno a po odhlášení zase zmizelo.
Předem moc děkuji

22. led 2013 20:14 #102654
Odpověď od ghost
Zkušený uživatel
tak asi nejjednodussi je to dle me:
<?php echo JText::sprintf('Vítej ', htmlspecialchars($user->get('name'))); ?>
vykuchano z mod_login

Joomla! pro každého
Poděkovali: Pavel

22. led 2013 20:18 #102657
Odpověď od Pavel
Zkušený uživatel
Moc děkuji. :)

22. led 2013 20:29 #102660
Odpověď od Pavel
Zkušený uživatel
Vyzkouším a dám vědět. :)

22. led 2013 21:51 #102666
Odpověď od Cony
Moderátor
Code:
echo JText::sprintf('Vítej %s', htmlspecialchars(JFactory::getUser()->get('name')));
Pokud máte vícejazyčný web
Code:
echo JText::sprintf('TPL_MOJESABLONA_WELCOME', htmlspecialchars(JFactory::getUser()->get('name')));
a do jazykových souborů šablony (šablona/languages/) si přidejte
Code:
TPL_MOJESABLONA_WELCOME="Vítej %s"
Poděkovali: Pavel

23. led 2013 09:22 #102693
Odpověď od Pavel
Zkušený uživatel
Moc děkuji pomoc, zase jsem o něco málo chytřejší,
ale protože nejsem tak znalý PHP , ak bych seVás zkušenějších chtěl zeptat, v čem je rozdíl mezi :
Code:
echo JText::sprintf('Vítej %s', htmlspecialchars(JFactory::getUser()->get('name')));
a nebo když napíšu :
Code:
echo 'Vítej ' . htmlspecialchars(JFactory::getUser()->get('name')));

23. led 2013 10:02 - 23. led 2013 10:14 #102695
Odpověď od karel
Zkušený uživatel
docs.joomla.org/JText/1.6

nevyužitá možnost překladu v jiných jazycích, tj JText zbytečný:
Code:
echo JText::sprintf('Vítej %s', htmlspecialchars(JFactory::getUser()->get('name')));
Code:
echo 'Vítej ' . htmlspecialchars(JFactory::getUser()->get('name')));

rozdíl mezi sprintf a echo (v tomto případě) moc podstatný není:
stackoverflow.com/questions/5656615/php-sprintf-vs-echo

"systémovější" je řešení, které napsal Cony - #102666

Znáte-li řešení, sdělte ho - pomůžete ostatním při řešení stejného problému, i případný "rádce" bude vědět, poradil-li správně nebo špatně.
Poděkovali: Pavel

23. led 2013 10:13 #102697
Odpověď od Pavel
Zkušený uživatel
Moc děkuji za vysvětlení.
Pavel

27. úno 2018 12:21 #134458
Odpověď od Milan
Zkušený uživatel
Přeji pěkný den, zkouším vypsat jméno přihlášeného uživatele, dle tohoto příkladu.
Vložil jsem php
Code:
echo JText::sprintf('Vítej %s', htmlspecialchars(JFactory::getUser()->get('name')));
přímo do indexu a funguje OK. Problém je ale v tom, že když není nikdo přihlášený tak se stále vypisuje 'Vítejte'. Jedině co mne napadá tak kód vložit do modulu 'vlastní obsah' a tomu nastavit práva.

Existuje prosím nějaká možnost jak toto ošetřit přímo v php kódu?

Ještě bych se chtěl zeptat, mám vícejazyčný web a nikde jsem v template nenašel soubory languages. Kam bych tedy měl vložit toto?
Code:
TPL_MOJESABLONA_WELCOME="Vítej %s"

Moc děkuji Milan

27. úno 2018 14:07 #134461
Odpověď od Cony
Moderátor
Jazykové soubory v šabloně mají být přímo v adresáři šablony, podadresář language. Tj. např. /templates/moje_sablona/language/cs-CZ/cs-CZ.moje_sablona.ini

Pokud jej tam nemáte, jednoduše je vytvořte a konstantu do něj zapište.

Vypsání hlášky by pak mělo být
Code:
echo JText::sprintf('TPL_MOJESABLONA_WELCOME', htmlspecialchars(JFactory::getUser()->get('name')));

a s kontrolou na přihlášení
Code:
if (!JFactory::getUser()->guest) echo JText::sprintf('TPL_MOJESABLONA_WELCOME', htmlspecialchars(JFactory::getUser()->get('name')));

27. úno 2018 15:50 - 27. úno 2018 15:52 #134462
Odpověď od Milan
Zkušený uživatel
Přeji pěkný den a děkuji za odpověď.

Pokud jsem postupoval a pochopil problematiku správně, tak mám vytvořenou cestu:
templates/moje-sablona/language/cs-CZ/cs-CZ.moje-sablona.ini
to samé mám pro anglickou verzi templates/moje-sablona/language/en-GB/en-GB.moje-sablona.ini

a v souboru cs-CZ.moje-sablona.ini
je TPL_MOJESABLONA_WELCOME="Vítej %s"

a v souboru en-GB.moje-sablona.ini
je TPL_MOJESABLONA_WELCOME="Velcome %s"

a v indexu mám
Code:
<?php if (!JFactory::getUser()->guest) echo JText::sprintf('TPL_MOJESABLONA_WELCOME', htmlspecialchars(JFactory::getUser()->get('name'))); ?>

Bohužel výpis po přihlášení vypadá takto: TPL_MOJESABLONA_WELCOME

Ještě jednou, děkuji Milan

28. úno 2018 00:19 #134470
Odpověď od Cony
Moderátor
Vypadá to v pořádku, je ini soubor uložen v UTF8? Zkuste zapnout ladění chyb jazyku. Zdá se, že se jazykový soubor nenačítá, nebo je v něm nějaký překlep.

28. úno 2018 09:33 - 28. úno 2018 09:37 #134474
Odpověď od Milan
Zkušený uživatel
Přeji pěkný den, děkuji za pomoc.

soubory ini jsou v UTF8, znovu jsem překontroloval překlepy a nic jsem nenašel. Ladění chyb jsem zapnul a výpis jména vypadá takto ??TPL_MOJESABLONA_WELCOME??
To asi značí, že TPL_MOJESABLONA_WELCOME je neznámá.

Ještě jsem zjistil, že jsem ve ve složkách neměl index.html, který vytváří automaticky joomla, tak jsem je doplnil. Nevím zda to má s problematikou souvislost ale na výsledku se to nijak neprojevilo.

Děkuji Milan

28. úno 2018 09:50 #134476
Odpověď od Milan
Zkušený uživatel
Omlouvám se, dole na konci stránky jsem našel toto

JROOT/language/cs-CZ/cs-CZ.lib_joomla.ini : error(s) in line(s) 226

Děkuji, Milan

28. úno 2018 11:26 #134479
Odpověď od Bong
Moderátor
OT. Ta chyba v joomla.ini s tim nesouvisi.

Ale neni treba zrovna pro tuhle hlasku vytvaret vlastni preklad. Presne toto jiz obsahuje preklad Joomly, takze kdyz zadate retezec z prekladu Joomly, bude fungovat a take se nemusite starat o jazykove mutace.

I'm sorry, my responses are limited...you must ask the right questions.

Powered by Fórum