DomůČlánkyTipy a trikyVytváříme skript pro cron

Pokud jste už zkoušeli vytvořit si nějaké rozšíření pro Joomlu jistě jste již narazili na to, že potřebujete nějaký úkol spouštět v určitou dobu, což je typické pro import externích dat. Možná jste již zkoušeli najít existující rozšíření pro CMS Joomla, která umí pseudo-cron funkci, ale po chvilce zcela jistě zjistíte, že to není to pravé řešení a přitom je vytvoření cron skriptu pro Joomlu celkem jednoduché jak si ukážeme na dalších řádcích.

Nejprve musíme nadefinovat následující tři konstanty:

 

define( '_JEXEC', 1 );
define( 'JPATH_BASE', '/cesta/k/joomle/' );
define( 'DS', DIRECTORY_SEPARATOR );

 

Jako první se jedná samozřejmě o konstantu _JEXEC, která je testována v každém souboru, aby se zaručilo, že daný soubor je spouštěn z Joomly, následuje určení adresáře, kde se Joomla nachází na disku a zkrácení zápisu oddělovače adresářů do tvaru v jakém jej používá Joomla.

Pokračujeme vložením(require_once) souborů definujících základní konstanty Joomly a samotný vstupní soubor Joomly framework.php:

 

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

 

Na následujících dvou řádcích zajistíme získání objektu Joomly a samotné její spuštění funkcí initialise().

 

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

 

Pokračovat můžeme jak jsme zvyklí v ostatním kódu Joomly. Třeba objekt databáze získáme obvyklým způsobem:

 

$db=JFactory::getDBO();

 

Pouze si musíme uvědomit, že konstanty jako třeba JPATH_COMPONENT_ADMINISTRATOR nemáme nadefinované, protože se do Joomly nedostáváme obvyklým způsobem přes komponentu, Rovněž pokud jsme zvyklí získat odkaz na model komponenty třeba v pohledu pomocí $this->getModel(), tak toto zde také neplatí a je nutné jej nejprve naimportovat pomocí require_once, následně vytvořit jeho objekt pomocí operátoru new a až pak zavolat kýženou funkci.

Nyní již zbývá pouze skript nahrát na server a v ovládacím panelu webhostingu nastavit jeho provádění podle zadaného intervalu, případně pokud Joomlu třeba provozujeme na vlastním VPS, tak nastavit jeho provádění příkazem Linuxového shellu crontab -e.

Komentářů (0)
Přidat komentář
YOUR_CONTACT_DETAILS:
Komentářů:
[b] [i] [u] [s] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
SECURITY
Prosím=vložte text z obrázku (anti-SPAM ochrana

Zprávičky

Napsat novou zprávičku  |  Vše

sh404SEF 2.0.3.545

Nová verze

Napsal Peter Smrčák | 13.08 22:12

Kunena 1.6 RC1

Nová verze

Napsal Peter Smrčák |  9.08 15:28

Vyšla nová Kunena RC1 pre pripravovanú Joomlu 1.6.

EasyBook reloaded!

Nová verze

Napsal Peter Smrčák |  4.08 06:41

Vyšla stabilná verzia obľúbenej návštevnej knihy EasyBook reloaded vo verzii 2.0.4.

VirtueMart 1.1.5

Nová verze

Napsal Peter Smrčák | 28.07 15:11

Práve vyšiel nový VirtueMart.

Táto verzia opravuje rôzne problémy.

changelog | download

Joomla 1.5.19

Bezpečnost

Napsal Filip Bartmann | 16.07 18:30

Dnešním dnem spatřila světlo světa další aktualizace stabilní řady Joomly 1.5, tentokrát s pořadovým číslem 19 a kódovým jménem Wojmamni ama batani. Jedná se o opravu několika menších bezpečnostních chyb v administraci a také novou verzi js frameworku Mootools.

Více...

Jméno Joomla!® je použito pod limitovanou licenci od Open Source Matters ve Spojených státech a ostatních zemích. Joomladev nemá spojení s Open Source Matters, nebo projektem Joomla! a není součástí jejich podpory
Logo Joomla!® je použito pod limitovanou licenci od Open Source Matters ve Spojených státech a ostatních zemích. http://joomladev.eu nemá spojení s Open Source Matters, nebo projektem Joomla! a není součástí jejich podpory