Installare e configurare l'external editor
Come utilizzare un programma esterno per modificare gli oggetti
External Editor - Come utilizzare un editor specializzato per modificare gli oggetti
L' external editor di Zope può essere installato e configurato in modo da aprire le applicazione preferite (applicazioni Microsoft piuttosto che quelle Linux) quando si vuol modificare un certo contenuto del sito, e non utilizzare lo scomodo editor standard html del browser.
In questo modo è possibile intervenire anche su contenuti non direttamente gestibili dall'editor del browser (tabelle elettroniche, grafici, immagini, disegni...).
Il meccanismo è composto di due parti
parte server: è un 'prodotto' Zope, che deve essere installato e poi attivato dalla ZMI. Il suo compito consiste sostanzialmente nel
- inscatolare l'effettivo contenuto dell'elemento che si vuole modificare
- spedirlo al browser, marcandolo con un determinato content-type
Nota
Questa parte viene installata dall'amministratore del portale e rende disponibile accanto ad ogni oggetto (nella vista contenuti) una piccola icona a forma di matita che attiva appunto la modifica del contenuto tramite una applicazione esterna.
parte client: questa parte del meccanismo è uno strumento d'appoggio che permette al browser di riconoscere questa particolare richiesta e farla gestire esternamente e cioé:
- riconoscere il tipo di contenuto
- lanciare l'editor opportuno
- ogni qualvolta il file viene salvato, reinscatolarlo nuovamente spedendolo quindi al server Zope che interpreterà questo come una modifica all'oggetto in questione
Dove va installato il client?
È indispensabile installare lo strumento d'appoggio in modo tale che sia accessibile dal proprio browser. Essendo scritto in Python, lo stesso strumento funziona perfettamente sia in ambito GNU/Linux che Windows. In entrambi i casi lo strumento potrà essere installato sia in una directory condivisa con altri utenti (tipico scenario in una intranet aziendale) che per uso personale nella propria cartella.
Come?
Per Windows la maniera più rapida e indolore è scaricare il solito installer che contiene tutto il necessario.
Per GNU/Linux ..dascrivere
Come si configura?
Il passaggio successivo è istruire il proprio browser affinché utilizzi lo strumento d'appoggio per gestire questo tipo di documenti. Con Mozilla, questo si fa aggiungendo un nuovo elemento in Helper Applications, nelle preferenze relative al Navigator. Lì si deve inserire un nuovo tipo application/x-zope-edit e associarlo allo strumento d'appoggio installato, ad esempio C:ProgrammiZopeExternalEditorzopeedit.py
Come/dove si configurano le varie applicazioni da aprire?
Lo strumento utilizza un file di configurazione nel solito formato INI di Windows, anche in ambito GNU/Linux.
Su Windows questo file si trova in C:ProgrammiZopeExternalEditorZopeEditor.ini, o comunque nella stessa directory dove è stato installato il pacchetto. In ambienti seri invece questa configurazione è memorizzata nel file ~/.zope-external-edit (uno dei file nascosti nella home dell'utente).
Il file contiene varie sezioni, ognuna delle quali può dichiarare delle impostazioni particolari. La più generica è la general, che contiene la configurazione di default, vale a dire le impostazioni che verranno utilizzate a meno che non si trovi una sezione più specifica.
Una sezione può specificare certe impostazioni in base al tipo di file che si sta trattando. Un esempio tipico in ambiente GNU/Linux è il seguente:
[general ] use_locks = 1 cleanup_files = 1 editor = emacs always_borrow_locks = 0 save_interval = 1 [content-type:image/gif] extension = .gif editor = gimp [content-type:application/vnd.ms-excel] extension = .xls editor = gnumeric
che sostanzialmente imposta 'emacs' come editor di default, tranne che per le immagini gif dove si preferisce 'gimp' e per i fogli Excel che verranno manipolati utilizzando 'gnumeric'.
In Windows invece si avrebbe:
[general ] use_locks = 1 cleanup_files = 1 editor = wordpad always_borrow_locks = 0 save_interval = 1 [content-type:application/vnd.ms-excel] extension = .xls editor = start /w
dimodoché l'editor standard sarà 'wordpad', mentre per i fogli di Excel utilizzerà 'start' che interrogando le preferenze personali lancerà l'applicazione preferita per gestire quel tipo di file.
Esempio di configurazione
Nel mio C:ProgrammiZopeExternalEditor!ZopeEdit.ini ho impostato nella sezione general:
editor = \\artix\Programmi\SciTE.exe
e, in fondo al file dopo le altre opzioni, ho aggiunto:
[content-type:application/vnd.ms-excel] extension=.xls editor=start /wait [content-type:application/msword] estension=.doc editor=start /wait
Esempio completo
Esempio con programmi Microsoft:
# Zope External Editor helper application configuration [general] # General configuration options # Uncomment and specify an editor value to override the editor # specified by the operating system editor = \\Artista\utility\SciTE.exe # Automatic save interval, in seconds. Set to zero for # no auto save (save to Zope only on exit). save_interval = 1 # Temporary file cleanup. Set to false for debugging or # to waste disk space. Note: setting this to false is a # security risk to the zope server cleanup_files = 1 # Use WebDAV locking to prevent concurrent editing by # different users. Disable for single user use or for # better performance use_locks = 1 # To suppress warnings about borrowing locks on objects # locked by you before you began editing you can # set this flag. This is useful for applications that # use server-side locking, like CMFStaging always_borrow_locks = 0 # Specific settings by content-type or meta-type. Specific # settings override general options above. Content-type settings # override meta-type settings for the same option. [meta-type:DTML Document] extension=.dtml [meta-type:DTML Method] extension=.dtml [meta-type:Script (Python)] extension=.py [meta-type:Page Template] extension=.pt [meta-type:Z SQL Method] extension=.sql [content-type:text/*] extension=.txt [content-type:text/html] extension=.html [content-type:text/xml] extension=.xml [content-type:image/gif] extension=.gif [content-type:image/jpeg] extension=.jpg [content-type:image/png] extension=.png [content-type:application/msexcell] extension=.xls editor=excel [content-type:application/vnd.ms-excel] extension=.xls editor=excel [content-type:application/x-msexcel] extension=.xls editor=excel [content-type:application/msword] extension=.doc editor=winword
come si vede nelle ultime sezioni a ciascun tipo di estensione si può associare il comando di avvio dell'editor preferito.
Esempio aggiornato a Openoffice 2:
# Zope External Editor helper application configuration [general] # General configuration options # Uncomment and specify an editor value to override the editor # specified in the environment editor = emacs # editor = gedit # Automatic save interval, in seconds. Set to zero for # no auto save (save to Zope only on exit). save_interval = 1 # Temporary file cleanup. Set to false for debugging or # to waste disk space. Note: setting this to false is a # security risk to the zope server cleanup_files = 1 # Use WebDAV locking to prevent concurrent editing by # different users. Disable for single user use or for # better performance use_locks = 1 # To suppress warnings about borrowing locks on objects # locked by you before you began editing you can # set this flag. This is useful for applications that # use server-side locking, like CMFStaging always_borrow_locks = 0 # Specific settings by content-type or meta-type. Specific # settings override general options above. Content-type settings # override meta-type settings for the same option. [meta-type:DTML Document] extension=.dtml [meta-type:DTML Method] extension=.dtml [meta-type:Script (Python)] extension=.py [meta-type:Page Template] extension=.pt [meta-type:Z SQL Method] extension=.sql [content-type:text/plain] extension=.txt [content-type:text/html] extension=.html [content-type:text/xml] extension=.xml [content-type:text/css] extension=.css [content-type:text/javascript] extension=.js [content-type:image/*] editor=gimp [content-type:image/gif] extension=.gif [content-type:image/jpeg] extension=.jpg [content-type:image/png] extension=.png [content-type:application/vnd.ms-excel] extension=.xls editor=oocalc2 [content-type:application/msword] extension=.doc editor=oowriter2 [content-type:application/vnd.oasis.opendocument.spreadsheet] extension=.ods editor=ooffice2 [content-type:application/vnd.oasis.opendocument.text] extension=.odt editor=ooffice2 [content-type:application/vnd.sun.xml.writer] extension=.sxw editor=oowriter2