• Home
  • Info
  • Non per babbani (solo sviluppatori)

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