Generic Plone Content
GPC è un prodotto per Plone che permette di creare nuovi tipi di contenuto direttamente dal pannello di controllo del portale. Provalo!
GPC è uno strumento molto utile per aggiungere velocemente funzionalità al vostro portale.
Gli oggetti generati sono degli Archetypes che esistono solo all'interno di quella specifica istanza Plone.
L'installazione è semplice. GPC si installa come qualsiasi altro prodotto Plone: basta decomprimerlo nella cartella Products dell'istanza Zope insieme alla sua unica dipendenza, ATSchemaEditorNG.
Dopo l'installazione apparirà nel pannello di controllo il link per poter gestire i nuovi schema, SchemaManager, come evidenziato nell'immagine.
La schermata principale di SchemaManager è molto semplice ed intuitiva:
Per aggiungere un nuovo tipo di contenuto è sufficiente inserire il nome e scegliere il modello da cui partire.
Creiamo un nuovo contenuto dal nome SchedaDescrittiva, scegliamo Generic Document come modello dal menu a tendina e facciamo click sul pulsante Add.
Il nuovo contenuto verrà aggiunto a quelli già presenti, clickando su Edit sarà possibile aggiungere nuovi campi all'oggetto.
Per aggiungere un nuovo field al contenuto appena creato è sufficiente inserirne l'id nel campo di testo (evidenziato nell'immagine) e clickare sul tasto +.
Una volta aggiunto il campo, passiamo a definirne le proprietà. La schermata che apparirà sarà la seguente.
La sezione Field settings permette di definire il tipo di campo ed il tipo di widget che lo renderizzerà:
Type - descrive il tipo di field che si vuole creare ovvero, in che formato il valore inserito verrà salvato.
Widget - descrive che tipo di campo il sistema mostrerà all'utente per inserire il valore (es.: textbox, radio button, checkbox). [Widget su Wikipedia]
Storage - descrive come il valore del campo verrà salvato, l'opzione di default è Attribute, ciò vuol dire che il campo verrà salvato come attributo dell'oggetto.
Searchable - specifica se il campo verrà indicizzato o meno come parte del testo ricercabile dell'oggetto, ovvero se il contenuto del campo sarà ricercabile attraverso la pagina di ricerca del portale.
La sezione Widget Settings permette di definire le proprietà della widget utilizzata dal campo:
Label - è l'etichetta che comparirà come titolo della widget.
Description - è la descrizione della widget.
Default - è il valore di default del campo, lasciando questo vuoto il campo non avrà nessun valore di default.
Size - è la dimensione della widget, questa non influisce sul salvataggio del valore del campo, ma solo sulla visualizzazione della widget.
Validators - indica i validatori per quel campo, può contenere una lista di nomi di validatori, eseguiti secondo l'ordine di inserimento.
Relationship - identifica il tipo di reference da usare per la correlazione dell'oggetto con gli altri portal type, il nome della relazione deve essere definita nel reference_catalog di Plone.
Allowed Types - determina i portal_types degli oggetti che possono essere referenziati dal nuovo tipo di oggetto creato.
Vocabulary display path bound - imposta un limite per la visualizzazione degli oggetti referenziati, sopra questo limite viene mostrato solo il titolo degli oggetti regerenziati, sotto il limite, oltre al titolo viene mostrato anche il path dell'oggetto.
Checkbox bound - imposta un limite oltre il quale viene mostrata una multiselect list in sostituzione di radio button o checkbox.
Multivalued - specifica se il campo può essere impostato su più di un valore (ad esempio nel caso di una lista multiselect).
Required - specifica se il campo deve essere compilato obbligatoriamente o meno durante la creazione dell'oggetto.
La sezione Field visibility permette di definire quando questo campo sarà visibile:
Visible (edit) - indica se il campo sarà visibile durante la creazione dell'oggetto o una successiva modifica.
Visible (view) - indica se il campo sarà visibile durante la visualizzazione dell'oggetto.
La sezione Rights management permette di configurare i ruoli che l'utente deve possedere per poter modificare/visualizzare il campo:
View field (only given role can view field) - permette solo agli utenti con i ruoli indicati di visualizzare il campo nella visualizzazione del nuovo oggetto.
Role that can delete field from this editor - permette solo agli utenti con i ruoli selezionati di rimuovere il campo usando SchemaManager.
Modify field (only given role can edit the field) - permette solo agli utenti con i ruoli selezionati di modificare il campo durante la creazione/modifica del nuovo oggetto.
Manage field rights (only this role can manage field rights) - permette solo agli utenti con i ruoli selezionati di gestire i ruoli ed i permessi su questo campo, da questa stessa schermata.
Aggiungiamo un nuovo campo dal nome product_color e clicchiamo sul pulsante +.
Il nuovo campo è stato aggiunto. Scegliamo come Type StringField, come Widget String e lasciamo Attribute come valore di Storage.
Per avere a disposizione un campo base è possibile lasciare le altre impostazioni ai valori di default.
In Widget settings modifichiamo la label in Colore prodotto e confermiamo le modifiche con Save changes a fondo pagina.
Il nuovo campo è stato salvato.
Nel menu a tendina per l'aggiunta di un nuovo oggetto è ora disponibile il nuovo tipo creato con SchemaManger.
Durante la creazione/modifica del nuovo oggetto, il nuovo campo sarà visibile ed editabile.
Modificando la posizione del campo in SchemaManager è possibile definirne la posizione anche all'interno della schermata di modifica/creazione.
Nella visualizzazione dell'oggetto apparirà dunque, anche il nuovo campo creato.
Generic Plone Content è disponibile per il download sul sito Plone.org all'indirizzo http://plone.org/products/genericplonecontent.

Python script name
Come deve essere costruito lo script python,
nel caso di aggiungere una select "key|value"
e cosa devo scrivere per richiamarlo ?
Grazie