Bookmark and Share
You are here: Home Documentazione Ricette Messaggi nelle pagine Plone da codice Python
Document Actions

Messaggi nelle pagine Plone da codice Python
medio

Spesso nell'interazione tra utente e Plone abbiamo bisogno di mandare messaggi e avvisi. Ecco come fare in Plone 3.

Da sempre Plone dialoga con l'utente che lo sta usando, indicando azioni eseguite o problemi avvenuti nella zona alta della pagina, proprio sopra al titolo del contesto.

Fino alla precedente versione il modo di comunicare questi messaggi era piuttosto "rozzo", sebbene semplice ed efficace: veniva aggiunta all'URL una querystring apposita, che il template sapeva di dover renderizzare come messaggio..

Con Plone 3 la cosa e' (finalmente) cambiata, e non si deve piu' ricorrere a qualcosa così evidente e poco flessibile.

Il servizio plone_utils, infatti, mette a disposizione una chiamata che permette di aggiungere tutti i messaggi che vogliamo, indicandone anche la tipologia: possiamo vedere se si tratta di una *info*, di un *warning* o di un *error*.

Come? Ecco degli esempi:

In un controlled script di portal_skins (come ad esempio event_edit.cpy, presente in plone_form_scripts):

: .. context.plone_utils.addPortalMessage(_(u'Error saving event.'), 'error') .. context.plone_utils.addPortalMessage(_(u'Event changes saved.')) ..

Mentre in una chiamata effettuata da normale codice Python (ad esempio un metodo di un tool su file system):

:.. plone_utils = getToolByName(self, 'plone_utils') msg = u"Fatto. tutti gli oggetti sono stati elaborati." plone_utils.addPortalMessage(msg, request=self.REQUEST) ..

 

Si noti che nel caso in cui la chiamata avvenga da codice su filesystem è necessario effettuare il bind della REQUEST per permettere al sistema di annotare il nostro messaggio.

Ciò che avviene in fase di presentazione dei messaggi è semplicemente che il template effettua la chiamata plone_utils.showPortalMessages, capace di estrarre tutti i messaggi annotati, i quali verranno così renderizzati.

by Maurizio Delmonte last modified 2008-12-03 13:10
 

Supporto

Ottieni un
aiuto veloce e mirato sul forum, gratis!

partecipa al forum

 

Segui le icone

 

Livelli di difficoltà

livello guruSolo per i "guru"!
livello avanzatoPer configuratori e sviluppatori
livello medioPer chi ha già familiarità
livello basePer tutti!

 

I video

video

Il documento è supportato da un video!