Joomla 5.2.2 Security & Bugfix Release
Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.
jazyková proměnná v javascriptu
28. dub 2021 00:22 #144258
zobrazuji jazykovou proměnnou v js takto:
lze do toho zahrnout proměnnou, tedy udělat to obdobně jako v php
Lze to vůbec?
Code:
Joomla.JText._( 'MOJE_PROMENNA')
lze do toho zahrnout proměnnou, tedy udělat to obdobně jako v php
Code:
JText::sprintf( 'MOJE_PROMENNA',$prom)
Lze to vůbec?
28. dub 2021 02:40 #144259
Odpověď od Cony
Moderátor
Javascript ani Joomla.JText nic jako sprintf nezná. Nejjednodušší řešení je použít replace
popř. pokud to je jazyková konstanta jen pro javascript a ne pro PHP, použít něco jiného než %s.
Případně existuje JS verze sprintf , ale to mi přijde trochu s kanónem na vrabce...
Code:
Joomla.JText._( 'MOJE_PROMENNA').replace('%s', promenna);
Případně existuje JS verze sprintf , ale to mi přijde trochu s kanónem na vrabce...
Poděkovali: Ernst
28. dub 2021 07:21 - 28. dub 2021 07:21 #144260
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Odpověď od Rudolf
Joomla Expert
Pro zobrazení Jazykové proměnné v JS existují Joomla pravidla dle dokumentace (včetně %s characters):
docs.joomla.org/J3.x:Adding_JavaScript_and_CSS_to_the_page
Passing language strings to Javascript
There are cases when you may want to output an error message in your JavaScript code and want to use the Joomla mechanism of language strings. You could manage this by using addScriptOptions to pass down each language string you need, but Joomla provides a more succint solution. To pass a language string to JavaScript do in your PHP code, for example,
JText::script('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN'); Then in your JavaScript code you can do:
var message = Joomla.JText._('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN'); to obtain in the user's language the text message associated with the language constant. Obviously certain language strings have embedded %s characters, so in your JavaScript code you will have to handle that, eg using an external JavaScript sprintf library or string replace, etc.
docs.joomla.org/J3.x:Adding_JavaScript_and_CSS_to_the_page
Passing language strings to Javascript
There are cases when you may want to output an error message in your JavaScript code and want to use the Joomla mechanism of language strings. You could manage this by using addScriptOptions to pass down each language string you need, but Joomla provides a more succint solution. To pass a language string to JavaScript do in your PHP code, for example,
JText::script('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN'); Then in your JavaScript code you can do:
var message = Joomla.JText._('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN'); to obtain in the user's language the text message associated with the language constant. Obviously certain language strings have embedded %s characters, so in your JavaScript code you will have to handle that, eg using an external JavaScript sprintf library or string replace, etc.
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
28. dub 2021 09:56 #144261
Odpověď od Ernst
Joomla Expert
díky moc, zkoušel jsem také js funkci sprintf, ale jinou a asi nebyla funkční a to replace mě nenapadlo.
Fakt se to řešení nedalo ani vygooglit
Fakt se to řešení nedalo ani vygooglit
28. dub 2021 10:13 #144262
Google joomla language constant in javascript
4 odkaz
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Odpověď od Rudolf
Joomla Expert
eg using an external JavaScript sprintf library or string replace, etc.
Google joomla language constant in javascript
4 odkaz
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
28. dub 2021 10:39 - 28. dub 2021 10:52 #144263
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Odpověď od H13
Admin
Možná trochu jiné řešení, ale já občas používám i pro jazyk stejný systém jako pro všechny proměnné.
Tedy v případě, že proměnnou mám v PHP a potřebuji dostat do JS PHP proměnnou.
Příklad:
PHP:
Javascript:
V PHP si jazykovou proměnnou nebo normální proměnnou sestavím dynamicky podle potřeb a tímto způsobem přesunu z PHP do Javascriptu, pak k ní normálně přistupuju
Tedy snažím se vyhnout sestavování v JS a pokud to jde sestavit v PHP, sestavím v PHP a pošlu do JS jako kompletní sestavený string. Samozřejmě použitelné jen, pokud proměnná není vyloženě JS proměnná sestavovaná v JS.
Tedy v případě, že proměnnou mám v PHP a potřebuji dostat do JS PHP proměnnou.
Příklad:
PHP:
Code:
JFactory::getDocument()->addScriptOptions('phLang', array(
'COM_PHOCACART_CLOSE' => JText::_('COM_PHOCACART_CLOSE') . $klidneNejakaPromenAtd)
);
JFactory::getDocument()->addScriptOptions('phVars', array('url' => JURI::base(true).'/index.php?option=com_phocacart&format=json&'. JSession::getFormToken().'=1'));
Javascript:
Code:
function nejakaJSFunkce() {
var phVars = Joomla.getOptions('phVars');
var phLang = Joomla.getOptions('phLang');
V PHP si jazykovou proměnnou nebo normální proměnnou sestavím dynamicky podle potřeb a tímto způsobem přesunu z PHP do Javascriptu, pak k ní normálně přistupuju
Code:
alert(phVars['url']);
alert(phLang['COM_PHOCACART_CLOSE']);
Tedy snažím se vyhnout sestavování v JS a pokud to jde sestavit v PHP, sestavím v PHP a pošlu do JS jako kompletní sestavený string. Samozřejmě použitelné jen, pokud proměnná není vyloženě JS proměnná sestavovaná v JS.
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Poděkovali: Ernst