Zope é um acrônimo para "Z Object Publishing Environment" (Ambiente Z
para Publicação de Objetos), foi desenvolvido pela Digital Creations
Inc., que hoje é Zope Corporation devido à marca Zope ter superado a
marca Digital Creations.
Zope é um ambiente para a construção e gerenciamento de aplicações Web
com foco no seu conteúdo, ou seja, é um gerador de páginas Web dinâmico,
que interpreta os fragmentos de códigos Zope e HTML em seus templates e
gera uma saída HTML compreensível para qualquer navegador Web. Isso
significa dizer que não existem páginas "estáticas" no Zope, todas as
páginas em um servidor Zope são geradas dinamicamente (no momento em que
o servidor recebe o pedido do browser).
O Zope tem aproximadamente 85% do seu código escrito em Python, onde a
aplicação necessitava maior performance o código foi convertido para C++.
É registrado com a licença ZPL (Zope Public License), que é uma licença
Open Source compatível com a GPL, sendo possível estudar e alterar seu
código fonte que está disponível para diversas plataformas como Unix,
Linux, Windows, etc.
Como funciona?
O Zope usa uma linguagem chamada DTML. Se preferir, você pode simplesmente
criar seus documentos em HTML, usando o Zope apenas pela interface de
administração via web, mas isso seria um desperdício. O domínio da DTML
(mesmo que apenas os recursos mais básicos) pode tornar seu trabalho de
criação, integração, manutenção e atualização de site muito mais fácil e
poderoso.
O que é DTML?
DTML significa Document Template Markup Language - ou, Linguagem de Marcação
para Modelos de Documento.
A primeira coisa importante que percebemos pelo nome é que a DTML não é
usada para criar documentos; quando você usa DTML, o documento propriamente
dito é criado pelo Zope, no momento da requisição do browser. O código DTML
cria um modelo de documento, que será transformado em um documento usando
dados que podem variar independentemente do modelo.
Como funciona ?
A DTML é uma linguagem pseudo-XML. Ou seja, seu formato é similar ao HTML,
com tags marcadas com sinais de menor e maior (<tag>).
Mas isso não causa confusão com o código HTML? Não, pelo contrário. A DTML
foi projetada assim justamente para se integrar ao HTML. Para isso, ela tem
uma propriedade fora do padrão XML: todos os tags não reconhecidos são
deixados no texto final.
Todos os tags DTML têm nomes começando com dtml; por exemplo,
<dtml-var name=title> (insere no texto o valor da propriedade
"title").
A imensa maioria dos tags DTML têm dois atributos padrão: name e expr. O
atributo name, como vimos no exemplo, é usado para se referir a um objeto
ou propriedade. O atributo expr é similar; é usado para calcular uma
expressão mais complexa (em Python - a linguagem de programação usada no
Zope).
Como esses dois atributos são tão comuns, e normalmente mutuamente
exclusivos (ou seja, você vai usar um deles ou o outro), existe um "atalho"
para eles:
- <dtml-xxx abc> é equivalente a <dtml-xxx name=abc>;
- <dtml-xxx "abc"> (com aspas) é equivalente a <dtml-xxx expr="abc">.