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