|
01 Září 2010
Posted in
Články -
Tipy a triky
V předchozím článku na toto téma jsme si ukázali jak dynamicky generovat jednoduchý javascript obsahující třeba definici jazykových řetězců, které chceme v našem javascriptovém kódu použít. Tentokrát si ukážeme jak udělat, když potřebujeme v rozsáhlejším js, nebo css kódu použít i PHP.
V takovém případě by generování kódu v modelu asi nepředstavovalo to pravé řešení. Pro tento případ si vytvoříme JavaScriptový, nebo CSS kód v samostatném souboru, který umístíme třeba mezi ostatní soubory pohledu. Pouze mu nepřiřadíme obvyklou příponu js, nebo css, ale php. Tím zajistíme, že se vykoná PHP kód v těchto souborech. V Javascriptovém souboru pak může vypadat nějak takto:
function set_watch() { if(<?php echo JFactory::getUser()->get('id'); ?>==0) { document.getElementById('watch_email_div').removeAttribute('style'); } else { submit_watch(); } }
Následně si v ovladači akce, kterou jsme si v přípravě pohledu pomocí URL zadaného metodě addScript, určili tento soubor jednoduše vložíme pomocí PHP funkcí include, nebo require.
Další zajímavost spočívá v přidání proměnné format=raw k URL adrese. Pokud jej přidáme nemusíme na konci kódu ovladače volat metodu close() třídy JApplication() jako v předchozím článku, takže volání js kódu vypadá třeba takto:
JFactory::getDocument()->addScript('index.php?option=com_component&controller=controller&task=get_js&format=raw');
A v ovladači umístíme tento kód:
function get_js() { require_once(JPATH_COMPONENT.DS.'views'.DS.'someview'.DS.'tmpl'.DS.'default.js.php'); }
A to je vše.
Články


