Criando sites com o Zope
Aqui resumo o que achei de mais importante nessa fantástica plataforma para criação de sites dinâmicos, mais alguns links para quem quiser iniciar no mundo do Zope.
O que é Zope?
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:
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">.
O Zope foi muito falado em 2001/2002 mas parece que foi para o esquecimento, eu mesmo tentei criar algo mas barrei no preço de um servidor que suportasse Zope, ter de aprender DTML (por que não XML direto?) e as vezes ainda ter que desenvolver em Python (que é fantástica). Achei que não valia a pena estudar tanta coisa nova e ficar falando sozinho. Atualmente também temos diversos CMS muito bons em PHP, Java e gratuitos e com a vantagem de mais desenvolvedores. O que você acha?