Personal tools
You are here: Home Aiuti ed Info Manuale di Plone 2 10. Integrazione con altri sistemi
To change the maximal image width select one of the following:

10. Integrazione con altri sistemi

Document Actions

Capitolo 10: Integrazione con altri Sistemi

L'integrazione è un enorme problema per molte imprese che possiedono già un gran numero di altri sistemi in loco. Dato che Plone è un progetto open source, possiede molti prodotti, add-on, personalizzazioni e strumenti che offrono gratuitamente funzionalità aggiuntive. Questo è un bene; questi prodotti supplementari spesso sono forniti a chiunque li voglia. Inoltre, in quanto linguaggio open source, Python possiede un intero ambiente free, eccellenti prodotti (chiamati spesso pacchetti). La maggior parte di tali prodotti non riguarda comunque direttamente Plone. In altre parole, non forniscono funzionalità solo a Plone, ovvero quello che fanno normalmente i prodotti Plone. Tuttavia, la gente spesso chiede, "Plone può fare la cosa X?" La risposta spesso è , "sì, se può farla Python".

In seguito alcuni dei prodotti Python più popolari:

Python Imaging Library (PIL)
Permette di manipolare, convertire, ed analizzare immagini (http://www.Pythonware.com/Products/pil/).
ReportLab
Permette di creare dinamicamente file Portable Document Format (PDF) con immagini, grafici, e le altre amenità (http://www.reportlab.org/).
Windows extensions
Fornisce un'interfaccia a tutte le Windows Application Programming Interfaces (APIs); rende, per esempio, possibile usare oggetti Component Object Model (COM) (http://sourceforge.net/projects/pywin32/).
Pygame
E' un ambiente di lavoro che consente agli utenti di scrivere giochi in Python. Qualcuno in Plone lo ha usato per avere accesso all’interfaccia del livello media; consente la creazione di immagini o suoni (http://www.pygame.org/).
OpenOffice.org bindings
Offre collegamenti in modo tali da poter fare pressoché qualsiasi cosa sui documenti di OpenOffice.org, fare anche il parsing di documenti Microsoft Office, per esempio come vedremo nel Capitolo 13 (http://udk.openoffice.org/python/python-bridge.html).
mxTidy
Questo pacchetto localizza e corregge problemi nei file Hypertext Markup Language (HTML), inclusi i modelli di pagina (http://www.egenix.com/files/python/mxTidy.html).

Questi eccellenti add-ons hanno di solito installer grafici per Windows che ne facilitano l'installazione. Se non si utilizza Windows, allora il modulo distutils per Python offre una semplice interfaccia a linea di comando per installare qualsiasi prodotto. Come sempre, la chiave fondamentale per installare ogni cosa è di leggere le istruzioni contenute nei file scaricati. Questo capitolo si concentrerà sull’installazione di prodotti che offrono funzionalità aggiuntive a Plone. È possibile trovare un insiene di pacchetti Python presso http://www.python.org/pypi.

Installare prodotti Plone

Un prodotto (product) è un modulo da installare all’interno di Plone per offrirgli ulteriori funzionalità. Anche se il nome prodotto sembra implicare un costo, in questo caso, così non è – la maggior parte dei prodotti sono free ed a sorgente aperto. Il termine prodotto di fatto descrive qualche cosa scritto nel File System e distribuito per essere usato in altri siti Plone.

Installare un prodotto generalmente comporta i seguenti due passi:

  1. Installarlo affinché sia registrato all'interno di Zope
  2. Installarlo in ciascuna istanza di Plone in cui si intende usarlo

La grande varietà di add-on disponibile implica che sia abbastanza difficile fornire regole sicure e veloci su ciò che si deve fare per installarli. Come suggeriamo ripetutamente in questo capitolo, si devono sempre leggere i file di installazione del prodotto, che normalmente spiegano come installarli. Se si ha bisogno di ulteriore aiuto, contattare una mailing list o l'autore del prodotto per ulteriori informazioni; comunque, assicurarsi prima di aver letto le istruzioni.

Quando si installano prodotti, bisogna ricordarsi che si sta installando codice che potrebbe essere incompleto e che non è possibile avere garanzie sulla sua qualità. È nella natura dello open source, ove le persone tendono a scrivere prodotti per poi abbandonarli per indirizzarsi verso altri progetti. In un mondo ideale, prima di installare qualsiasi cosa, si dovrebbe prendere tempo ed assicurarsi di leggerlo riga per riga. In realtà, non lo si può fare. Infatti, la maggior parte dei prodotti è veramente buona. Solamente si deve porre attenzione a fare delle prove prima di installarli nel proprio sito da un milione di dollari.

Trovare i prodotti

Trovare i prodotti giusti che soddisfano le proprie necessità probabilmente è la parte più difficile dell'integrazione. Il sito web Zope.org contiene molti prodotti creati e caricati dagli utenti. Questi prodotti si possono trovare principalmente presso http://www.zope.org/products, ma se si guarda nella home page di Zope.org, sul lato destro, si vedono gli annunci dei prodotti. Alcuni di questi prodotti sono relativi a Plone, altri a Zope, al Content Management Framework (CMF), o relativi a Python.

L'altra area fondamentale per trovare prodotti è il progetto Collective presso SourceForge (http://sf.net/projects/collective). I prodotti del progetto Collective risiedono nel Concurrent Versioning System (CVS) di SourceForge. Anche se i prodotti vengono rilasciati frequentemente come tarball, spesso l'accesso via CVS è il miglior modo per vederli.

In questo momento, non esiste alcuna directory contenente prodotti Plone o il loro stato. (Speriamo che ve ne sia una on-line su Plone.org al momento in cui questo libro sarà pubblicato). Appena sono rilasciati i prodotti, la gente tende a metterli sulla pagina File, ma la cosa migliore è guardare nel CVS. Si può trovare una vista visuale di tutti i file disponibili presso http://cvs.sourceforge.net/viewcvs.py/collective/.

Un repository finale di CVS che contiene utile codice è il repository CVS della Zope Corporations. Pressocché tutto il codice, reso pubblico, è collocato in questo repository CVS. Se si sta cercando il sorgente di Zope 2, allora pure questo è il posto adatto. La cartella Products contiene tutti i prodotti (http://cvs.zope.org/Products/). Presso http://dev.zope.org/CVS/ReadOnlyAccess si possono trovare ulteriori informazioni su come prelevare il codice.

Cos’è un CVS?

Il Concurrent Versioning System CVS è un sistema per mantenere il controllo sul codice sorgente. Gran parte dello sviluppo di codice avviene in un sistema di controllo di codice sorgente, come CVS o uno dei molti prodotti similari che competono con lui, come Subversion, Perforce, BitKeeper e così via.

Prelevare file da CVS è semplice, e la maggior parte degli utenti Unix e Linux hanno familiarità con l'uso di CVS dalla linea di comando. Per prelevare tutti i prodotti del Collective sul proprio computer (potrebbe essere necessario un bel po' di tempo), fate cosi:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/collective login

Fornite una password vuota blank e continuate con il seguente comando:

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/collective co *.*

La maggior parte della squadra di sviluppo di Plone che usa Windows utilizza TortoiseCVS il quale si aggancia direttamente alla shell di Windows Esplorer; in Esplorer si può cicclare con il tasto destro per aggiornare ed inviare codice. Per ulteriori informazioni su TortoiseCVS, visitate il sito http://www.tortoisecvs.org.

Installare in Zope

Una volta trovato e scaricato un appropriato prodotto, dovremmo installarlo. Prima bisogna installarlo in Zope in modo che possa riconoscere il nuovo prodotto. Per farlo, abbiamo bisogno di trovare la cartella che contiene tutti i prodotti esistenti. Per trovarle, andiamo al pannello di controllo nella Zope Managemet Interface (ZMI). Là possiamo vedere la lista delle cartelle della nostra instanza Plone. Se troviamo un valore per INSTANCE_HOME, allora la nostra cartella Products sarà posizionata in essa. Se non troviamo un valore, troveremo la cartella Products in SOFTWARE_HOME. Pressocché tutti i metodi di installazione di Plone creano per noi INSTANCE_HOME. Come mostrato in figura 10-1, la nostra INSTANCE_HOME è /var/book, così la nostra cartella Products è posizionata in /var/book/Products.

../pb2_en/img/3294f1001.png

Figura 10-1. Localizzare la nostra cartella Products

Per renderlo parte dell'installazione Zope, prendiamo il prodotto scaricato, decomprimiamolo e poniamolo nella cartella Products del nostro server. Attualmente fare ciò è un po' complicato e dipende moltissimo da come sia pacchettizzato il prodotto che stiamo provando ad installare. Per mostrare questo più in dettaglio, la sezione seguente spiega come installare un prodotto di esempio, CMFExternalFile, che viene trattato nella sezione Amministrare un file in Plone.

Una delle cose belle di CMFExternalFile è che in realtà è composto da due parti, con due download separati. Prima, abbiamo il codice specifico per Zope chiamato ExternalFile. Se si desidera utilizzare questo prodotto al di fuori di Plone, in pieno Zope, possiamo farlo. Secondariamente, abbiamo il codice specifico per Plone e specifico per CMF denominato CMFExternalFile. La maggior parte dei prodotti non ha bisogno di due installazioni; vengono rilasciati autocontenuti in un unico prodotto.

Effettuare un’installazione su Windows

Abbiamo bisogno, prima, di scaricare il prodotto da Zope.org, URL http://zope.org/Members/arielpartners/ExternalFile/1.2.0/ExternalFile-1-2-0.zip e di salvarlo sul nostro computer.

Successivamente, decomprimiamo il file. Per farlo possiamo usare WinZip che troviamo su molti computer Windows oggigiorno (noi preferiamo 7-Zip che è disponibile presso http://www.7-zip.org /).

Dopo la decompressione, troveremo una cartella chiamata ExternalFile. All’interno di questa v’è la cartella del prodotto (si veda figura 10-2). Possiamo dire ciò perché in questa cartella è presente un intero gruppo di file Python e di testo, incluso INSTALL.txt e README.txt che contengono informazioni su come effettuare l’installazione.

../pb2_en/img/3294f1002.png

Figura 10-2. I contenuti della cartella ExternalFile

Successivamente, moviamo la cartella ExternalFile (non il solo contenuto) nella nostra cartella Products. In Windows è localizzata in C:\Program File\Plone 2\DataProducts. In essa vediamo una serie di altre cartella incluse CMFPlone, CMFCore e così via. La cartella ExternalFile ora dovrebbe essere fra queste. Possiamo allora andare a testare l'installazione sul server.

Effettuare un’installazione su Unix

Prima, abbiamo bisogno di scaricare il prodotto da Zope.org presso http://zope.org/Members/arielpartners/ExternalFile/1.2.0/ExternalFile-1-2-0.zip e di salvarlo sul nostro computer. Successivamente, decomprimere il file; la maggior parte dei sistemi Unix ha già installato un apposito programma (di unzip). In tal caso, eseguiamo i seguenti comandi:

$ unzip ExternalFile-1-2-0.zip
Archive:  ExternalFile-1-2-0.zip
   creating: ExternalFile/CVS/
...

Dopo aver decompresso, troveremo la cartella ExternalFile. Sappiamo che la cartella ExternalFile è la cartella del prodotto perché in essa v’è un intero gruppo di file Python e testo, incluso INSTALL.txt e README.txt che contengono informazioni su come installarlo.

Ora moviamo la cartella ExternalFile (non il solo contenuto) nella cartella Products. Questo comando dipende dalla configurazione del nostro server, nel nostro caso è il seguente:

$ mv ExternalFile /var/zope/Products
Esaminare l'installazione sul Server

Dopo avere installato un prodotto, bisogna (re)inizializzare Plone per i nuovi prodotti che sono stati registrati. Una volta riavviato il server, andiamo nella ZMI ed accediamo alla schermata Product Management del pannello di controllo. Questa elenca tutti i prodotti installati sul server. Se abbiamo installato con successo il prodotto, lo dobbiamo vediamo elencato, come mostra la figura 10-3.

../pb2_en/img/3294f1003.png

Figura 10-3. Prodotti correttamente installati

Incidentalmente, possiamo avere, a questo punto, tre cose che possono andare storte. Prima, se non si trova nulla nell'interfaccia di gestione, allora abbiamo messo la cartella nel posto sbagliato. Per correggere, controlliamo attentamente sia le istruzioni di installazione, sia l'ubicazione della nostra cartella Products, come precedentemente spiegato.

Successivamente, possiamo vedere se sia visibile, nella lista dei prodotti, un icona rotta; questo vuol dire che si è cercato di registrare il prodotto in Zope, ma è successo un errore. Clicchiamo su l'icona rotta per visualizzare un traceback dell'errore che dovrebbe darci una qualche possibilità per ripararlo.

Infine, se non siamo stati capace di accedere all'interfaccia di gestione dopo avere riavviato, può essere che vi sia un problema più serio. Zope non è stato capace di inizializzarsi poiché Plone trova un errore serio. Per scoprire quale sia il problema, avviamo Plone dalla linea di comando in modabiltà debug, e ci verrà visualizzato sullo schermo un traceback.

Installare Plone

Ora che lo abbiamo installato correttamente in Zope, il passo successivo è più facile. Per installare completamente CMFExternalFile, abbiamo ora bisogno di installare il prodotto CMFExternalFile (http://prdownloads.sourceforge.net/collective/CMFExternalFile.0.5.zip?download) nello stesso modo nel quale abbiamo installato ExternalFile. Dovremo poi riavviare anche Plone.

Dobbiamo installare CMFExternalFile in ciascuna istanza di Plone. Non tutti i prodotti Plone lo richiedono, ma la maggior parte lo richiedono. L'unico vero modo di saperlo è leggere le istruzioni di installazione. Se vediamo qualcosa come "installare nel modo standard di CMF" o "nella nostra instanza Plone creiamo un External Method", allora abbiamo bisogno di effettuare questo passo.

Fortunatamente, in realtà, possiamo trascurare le istruzioni per creare un External Method poiché Plone ha un modo molto più semplice di farlo. In Plone, clicchiamo configurazione di plone e quindi Inserimento/rimozione di prodotti. Vedremo la lista dei prodotti installati sul nostro server e quelli che hanno bisiogno di essere configurati in Plone. Clicchiamo semplicemente il box di spunta vicino al prodotto (in questo caso, CMFExternalFile), e clicchiamo installa, come mostrato in figura 10-4.

../pb2_en/img/3294f1004.png

Figura 10-4. La lista di prodotti disponibile all'utente

Fatto ciò, il prodotto verrà installato. Bene, può essere che se v’è un errore, allora esso non viene mostrato nella lista dei prodotti installati. Possiamo essere in grado di risolvere il problema leggendo il file di log, così cliccando il collegamento vicino al nome del prodotto visualizziamo il log. Questo modo di installare è un servizio fornito dallo strumento portal_quickinstaller contenuto in Zope. Per dare un'occhiata a ciò che fa davvero questo prodotto, fate un salto alla sezione Integrare Plone con il File System?¿.

Usare un Web Server alternativo

Se appartenete ad un'organizzazione che già utilizza siti web, allora probabilmente state usando una piattaforma di server web. Virtual Hosting fornisce la capacità di servire diversi siti web su di un server, differenziando i siti in base al loro indirizzo Internet Protocol (IP) o al loro nome. Questo permette ad un server iniziale, come Apache, di passare richieste ad una o più istanze Plone.

Il Virtual Hosting è di solito realizzato mediante regole proxy, sebbene usare un server proxy sia un approccio desiderabile con Plone, non c'è problema per quanti siti siano ospitati. Un server proxy è posto fra un client ed un server ed inoltra le richieste del client e del server. Un server proxy dovrebbe essere trasparente all'utente. Nel Capitolo 14 mostreremo come si possa usare un server proxy per aumentare drasticamente il rendimento di Plone.

Sebbene Plone usi il web server sottostante Zope, ZServer lavora più che bene - pur non essendo un web server completo con qualità industriale che possa essere esposto al mondo. Il server ha diversi problemi riguardo a possibili attacchi Denial of Service (DOS); comunque, questi sono problemi oscuri e difficili da scoprire all'interno di ZServer. Nessun attacco noto è stato compiuto contro ZServer sfruttando questi problemi; forse questo a causa della sua relativa oscurità nel mondo reale. ZServer non è progettato specificamente per essere un server di capacità industriale, e per quando sia una feature completa, non è più sviluppato. Usando un server moderno come Apache, stiamo più tranquili, poiché è un server robusto e sicuro sta affrontando il mondo. Chiaramente, se stiamo sviluppando una intranet o un'altra applicazione con utenti fidati, questo può non costituire un problema.

La figura 10-5 mostra come dovrebbe essere tale installazione; la figura non mostra in realtà computer, solo servizi. Una richiesta proveniente normalmente da Internet al firewall e indirizzata ad Apache ed infine a Plone. Potrebbe essere che siano tutti su macchine diverse. Il punto fondamentale è che non vi dove essere accesso a Plone da utenti non fidati eccetto che attraverso un proxy.

../pb2_en/img/3294f1005scrap.png

Figura 10-5. Come lavora un virtual hosting

Mettendo un server web, come Apache prima di Plone offriamo un intero ambiente di servizi utili che ZServer non possiede. Per esempio, Apache può offrire: riscrivere Uniform Resource Locator (URL), supportare Secure Sockets Layer (SSL), caching, deflation dei contenuti, hosting virtuale, proxying di altri servizi web, pulizia (sanitation) delle richieste entranti, e così via. La richiesta più comune è di modificare un URL a http://localhost:8080/plone in qualche cosa di più amichevole come http://vostrosito.com. Questo viene definito come riscrivere (rewriting) l’ URL. Anche se un server di proxying non richiede ciò, è molto più facile avendone uno.

Il metodo preferito per effettuare proxying per Plone è usare un proxy Hypertext Transfer Protocol (Http). Apache effettua ciò utilizzando il modulo mod_proxy. Quando una richiesta per una pagina entra nel server proxy, questo esegue varie funzioni. Viene creata e spedita una nuova richiesta allo ZServer. Questa risposta è passata indietro al server e poi al client. Chiaramente, questo è del tutto trasparente al client che fa solamente richieste normalmente ad un server.

Nota

Il vecchio modo di connettere Apache a Plone è attraverso Fast CGI o Persistent CGI. Questi sono più difficili da configurare e in realtà molto lenti quando vengono eseguiti. Anche se su questi oggetti, esiste molta documentazione vecchia, ora esistono soluzioni più efficienti, e così non raccomandiamo più questi metodi.

Configurare Plone

Prima di configurare il proxy del nostro server web, abbiamo bisogno di configurare Plone. Visto che solamente un server per volta può essere connesso ad una porta, modifichiamo Plone in modo che stia in ascolto su una porta con un numero alto. Normalmente questa porta dovrebbe essere bloccata dal firewall e non accessibile da fuori. Porte, per esempio, sono 8080, 9090, 9673 e così via. Il Capitolo 2 offre informazioni su come cambiare le porte su cui è in ascolto un server Plone.

Successivamente, vogliamo ottenere probabilmente la riscrizione degli URL per cambiare l' URL del nostro sito. Poiché un oggetto Plone vive all’interno del Zope Object Database (ZODB) ed ha un ID, esso è accessibile, nell' URL, puntando a quell' ID , come http://localhost:8080/plone. Per renderlo ancora più amichevole, abbiamo bisogno di tradurre la richiesta al server web da http://vostrosito.com in una richiesta relativa all’oggetto corretto in Zope. Ci sono due modi lievemente diversi di farlo, basati sulle proprie necessità. Se stiamo usando un server proxy web o stiamo utilizzando siti basati su nomi di dominio, allora possiamo usare un Virtual Host Monster (VHM). Questo è un oggetto potente e amichevole che renderà la nostra vita molto più semplice, così che raccomandiamo pienamente di usarlo. Abbiamo bisogno di un solo VHM nella radice di un’istanza di Zope. L'oggetto VHM risiede alla radice di un sito Zope ed intercetta tutte le richieste entranti; modifica poi la richiesta così che la richiesta vada nell'area di Zope che desideriamo.

Per creare un VHM, nella ZMI, andiamo alla radice del nostro Zope e selezioniamo Virtual Host Monster dall'elenco a discesa, nel modulo che viene aperto, digitiamo un ID. Digitiamo vhm, per esempio (non è importante l'effettivo ID).

A questo punto, se stiamo usando un server web proxy dinanzi a Plone, continuiamo la configurazione di questo server web nella sezione Configurare il Server Proxy.

Il passo successivo è necessario solo se non stiamo usando un server web proxy. Clicchiamo l’oggetto VHM, aggiunto nella ZMI, e selezioniamo quindi la scheda Mapping che presenterà un lista dei rilevamenti disponibili per gli host su questo oggetto. Il rilevamento prende una richiesta entrante e la mappa a Plone, con la sintassi seguente:

host/path

dove host è lo hostname che è stato mappato e path è il percorso attuale dell'oggetto in Zope. Per esempio:

www.somesite.com/Plone

Per assicurare che tutte le variazioni sul nome siano mappate nel percorso, possiamo usare i caratteri jolly nel rilevamento. Per esempio, ciò che segue mappa tutti i sottodomini di somesite.com:

*.somesite.com/Plone

Per aggiungere questa mappatura, andiamo alla scheda Mapping, digitiamo ciascuna mappatura su una nuova riga, e clicchiamo Save. Questo significa che non saremo più in grado di accedere alla radice del nostro sito Zope usando gli indirizzi che abbiamo mappato. Fortunatamente, possiamo ancora accedere alla radice del nostro server Zope usando un indirizzo IP; questo funzionerà ancora perché la mappatura non viene applicata agli indirizzi numerici. La figura 10-6 mostra com'è cambia la figura 10-5 quando si accede direttamente al server attraverso l' IP e si aggira la riscrittura.

../pb2_en/img/3294f1006scrap.png

Figura 10-6. Hosting virtuale con accesso alla radice

Ora abbiamo mappato un dominio chiamato somesite.com in modo che punti ad una particolare istanza Plone. Se una richiesta entrante cerca quel nome di sito, viene inoltrata all'istanza Plone.

Configurare il Server Proxy

Ora che abbiamo aggiunto VHM al nostro Plone, è tempo di configurare il server proxy. La configurazione del server proxy dipende, in realtà, dal server che stiamo utilizzando. Le seguenti sezioni trattano in specifico ogni server. Comunque, per far funzionare l'hosting virtuale dovremo passare a Plone un URL che l'oggetto VHM comprenda.

Vale notare che c'è un ulteriore vantaggio dell'hosting virtuale usando un server proxy. Possiamo effettuare tutta la configurazione dei domini al di fuori da Plone, nel server proxy. Questo vuol dire che il nostro amministratore di sistema ora può amministrare e può utilizzare uno strumento a lui familiare, senza doversi preoccupare di Plone.

Il servizio proxying funziona prendendo una richiesta entrante e manipolandola in modo tale, venga spedita a Plone, che una richiesta con un URL speciale. Questa richiesta verrà manipolata e conterrà tutte le informazioni di cui Plone ha bisogno di conoscere per fornire una risposta. Quando questa risposta viene prodotta e viene spedita di nuovo alla persona richiedente, tutti gli URL devono puntare correttamente al nostro sito. Questo ci assicurerà che i collegamenti, all'interno delle nostre pagine, siano tutti corretti. Un URL ha tre componenti principali:

  • L' IP o hostname e la porta del server sul quale risiede Plone.
  • L' IP o hostname ove Plone risiede affinché tutti i collegamenti, nei documenti risultanti, abbiano l' URL corretto.
  • L'oggetto reale di Zope a cui accedere e l' URL ad esso passato passato.

Questa informazione viene passata a Plone trasformando l' URL in un grande complicato URL dal formato seguente (le interruzioni di linea sono state aggiunte per renderlo più chiaro):

http://[URL to server]:[port]
/VirtualHostBase/[protocol]/[URL]:[port]
/[path to virtual host root]
/VirtualHostRoot/[actual URL]

Vediamo l'esempio seguente:

  • Plone è su un box all'indirizzo IP 192.168.2.1 in ascolto sulla porta 8080. Notate che l'indirizzo IP è un indirizzo a cui il server proxy può accedere; non è un indirizzo IP esterno: quello viene gestito dal server proxy.

  • Plone dove apparire come www.miosito.it in ascolto sulla porta 80.

  • L'effettiva istanza di Plone è /Plone.

  • La richiesta in ingresso è per /Members/andrea.

    Questo viene tradotto nel lungo URL seguente:

 http://192.168.2.1:8080 ~CCC
/VirtualHostBase/http/www.miosito.it:80/Plone ~CCC
/VirtualHostRoot/Members/andrea

La chiave di funzionamento è che, quando l'oggetto VHM vede questo URL, sa precisamente cosa farne. Lo rielabora e spedisce la richiesta all'oggetto Plone. Evidentemente, il frammento di pagina effettivo (/Members/andrea) sarà diverso per ogni richiesta ed avrà bisogno di essere calcolato. Ma se sappiamo cosa desideriamo ottenere, possiamo ora configurare il nostro server.

Configurare Apache

Apache probabilmente è la scelta più popolare da mettere dinanzi a Plone, ed è disponibile per qualsiasi piattaforma, Linux, Unix e Windows (http://httpd.apache.org/). Dopo avere installato Apache, abbiamo bisogno di passare richieste a Plone usando un proxy Http.

Per configurare Apache, abbiamo bisogno di accedere al file di configurazione di Apache; dove risiede dipende dalla vostra installazione di Apache; consultiamo quindi la documentazione Apache. In Windows, la configurazione è accessibile dal menu Start. In Linux, di default, possiamo trovare la configurazione Apache nella cartella /etc presso /etc/apache/httpd.conf o /etc/apache2/httpd.conf. Per modificare questo file, solitamente abbiamo bisogno dei privileggi di root o di avere un accesso come utente privilegiato.

Nota

Questo esempio utilizza Apache 2, ma tutti questi comandi sono compatibile all’indietro con le precedenti versioni, come Apache 1.3.2. Le precedenti versioni di Apache (antecedenti alla versione 1.3.2), comunque, sono conosciute per avere problemi con i cookies.

Il modo più facile di riscrivere un URL in Apache è di usare i moduli incorporati riscrittura (rewrite) e proxy. Ciò significa abilitare i moduli mod_rewrite e mod_proxy. In Apache, ogni sito, per default è contenuto all'interno di una cartella host virtuale che comincia con il seguente:

<VirtualHost *:80>
    ServerName yoursite.com
    # other configuration options

Tutto ciò di cui abbiamo bisogno è abilitare la riscrittura ed aggiungere la relativa regola, così come:

    RewriteEngine On
    RewriteRule ^/(.*)  http://192.168.2.1:8080 ~CCC
/VirtualHostBase/http/www.miosito.it:80/Plone ~CCC
/VirtualHostRoot/$1 [L,P] ~CCC
</VirtualHost>

La regola chiave del reindirizzamento prende ogni stringa di richiesta passatale e vi appende poi alla fine la regola di reindirizzamento da noi codificata. La [L,P] indica ad Apache che questa è l'ultima regola di reindirizzamento, e che deve inviarla al server dato. Dopo avere fatto questo, abbiamo bisogno di riavviare Apache per aggiornare la configurazione. Possiamo trovare ulteriori informazioni sul reindirizzamento leggendo la documentazione del modulo mod_rewrite presso http://httpd.apache.org/docs-2.0/misc/rewriteguide.html. Notate che in questo caso abbiamo messo le informazioni delle regola di reindirizzamento all’interno della direttiva dell'host virtuale. Possiamo quindi avere diversi host virtuali in Apache, siti PHP, Perl e Java abbiano ognuno un proprio posto in un solo server.

Squid

Squid è la scelta più popolare fra gli utenti per la sua potenza di caching e per le sue opzioni di configurazione. Squid è disponibile per Unix, e vi sono disponibili, per Windows, anche compilazioni realizzate usando cygwin. Anche se non abbiamo esaminato specificamente la versione Windows, molte persone ci hanno riferito che funzioni bene. Possiamo trovare il download presso http://www.squid-cache.org/. Queste note trattano la versione 2.5, l'ultima stabile al tempo della stesura.

Installare Squid dalla distribuzione sorgente è piuttosto semplice. Dopo averlo scaricato, i comandi seguenti installano Squid:

$ tar -xvf squid-2.5.STABLE3.tar.gz
$ cd  squid-2.5.STABLE3
$ ./configure --prefix=/usr/local/squid
...
$ make all
...
$ make install
...

Sfortunatamente, Squid non possiede regole di reindirizzamento che permettano di modificare le richieste entranti prima del proxying. Tuttavia, Squid Guard (http://www.squidguard.org/) può eseguire questo lavoro. Esaminamo la versione 1.2.0. Dopo averlo scaricato, i comandi seguenti lo installano:

$ tar -zxvf squidGuard-1.2.0.tar.gz
$ cd squidGuard-1.2.0
$ ./configure
...
$ make
...
$ make install
...

Squid e SquidGuard, ora sono pronti per funzionare; entrambi i file di configurazione hanno ancora bisogno comunque di essere modificati. Possiamo trovare il file di configurazione di Squid in /etc/squid.conf. È un lungo file di configurazione, in cui fortunatamente vengono spiegate, con molto precisione, tutte le opzioni. Queste che seguono, sono le opzioni essenziali da mettere:

http_port 80
httpd_accel_host virtual
httpd_accel_port 0
 
http_access allow all
http_access allow localhost

Queste ultime due righe sono regole di sicurezza per permettere l’accesso da browser. Visto che è stato posto dietro ad un firewall, queste sono regole tolleranti. Se stiamo eseguendo Squid all'esterno (non protetto da un firewall, ndt), dovremmo leggere in dettaglio, le regole di accesso. Il modo più facile di assicurare questo è cambiare http_access allow all in http_access deny all. In fine, aggiungiamo la riga seguente al file di configurazione:

redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

Questo imposta il reindirizzamento attraverso SquidGuard usando il file di configurazione presente in /etc/squid/squidGuard.conf. SquidGuard non ha un file di configurazione, ma uno standard, che usa la configurazione dell'host virtuale come segue:

dbhome /var/lib/squidguard/db
logdir /var/log/squid
acl {
    default {
            redirect http://192.168.2.1:8080 ~CCC
/VirtualHostBase/http/www.agmweb.ca:80 ~CCC
/Plone/VirtualHostRoot/%p ~CCC
  }
 }

In ultimo, Squid ha la configurazione che serve per reindirizzare il traffico in modo che il monster host lo conprenda. Le richieste entranti saranno trattate da Squid e poi verranno passate a Plone.

Microsoft Internet Information Server

Internet Information Server (IIS) non è, come server, la nostra scelta preferita; comunque, visto che molte società lo usano, abbiamo incluso questa sezione. Sfortunatamente, IIS non può effettuare proxying in modo identico a Squid e ad Apache; abbiamo bisogno di un plug-in separato. Poco prima che questo libro fosse stato pubblicato, è stato scritto un proxy gratuito chiamato IIS2Zope che fornisce questa funzionalità.

Comunque, non abbiamo avuto modo di provarlo in un sito ad alto rendimento. Per ulteriori informazioni, vedete http://zope.org/Members/freshlogic/index_html.

Tratteremo invece una soluzione che è semplice da mettere su ed è free. I primi utenti di Zope raccomandavano PCGI, ma, durante il corso degli anni, è divenuto lento e complicato da installare. Abbiamo una soluzione più rapida, usando il linguaggio ASP di Microsoft e le proprietà di IIS. Si chiama ASP 404 ed esegue il reindirizzamento attraverso il linguaggio di programmazione ASP di Microsoft.

Da http://www.zope.org/Members/hiperlogica/ASP404 scarichiamo l'ultima versione. Prendiamo in considerazione il file ASP404_1-0-b2.zip. Decomprimiamolo, troveremo, in esso, un file, default.asp. Prendiamolo e poniamolo nella radice del sito di cui vogliamo fare proxy; sul nostro server è c:inetpubwwwroot.

Successivamente, abbiamo bisogno di modificare questo script con le informazioni corrette con l'ubicazione del nostro sito Plone. Apriamo lo script, in un semplice editor di testo, e cambiamo le due righe che contengono le variabili per la configurazione del sito. Specificamente, cambiamo la linea 18 da questo:

zopeAddress = "http://127.0.0.1:8080"

all'indirizzo del server di destinazione. In questo esempio, il seguente indirizzo:

zopeAddress = "http://192.168.2.1:8080"

Poi cambiamo la linea 27 da questo:

zopePath = "/"

all' ID dell'oggetto Plone, in questo modo:

zopePath = "/Plone"

Salviamo il file, e chiudiamo l’editor. Infine, abbiamo bisogno di informare IIS di comunicare con Plone; qui è dove dobbiamo utilizzare un po' di inganno. Apriamo Internet Services Manager, di solito posizionato, in qualche posto, nel pannello di controllo di Windows. Troviamo il sito verso il quale cerchiamo di fare proxy ed accediamo alle proprietà del sito, come mostrato in figura 10-7.

../pb2_en/img/3294f1007.png

Figura 10-7. Accedere alle proprietà di un sito

Nelle proprietà, selezioniamo la scheda Custom Erros, ed andiamo giù finché troviamo l'errore 404. Fatto doppio click sull'errore 404 lo modifichiamo come segue:

Message Type: URL

URL: /default.asp

La figura 10-8 mostra le impostazioni.

../pb2_en/img/3294f1008.png

Figura 10-8. Impostare il reindirizzamento dell'errore 404

Salviamo le modifiche cliccando OK. A questo punto, il nostro elenco di errori dovrebbe apparire come in figura 10-9. Se così è, dovrebbe essere impostato correttamente. Accediamo ad IIS attraverso il browser e bingo – vedremo Plone

../pb2_en/img/3294f1009.png

Figura 10-9. Lista degli errori

Ciò che succede è che stiamo catturando l'errore di un elemento che non può essere trovato in IIS. Lo script ASP, che abbiamo installato, legge allora la richiesta e la inoltra a Plone. Prende la risposta e la passa ad IIS e quindi indietro al browser. Tutto ciò vuol dire che abbiamo aggiunto un semplice programma proxy ad IIS.

Qui, tuttavia, abbiamo alcune chiavi di lettura. La prima è che una pagina non deve essere trovata in seguito all'intervento del proxy; altrimenti lo script non viene eseguito. Questo è contemporaneamente un bene ed un male. Possiamo aggiungere cartelle ed immagini ad IIS, e saranno servite al posto di Plone se i nomi corrispondono alla richiesta dal browser. La seconda, la richiesta entrante è analizzata e mandata avanti; questo crea un po’ di confusione, in diverse situazioni, con tutte le possibili configurazioni di richiesta HTTP. Troveremo anche che tutte le nostre richieste verso Plone sono in realtà registrate come errori 404, da IIS, confondendo gli strumenti di analisi dei file di errori.

In generale, quest’installazione ha funzionato con la maggior parte delle persone che l'hanno utilizzata, ma se è una soluzione per una azienda che dove affrontare qualsiasi situazione essa è improponibile. Offre, comunque, una importante base di lavoro per le persone che vogliono lavorare e sviluppare.

Eseguire il debug del Proxy Server

Una volta preparato il server e riavviato il tutto, possiamo collaudarlo usando il nostro browser per visitare il sito. Dopo averlo fatto alcune volte, possiamo utilizzare i seguenti consigli quando le cose sembrano non andare completamente come dovrebbero:

Testare il sito
La regola d’oro per la correzione degli errori (debug) del server proxy è sempre di testare il sito registrandosi e bypassare il proprio proxy server. È possibile farlo accedendo direttamente all'IP ed alla porta del vostro server Plone. Nel caso dell'esempio precedente, potet accedere al sito puntando a http://192.168.2.1:8080/Plone, ed aggirando così completamente il server proxy. Se non avete, in questo modo, nessun problema accedendo e registrandovi all’interno di Plone, ma ne avet, quando cercate di accedervi attraverso il server proxy, si hanno molte probabilità che gli errori si stiano creando sul lato server del proxy. Le versioni più vecchie di Apache 1.3 hanno problemi con i cookies quando si effettua il login; così dovete aggiornarlo con una versione più recente.
Controllare l'URL
Controllate due volte che il vostro server proxy stia inviando l'URL corretto che può essere piuttosto lungo e complicato. Spezzatelo, in corrispondenza delle barre inclinate, per esaminarlo in ogni parte. Ricordate che affinché Plone restituisca l'URL corretto, gli si devono passare valori corretti. Quindi dovete assicurarvi che la sezione /[protocol]/[URL]:[port]section sia corretta. Se il vostro sito sta usando SSL, per esempio, assicuratevi che la parte relativa al protocollo sia https, non http.

Integrare Plone nel File System

Può sembrare un po’ strano integrare Plone con il File System, ma stiamo parlando di abilitare Plone all'uso dei contenuti dal File System. Chiaramente, Plone già esiste come insieme di file installati ed eseguiti dal File System. Tutti i contenuti, in un sito Plone, comunque, sono conservati all'interno del ZODB, ma molte persone ci richiedono di voler conservare e di voler servire i loro contenuti direttamente dal File System.

In verità, molte persone, osservando Zope e Plone e vedendo le piccole icone di cartelle, presumono che si riferiscono direttamente a cartelle ed elementi del File System. La realtà non è proprio così. Se stessimo usando un database relazionale, come fa la maggior parte dei Content Management Systems (CMS), vorremo ancora fare ciò ? Molte persone ci saltano entro pensando che sia un problema; quelle che seguono sono delle ragioni perché si vorrebbe fare ciò:

Abbiamo molti brani di contenuto veramente grandi
Plone può amministrare file veramente grandi senza nessun problema. Database di oltre 10 gigabyte sono comuni e lavorano più che bene. Se state usando brani, veramente grandi, di contenuti (per esempio, un cliente per cui lavoriamo usa Plone per amministrare il suo DVD - cioè il contenuto reale del DVDs), allora diamo un'occhiata a CMFExternalFile ed ad Apache. Per cose veramente grandi una buona via è usare Apache o un altro server per fornire il vostro contenuto .
Vogliamo amministrare i contenuti usando programmi che leggono dal File System, come Microsoft Word
Possiamo usare un External Editor per modificare un contenuto, conservato in un sito Plone, usando i nostri programmi residenti in locale. Se abbiamo installato Microsoft Word, possiamo caricare un documento Word e quindi modificarlo sul nostro computer.
Siamo stufi di modificare codice via web, in piccole aree di testo
Di nuovo, prima utilizziamo un External Editor. Secondo, perché fare lavoro, in ogni modo, attraverso il web ? Come mostrato nel Capitolo 7, possiamo scrivere tutti gli skin ed i modelli CSS nel File System.
Vogliamo poter usare gli strumenti del nostro File System sul contenuto
Bene, possiamo montare Plone tramite File Transfer Protocol (FTP) e WebDAV. Entrambi forniscono interfaccie simili al File System che funzionano con Plone.
Vogliamo effettuare facilmente il backup del contenuto
Nel Capitolo 14 mostriamo come effettuare un backup, come sia semplice fare backup incrementali ed amministrare Plone. Un metodo alternativo d'archiviazione, chiamato DirectoryStorage http://dirstorage.sf.net, può occuparsi di ciò.
Vogliamo usare CVS / Subversion / BitKeeper o qualche altro sistema di controllo dei sorgenti sul contenuto
Ah questo avrebbe senso ma, sfortunatamente, non è ancora pienamente integrato. In versioni future, di cui una è denominata provvisoriamente Plone 3, questo potrà essere completamente integrato.

Con questi punti in mente, guardiamo ora ai vari modi in cui si possono servire contenuti che risiedono nel File System attraverso Plone.

Usare il Proxying Web Server

Cosi, abbiamo preparato il server Web come precedentemente descritto in questo capitolo. A rischio di ripetersi, quel server web è migliore per fornire semplice contenuto di quanto lo possa essere Plone. Se abbiamo un gran numero di download, mettiamoli semplicemente in una cartella del nostro server che non abbia proxy a Plone e poi colleghiamoli da Plone. Gli utenti cliccheranno solo il collegamento e scaricheranno come al solito.

Fare questo con IIS è facile perché IIS, automaticamente, controlla prima per vedere se il file esiste prima di sollevare un errore 404. Apache invece richiede solamente due linee aggiuntive nel file di configurazione, come nel seguente codice:

<VirtualHost *:80>
    ServerName yoursite.com
    # other configuration options
    DocumentRoot /var/downloads
    RewriteEngine On
    RewriteRule ^/download(.*) - [L]
    RewriteRule ^/(.*)  http://192.168.2.1:8080 ~CCC
/VirtualHostBase/http/www.miosito.it:80 ~CCC
/Plone/VirtualHostRoot/$1 [L,P]
</VirtualHost>

In questo esempio, mettiamo il contenuto in /var/downloads, e gli URL per scaricarlo, attraverso Apache, inizieranno con /download.

Il motore di reindirizzamento vede che l'URL comincia con /download e non vi applica quindi alcuna modifica; questo è il significato della lineetta (-). Specificando il [L] alla fine della riga, nessuna ulteriore regola di reindirizzamento verrà applicata, così il proxy non interviene ed Apache continua come al solito, servendo il file.

Questo trucco è utile se cerchiamo di ospitare altri servizi sullo stesso virtual host. In un sito, che noi ospitiamo, Mailman, un gestore di mailing list, tutti gli URL, relativi a Mailman, iniziano con /mailman e /pipermail. Dopo aver impostato correttamente Mailman ed aver fatto tutta la configurazione, abbiamo aggiunto le due righe seguenti alla configurazione e così lavora bene:

RewriteRule ^/mailman(.*) - [L]
RewriteRule ^/pipermail(.*) - [L]

Di nuovo, qui l'unico vincolo è che non potete aggiungere oggetti, a Plone, i cui nomi possano essere in contrasto con le vostre regole, come aggiungere cartelle con nomi simili. Per esempio, mailman, pipermail o download, in questo esempio, sarebbero non corretti in quanto gli utenti non potrebbero mai vedere questi oggetti. Potete usare questo metodo per restringere accesso a certe parti del vostro sito, ma raccomandiamo per ciò di usare invece la sicurezza di Plone. A questo punto, Plone, in realtà, non sta amministrando contenuti, così che non vengono gestiti sicurezza, controllo di flusso, o metadati. Il contenuto è completamente fuori da Plone. A volte, tuttavia, questo può essere una buona soluzione.

Amministrare un file in Plone

CMFExternalFile è un prodotto che permette di amministrare contenuto dall'interno di Plone ed avere ancora il cuore del contenuto nel File System. Se abbiamo installato ExternalFile e CMFExternal, precedentemente nel capitolo, allora abbiamo tutto impostato; altrimenti ritorniamo alla sezione precedente Installare prodotti in Plone?¿.

Dopo averlo installato, ritorniamo alla nostra interfaccia Plone. Notiamo che se andiamo in Plone, ora possiamo aggiungere un nuovo tipo di contento, chiamato External File. Aggiungiamo un External File, digitato nello stesso modo di come facciamo con un file normale, come abbiamo descritto nel Capitolo 3. Infatti, se scaviamo nel codice del programma, notiamo che usa lo stesso template.

Comunque, osserveremo una piccola differenza qui. Il file di fatto è stato aggiunto al File System. È messo in una cartella nuova localizzata nella cartella var della nostra installazione Plone. Se non siamo sicuri dove questo sia, andiamo al pannello di controllo e cerchiamo la cartella elencata dall’istanza home; la nostra cartella var è localizzata in /var/zope/var. In questa cartella c’è una cartella chiamata externalfiles. In questa cartella saranno creati tutti i file caricati all’interno di Plone. Se guardiamo in questa cartella, dovremmo trovare il file che abbiamo caricato.

Ciò che abbiamo ora è una soluzione di memorizzazione ibrida che conserva il file nel File System ed i metadati dell'oggetto (descrizione, parole chiave ed altro) in Plone. Questo è migliore della soluzione con il solo server web, poiché permette al contenuto di avere sicurezza, metadata, e cosi via. Se realmente lo desiderate, configurando correttamente il vostro server di web, potrete avere il contenuto servito da Apache che legge la cartella dalla cartella externalfiles.

Accedere mediante FTP all’interno di Plone

Usare FTP è un buon modo per posizionare e trovare contenuto così che si possa modificarlo senza dover usare un browser. Per abilitare l'FTP in Plone, assicuratevi che sia attivato nel server. Ritornando al Capitolo 2, possiamo osservare come aggiungere e modificare servizi come questo. In breve, assicuratevi che il vostro file di configurazione di Zope, zope.conf, abbia al suo interno ciò che segue:

<ftp-server>
    address 21
</ftp-server>

Nota

Se abbiamo il nostro server in ascolto sulla porta 21, dobbiamo assicurarci che null'altro stia ascoltando quella porta. Nella maggior parte dei sistemi Unix, avete bisogno inoltre, di avviare il vostro servizio come root così che abbiate i permessi per connettersi ad una porta di basso numero. Per fare ciò, avremo bisogno di impostare l'utente effettivo nel vostro file di configurazione di Zope. Si veda la sezione La sicurezza del proprio server nel Capitolo 9.

Successivamente, avete bisogno di un client FTP per accedere al server. Se siate su Windows, allora potete usare solamente Internet Explorer digitando l'indirizzo del server nella barra degli indirizzi. Per esempio, impostiamo l'indirizzo del percorso del vostro server Zope (come ftp://localhost:8021/), e avrete accesso agli oggetti nel vostro sito, come mostrato in figura 10-10.

../pb2_en/img/3294f1010.png

Figura 10-10. Accesso FTP con Internet Explorer

Se per accedere al server servono un username ed una password, dobbiamo allora aggiungerli all'URL nella configurazione seguente: ftp://user:password@localhost:8021 /. Se questo piace, sono disponibili molti altri client FTP che permettono di avere un'interfaccia più sofisticata. Molti client FTP sono disponibili in Linux, per linea di comando o con GUI, come gFTP e Konqueror.

Accesso WebDAV in Plone

WebDAV è un sistema per l'authoring dei contenti, usando HTTP, in sistemi come Plone. Questo permette di progettare un server Plone come un File System. Per abilitarlo, dovremo modificare il file di configurazione di Zope come descritto nel Capitolo 2 così che il file di zope.conf contenga ciò che segue:

<webdav-source-server>
    address 1980
</webdav-source-server>

Il programma WebDrive, per Windows, è disponibile presso http://www.webdrive.com/. E' disponibile, una prova gratuita (free trial), così che possiamo provarlo. Dopo averlo installato, aggiungiamo la connessione al server Plone, e tutto ciò di cui abbiamo bisogno, allora, è accedere direttamente al nostro sito dal File System andando in Windows Explorer, come mostrato in figura 10-11.

../pb2_en/img/3294f1011.png

Figura 10-11. Accedere al nostro contenuto Plone usando WebDrive

Possiamo provare Cadaver (http://www.webdav.org/cadaver), per Unix, che è un client a linea di comando pieno di caratteristiche. Dopo averlo installato, possiamo connetterci ad un sito Plone dalla linea di comando. Per esempio:

cadaver http://192.168.2.1:8080/Members/Plone

Modificare il contenuto con Editor grafici

Modificare il contenuto in una text area è un pessimo modo di costringere gli utenti a scrivere ed a modificare contenuti, una cosa che abbiamo commentato parecchie altre volte. Alcuni editor offrono soluzione per questo.

Uno è Epoz che permette, agli utenti, di modificare direttamente documenti nel browser senza dovere conoscere HTML. Se avete molti utenti che inseriscono contenuto, installando Epoz permetteremo ai nostri utenti di modificare i contenuti HTML senza dover davvero conoscere l'HTML. Per una redazione, veramente avanzata, potete utilizzare un External Editor che permette di modificare contenuto con un programma locale come Microsoft Word.

Editor WYSIWYG per il browser

Potete trovare la versione esaminata di Epoz 0.7.4 presso http://zope.org/Members/mjablonski/Epoz/0.7.4. Epoz richiede un browser moderno, cui molti utenti Plone, comunque hanno bisogno. I browser richiesti sono Internet Explorer 5.5+, Mozilla 1.3.1+, e Netscape 7.1+.

Scaricate ed installate come al solito Epoz; dopo averlo installato, dovete modificare le vostre preferenze personali, in Plone, per poterlo usare. Dovete accedere a Plone, cliccare preferenze personali, e quindi selezionare Preferenze Personali. Sulla pagina delle preferenze, apriamo il box a cascata Editor del contenuto, selezionate la scelta Epoz, e poi clicchate Salva per inviare le nostre modifiche.

Ora avete scelto il vostro editor, andate in un documento (qualsiasi documento lo fa) e cliccate la scheda modifica. Notate che il campo Corpo del testo è ora cambiato significativamente in un editor grafico. L’editor dovrebbe essere abbastanza auto esplicativo, con pulsanti famigliari come B per grassetto, I per italico, e così via (si veda Figura 10-12).

../pb2_en/img/3294f1012.png

Figura 10-12. Modifica di un documento in Epoz

External Editor

External Editor è uno strumento che potete usare, in Plone, per tutti i tipi di contenuto, di template e di codice. Permette di modificare localmente gli oggetti Plone conservati su un sito Plone con programmi di vostra scelta. Per esempio, potete modificare localmente in Microsoft Word un documento Word, conservato sul vostro sito Plone. Quando salvate il documento, viene spedito automaticamente a Plone.

l'External Editor viene fornito con l'installer Plone ed impostato automaticamente sul server. L’applicazione è insolita in quanto possiede due componenti: uno per il server ed uno per ogni client che vuole utilizzarlo.

Installare il prodotto, lato server, non è necessario se si è usato un installer per installare il proprio Plone. Se non è il nostro caso, il prodotto lato server è disponibile all'indirizzo http://zope.org/Members/Caseman/ExternalEditor. Installare il prodotto nel modo standard, che abbiamo discusso all'inizio di questo capitolo, e poi riavviare Zope.

Quindi, accedete come amministratore in Plone, cliccate configurazione di plone e poi selezionate impostazioni del portale. Selezionate l'opzione Abilita la funzionalità External Editor per assicurare che si possano modificare oggetti con questo strumento.

Su ogni computer che accede al sito Plone, avete bisogno di installare questo prodotto sul client. Giusto come installare Flash o QuickTime nel vostro browser, installiamo il codice External Editors lato client. Questo è maneggevole nelle intranet o sul nostro computer ma può essere un po' più difficile per un sito pubblico.

Per Windows 2000 e XP, scaricate l’installer eseguibile Windows chiamato zopeedit-win32-0.7.1.exe. Fate doppio click sull'installer, e verrà eseguita l’installazione grafica. Avete bisogno solamente di selezionare tutti i default. Questo preparerà le opzioni per Internet Explorer. Per verificare se questo è stato installato correttamente, fate come segue:

../pb2_en/img/3294f1013.png

Figura 10-13. File di configurazione tipo su Windows

Per Unix, scaricate i tarball chiamati zopeedit-0.7-src.tar.gz. Avete bisogno di decomprimerli e di eseguire l'installazione come dettagliato nelle istruzioni di installazione per Unix presso http://zope.org/Members/Caseman/ExternalEditor/install-uni*. Ciò che segue è un esempio per la versione 0.7:

$ tar -zxf zopeedit-0.7.1-src.tgz
$ cd zopeedit-0.7.1-src
$ python setup.py install
...

Dopo aver installato il client, avete bisogno di configurare ciascun browser che volete usare. Istruzioni per Konqueror, Galeon, e gli altri browser sono disponibili on-line su Zope.org. Le seguenti sono le istruzioni, passo a passo, per la configurazione di Mozilla:

Zope Editor

application/x-zope-edit

L'External Editor apre un editor basato sui contenuti di un file di configurazione. Per vedere invocato un editor di vostra scelta, modifichiamo questo file. Potete trovarlo sotto nomi diversi nei seguenti posti, in dipendenza dalla vostra installazione:

  • In Windows, se installate Plone usando un installer, potete trovarlo in C:\Programmi\Plone\Zope\pwi\zopeedit.ini.
  • In Windows, se usate l'installer autonomo di External Editor, potete trovarlo nella cartella dove viene installato External Editor; di default si trova in C:\Programmi\Zope\ExternalEditor\zopeedit.ini.
  • In Unix, questo file è stato chiamato .zope-external-edit e localizzato nella cartella home dell'utente che esegue il programma, per esempio /home/andrea/.zope-external-edit. È nella cartella home dell'utente perché ogni utente può avere impostazioni diverse.

Questo file contiene una mappatura di estensione e l’editor invocato; per cambiare l’editor per i modelli di pagine, per esempio, cercare le linee seguenti che contengono meta-type:Page-Template:

[meta-type:Page Template]
extension=.pt

Per esempio, potete usare Scite, un editor di testo gratuito. Per usare questo editor per i modelli di pagine, dovremmo cambiare il file cosi da leggervi quanto segue:

[meta-type:Page Template]
extension=.pt
editor=scite

Affinché l'External Editor possa funzionare, ogni chiamata dell’editor deve aprire un processo separato. Questo vuol dire che il programma External Editor client può controllare quel processo per vedere quando è finito. Questo causa problemi con alcuni editor che tentano di aprire file multipli, nello stesso processo. Per esempio, per caricare VIM in KDE, dobbiamo eseguire una shell separata come:

editor=konsole -e vim
Modificare un documento Word

Per modificare un documento Microsoft Word è, in realtà, veramente facile da impostare; tutto ciò di cui abbiamo bisogno è Microsoft Word, installato sul vostro computer locale. Caricate il vostro documento Microsoft Word in Plone come un file standard e poi vedete il file in Plone. Cliccate la piccola icona a matita nell'angolo in alto a destra della nostra pagina. Microsoft Word verrà aperto sul vostro computer, ed il documento verrà visualizzato dal server. Ora potete modificare il contenuto come volete, e cliccando Salva salverete automaticamente il file in Plone.

Modificare un modello di pagina attraverso un External Editor

Per creare un modello di pagina, usiamo la ZMI. Certamente, quando visualizziamo la cartella che contiene il modello di pagina, vedremo un'icona a forma di matita aggiunta alla destra dell'oggetto. Cliccando la matita attiverete l'External Editor ed aprirete il modello di pagina nell'editor che avete impostato. Tutto ciò di cui avete bisogno di fare è scoprire un buon editor per modificare i modelli di pagina. Siccome i modelli di pagina sono proprio Extensible HTML (XHTML), usate un semplice editor che supporti l'Extensible Markup Language (XML). Le seguenti sezioni discutono due editor: Dreamweaver e HTML-Kit.

Dreamweaver MX

Cambiate la parte [meta-type:Page Template] del file di configurazione per puntare a Dreamweaver. Per esempio, nella vostra installazione questo è così:

[meta-type:Page Template]
extension=.pt
editor=C:\Program Files\Macromedia\Dreamweaver MX\Dreamweaver.exe

Cliccando l'icona della matita per modificare in External Editor ora si apre direttamente Dreamweaver, come mostrato in figura 10-14. Sfortunatamente, Dreamweaver non aprirà ciascun file in una istanza separata che significa che potete modificare solamente un file alla volta.

../pb2_en/img/3294f1014.png

Figura 10-14. Modifica di modelli di pagine in Dreamweaver

HTML-Kit

HTML-Kit è un editor HTML molto potente, libero ed è il preferito da molti sviluppatori Plone. Per usare HTML-Kit con External Editor, modificate il vostro file di configurazione per puntare a HTML-Kit. Per esempio, nella vostra installazione questo è come segue:

[meta-type:Page Template]
extension=.pt
editor=C:\Program Files\Chami\HTML-Kit\Bin\HTMLKit.exe

Cliccando ora l'icona della matita per modificare in External Editor apre direttamente l'HTML-Kit. Potete inoltre modificare una impostazione per aprire ciascun file in un processo separato; selezioniamo Edit - Preferences - Startup, e spuntiamo Limit to a single HTML-Kit instance. Ogni file ora aprirà un processo nuovo.


Andy McKay: The Definitive Guide to Plone. Apress 2004
This online version was generated using the 'PloneBook' product from docs.neuroinf.de/products.
It was last updated by
lallo on 2005-04-09 07:08 from the cvs source using
svn export http://docit.bice.dyndns.org/Plone/PloneBook2/it LibroPlone.

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: