Zope 3 con i pacchetti comunitari (z3c.*)
Paul Carduner ci propone un semplice ed efficace tutorial per mettere mano a Zope 3 apprezzandone l'estrema potenza implementativa.
mdelmonte
All content on one page (useful for printing, presentation mode etc.)
- Introduzione crediti e perchè leggere questo documento.
- Partiamo predisponiamo quanto necessario al tutorial sulla nostra macchina.
- Form con z3c.form Il prossimo passo logico per ZContact è quello di essere in grado di aggiungere contatti mediante una form che ci chieda nome e cognome del nuovo contatto. Posiamo generare tale form dallo schema (IContact) che abbiamo definito in interfaces.py usando il pacchetto z3c.form.
- Skinning con z3c.layout, z3c.pagelet, e z3c.template Il prossimo argomento che affronteremo consiste nel creare una interfaccia piacevole per la nostra applicazione. In Zope 3 "regolare" questo è fatto predisponendo delle macro, che sono poi usate in tutti i page template. Tuttavia con i componenti z3c.* i page template diventano completamente inconsapevoli di qualsiasi macro in cui vengono collocati.
- Menu di Navigazione con z3c.menu e Viewlet A questo punto risulta piuttosto difficile navigare tra le pagine della nostra applicazione. Sarebbe veramente simpatico avere un gruppo di link che comparisse su ogni pagina per navigare tra la pagina iniziale e la form di generazione contatto. Non possiamo mettere dei link cablati nel template di layout perchè non conosciamo sutto quale url risponderà il server, e i path relativi cambiano in base a quale pagina stiamo guardando. Perciò abbiamo bisogno di qualcosa tipo z3c.menu.
- z3c.zrtresource e viewlet CSS Quando all'inizio abbiamo creato il nostro layout per ZContact, abbiamo incluso il foglio di stile CSS direttamente con l'intero layout. In generale questa non è buona pratica per varie ragioni che approfondiremo di seguito. Ora vogliamo spostare il nostro CSS in un suo file. Lo faremo usando un'altra libreria z3c.*: z3c.zrtresource.
by
Maurizio Delmonte
—
last modified
2008-04-29 11:34
Contributors:
Paul Carduner, Maurizio Delmonte