[FSUG PD] Plone or not Plone?
Yuri
yurj a alfa.it
Lun 9 Maggio 2011 12:00:54 CEST
Il 09/05/2011 11:38, Sbaturzio Cantina ha scritto:
> Il 09/05/2011 09:36, Yuri ha scritto:
>
>
>> Tutte queste cose sono supportate di default da Plone, senza bisogno di
>> scrivere codice.
>>
> Se ho ben capito si deve creare un nuovo "content type" che descrive
> l'oggetto che devo trattare, poi all'utente basta dare la possibilità di
> crearlo e l'applicazione web parte. Corretto?
>
Sì, se vuoi utilizzare un nuovo content type. Oppure puoi "adattare" uno
esistente (vedi collective.schemaextender). Nel primo caso puoi usare
zopeskel per creare una egg da zero con dentro tutto, definire nuovi
campi/portlet/view. La cosa è ben documentata e molto semplice. Nel
secondo caso, ci sono tantissimi esempi. Io ad esempio, ho riutilizzato
il tipo Page, aggiungendo dei campi, e attivato la mia logica se la Page
supporta una certa interfaccia. Seguendo le guide è abbastanza lineare.
> Quindi la difficoltà più grande è quella di realizzare un "content type"
> che abbia una interfaccia per utenti semplice.
>
Se usi Dexterity, ad esempio, il content type lo puoi creare TTW
(Throught The Web, via web, cioè dal pannello di controllo), e poi puoi
creare dei comportamenti specifici se quelli di default non bastano.
Dexterity è abbastanza maturo, anche se non supporta tutte le cose di
archetype (ad esempio LinguaPlone, anche se è in progetto).
In generale, se hai voglia di applicarti, proverei tutti questi
approcci, per scegliere quello più adatto. Ha senso creare un content
type quando si vuole qualcosa di molto specifico o avere tutto nel
proprio pacchetto.
Il workflow lo puoi creare indipendentemente dal tuo content type e lo
puoi "cambiare" sul tipo anche a livello di cartella (placefulworkflow).
>> Con le recenti versioni di Plone, si gestiscono tranquillamente folder
>> di migliaia di oggetti. Lo si riesce a fare anche con Plone3, per
>> questo, ma con Plone4 è meglio :)
>>
> E si riesce anche a gestire l'accesso ai singoli oggetti? Ovvero, il
> folder A deve essere visibile solo a Tizio mentre il folder B solo a
> Caio.
Questo è banale.
> Inoltre se al capo gli girano deve essere possibile, in qualsiasi
> momento, cambiare le permissions in modo che Tizio veda anche B e Caio
> non la veda più.
>
Idem, banale.
> Ah...intendiamoci: per "capo" intendo uno che di informatica non sa
> quasi nulla. ;-)
>
Cerca "Sharing" in plone, l'interfaccia mi sembra semplice ed intuitiva.
In alto c'è un box dove si cerca l'utente per nome, e poi si spunta
quello che l'utente può fare in quel folder (di default anche nei
sottostanti, ma puoi stoppare negli oggetti sottostanti l'ereditarietà,
e quindi ridefinire da zero i ruoli), e poi salvare.
Per togliere, basta "togliere la spunta", e salvare.
>> Poi, dipende dall'applicazione. Plone è un CMS con tante funzionalità a
>> disposizione, quindi si tratta di capire se è adatto allo scopo. La cosa
>> migliore è fare un test.
>>
> E' quello che stavo tentando di fare: mi sono installato Plone4 e stavo
> cercando di seguire dei tutorial. Mi riesce un po difficile capire la
> logica di Zope+Plone nel costruire oggetti+applicazioni.
>
Diciamo che hai tante possibilità. Quello che ti consiglio è di seguire
i tutorial ufficiali su plone.org su ZopeSkel, per creare tuoi moduli e
contenuti in maniera semplice e veloce. Poi dai una letta al codice e il
tutto sarà abbastanza chiaro.
In generale hai un modulo (egg), che viene attivata per l'installazione,
e questa può fornire vari componenti, tra i quali content type ma non
necessariamente.
Archetypes è un framework per la creazione di content types. Si basa su
una classe python, la quale deriva da una (o più) classi python base che
gestiscono un pò tutto. Il tuo contenuto, per "andare", dev'essere
registrato (lo fa una chiamata che è nell'__init__.py, ZopeSkel crea già
tutto), e poi installato. O meglio, l'installazione applica un profilo
che va a compiere un pò di operazioni che permetto al tuo oggetto di
essere "plonizzato".
Dettagli a parte, si tratta di seguire passo passo questa guida:
http://plone.it/scopri-old/documentazione/tutorial/usare-paster-e-zopeskel-per-la-generazione-di-content-type/tutorial-all-pages
o simili.
Maggiori informazioni sulla lista
fsug-pd