Programmare un modulo Joomla per utilizzare la cache
Per prima cosa vediamo come un modulo può avvalersi della cache di Joomla.
Nel controller principale, quindi tipicamente nel file
/modules/mod_xxx/mod_xxx.php
viene invocata la view passando come secondo parametro un array con tutte le variabili che vogliamo render disponibili alla view.
Questo array viene utilizzato come chiave della cache: l'errore più comune è non tener conto del numero di istanze in un modulo; quindi funziona benissimo finché non mettiamo due moduli nella stessa pagina: a quel punto il secondo viene visualizzato male / con valori parziali o incompleti / o più probabilmente come clone del primo.
La soluzione è semplicissima
Basta aggiungere module->id all'array dei parametri.
PHP Code:$cacheparams = new stdClass; $cacheparams->cachemode = 'safeuri'; $cacheparams->class = 'modSomethingHelper'; $cacheparams->method = 'getItem'; $cacheparams->methodparams = $params; $cacheparams->modeparams = array('id'=>'int','Itemid'=>'int','catid'=>'int', 'view'); $item = JModuleHelper::moduleCache ($module, $params, $cacheparams);
Tags: Joomla Cache