Linuxtrent: Re: zope question

  • From: aZaZel <azazel@xxxxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxxxxxx
  • Date: Fri, 16 Feb 2001 21:59:43 +0100

On Fri, 16 Feb 2001 18:12:20 +0100
francesco <francesco@xxxxxx> wrote:

> 
> Si, ma il mio sito non esiste. Io ho un template scritto in html, con
> dei "buchi" che vanno riempiti in modo diverso nelle varie pagine. Però
> non sono io a scrivere il contenuto di queste pagine ma alcuni utenti
> abilitati, loro mandano un file txt con il contenuto aggiornato, un
> database si aggiorna automaticamente sostiutendo il nuovo file a quello
> vecchio e quando vado a vedere la pagina un cgi mi genera la pagina
> finale prendendo il template e riempiendo i buchi con il contenuto dei
> files appositi. In questo modo io evito di dover aggiornare il sito e
> nello stesso tempo sollevo gli utenti dalla necessità di conoscere
> l'html ed inoltre cambiando il template posso rinnovare l'intero sito
> modificando una sola pagina html.
> Al momento ho fatto tutto in perl, ma mi domandavo se avrei potuto fare
> tutto con Zope senza scrivere codice aggiuntivo. Cioè se Zope prevede
> questo tipo di necessita'.

Si, è una delle funzionalità più semplici di zope che consente di non
dover ricopiare elementi di codice HTML e programmazione python, dtml o
perl; è un concetto che viene chiamato "acquisizione" che sostanzialmente
è l'ereditarietà spostata a livello di istanze di classi e non di classi
stesse. Per spiegarla in termini più semplici, avrai visto che il modo di
disporre i documenti all'interno di zope è simile ad un "albero" di
directories costruito da elementi che si chiamano "folders" appunto; la
similitudine con le normali directories di un filesystem è appunto la loro
prima caratteristica è appunto quella di mettere un po' d'ordine in un
caos di elementi che contengono informazioni. La somiglianza però finisce
qui, difatti un filesystem (uno ordinario almeno, come ext2 e fat) è un
database di files....Zope è invece, tra le altre cose,  un ODB, cioè un
database di Oggetti. Riconosco che la differnza non risulta immediatamente
notevole, ma mi accingo a dare una "definizione" che poi spiegherò con
un'esempio..

Ecco qui la pseudo definizione:

In zope ogni elemento (leggi oggetto) acquista le proprietà e le
funzionalita (metodi) del suo contenitore.

Immagina di avere due folder, che si chiamano pippo e ciccio dove ciccio è
all'interno di pippo e che in pippo ci siano i seguenti elementi:

1. Un documento html che si chiama "banner.html"
2. Un'immagine che si chiama "gnocca.jpg"
3. Una procedura in perl che si chiama "cammello"
4. "cicco" stesso

e che in ciccio ci sia solo un template html che si chiama "esempio.dtml"
, avrai una struttura del tipo

pippo---\
        |--ciccio----------\
        |-banner.html      |-esempio.dtml
        |-gnoccha.jpg
        |-cammello.pl
         

Come ho detto nell'enunciato sopra, "esempio.dtml" si ritrova ad avere
come funzionalità e proprietà  tutte quelle dell'oggetto che lo compone,
"ciccio", che haimè contiene solo lui, ma per il fatto che ciccio è
contenuto in pippo, ciccio si ritrova ad avere banner.html, gnocca.jpg,
cammello, e pippo..... a cascata, anche esempio.html si ritrova a
possedere tutto ciò, e può fare degli include nel suo codice come 
<dtml-var banner.html> o richiamare la procedura cammello con 
<dtml-call "cammello(parametro1, parametro2)"> ...e così ogni altro
elemento a valle di "pippo" ...Figo no?

Scrivo una sola volta e utilizzo immediatamente ovunque... :-)

Ma questo è solo l'inizio....:-)


azazel  

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: