Visto che ormai sono passato a PHP, posto un paio di suggerimenti per chi lavora un pò con ezPublish.
Per chi non lo sapesse faccio un riassunto molto "barbaro" : eZPublish è un CMS molto potente, ha un suo Framework e gestisce tutte le informazioni in suo possesso come fossero nodi di un albero.
Dopo questa spiegazione da brividi introduco l’rgomento del posto.
Visto che sto lavorando con eZPublish per la realizzazione della tesi, vi presento un paio idee per :
1) Il Template operator "sum" & indicizzazione delle tabelle
2) Ricavarsi tutti gli utenti di una certo "gruppo"
So che per chi è più esperto possono essere cose banali, ma per me che sto utilizzando da pochissimo eZ tutto sommato sono scoperte importanti ![]()
1) Pagina di riferimento per i Template operators in particolare a noi servirà questo riferimento alla sintassi dell’operatore sum. Ora che abbiamo tutti i riferimenti vi spiego la situazione:
Per l’accessibilità una tabella va indicizzata in modo da poter riferire un certo campo ad una riga e ad una colonna, ex:
<table>
<tr>
<th id="c1">C1</th>
<th id="c2">C2</th>
</tr>
<tr>
<td id="c3" headers="c1"> campo C1</td>
<td headers="c3 c2"> campo C2</td>
</tr>
<tr>
<td id="c4" headers="c1"> campo C1</td>
<td headers="c4 c2"> campo C2</td>
</tr>
</table>
Ora quindi quello che ci interessa è: come faccio ad automatizzare il valore dell’ "id" e in "headers" all’interno del tag <td>? Io propongo questa soluzione: (mio.tpl)
{let
myarray=array(…)
ncolonne=2
}
<table>
<tr>
<th id="c1">C1</th>
<th id="c2">C2</th>
</tr>
{section name=DATA loop=$myarray}
<tr>
<td id="c{sum($ncolonne, $:index)}" headers="c1"> $:item.myvariable1</td>
<td headers="c{sum($ncolonne, $:index)} c2"> $:item.myvariable2</td>
</tr>
{/section}
{/let}
Nota: ho utilizzato "sum" invece di "inc" perchè con l’operatore "inc" avevo problemi con lo scope della variabile "$ncolonne".(il template engine si inca22a!!)
2) Le pagine di riferimento in questo caso sono: Template operator (ezini) e Data fetching (in particolare list).
Le finalità di queto esempio è quella di ottenere tutti gli "utenti" di un certo gruppo in base al "node_id" del gruppo.
file : mio.tpl
{let
ini = ezini(’UserSettings’, ‘<nomeGruppo>Placement’)
/*- il "<nomeGruppo>Placement" è l’"node_id" della classe di rifermento degli utenti che voglio ottenere-*/
utonti=fetch(’content’,'list’,hash(’parent_node_id’, $ini))
}
{section loop=$utonti}
utonto [{$:index}] = {$:item.name} ({$:item.contentobject_id})<br />
{/section}
{/let}
Nota: questo piccolo suggerimento non è altro che un esempio di quello che mi è capitato di fare. Io ho utilizzato questo semplice principio, ad esempio, in combinazione di una funzione che mi restituiva gli utenti già iscritti ad un certo servizio, e grazie all’operatore "contains" andavo a selezionare (tramite "contentobject_id" gli utenti iscritti ma non attivati di un certo gruppo.
Posted under Linguaggi di Programmazione, PHP
This post was written by Filippo on October 3, 2005

