eZPublish: un paio di cose utili

Questo post ha piu' di 5 mesi. Gli url dei link potrebbero essere inattivi e i dati riportati potrebbero essere superati.

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.

This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia License.

Posted under Linguaggi di Programmazione, PHP

This post was written by Filippo on October 3, 2005

Leave a Comment

Name (required)

Email (required)

Website

Comments

More Blog Post

Previose Post: LI HO FATTI!!!

Licenza Creative Commons
Blog pubblicato sotto una Licenza Creative Commons.
La proprieta' dei post e' dei rispettivi autori, le immagini, i loghi, i trademark dei rispettivi proprietari.
Questo blog non rappresenta una testata giornalistica in quanto viene aggiornato senza nessuna periodicita' predefinita. Non puo' pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62 del 7.03.2001.