Přihlásit se

Joomla 5.1.0 a Joomla 4.4.4 (17 dub 2024)

Dnes byla uvolněna nová verze Joomla 5.1.0, společně s Joomla 4.4.4. Tato verze přináší spoustu nových funkcí, vylepšení v oblasti bezpečnosti a kódu a díky těmto vylepšením i vyšší rychlost.

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

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
Pokročilý 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
Pokročilý 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.

Powered by Fórum