Treinamento presencial
ZOPE
Objetos e métodos internos do
Zope
Objetos e métodos internos do Zope
Introdução
 Este treinamento é destinado aos
desenvolvedores e administradores das
soluções desenvolvidas para o Portal de
Internet e Intranet do STM .
 Carga horária 40h/aula
ZOPE/PLONE
Capítulo 01
 ZMI
 Arquitetura inicial do ZOPE
 Área de trabalho
 Usuários
 Importando e exportando objetos
ZOPE
Servidor de
Aplicações WEB
Interpreta ZOPE (ZPT) e DTML
Gera saída HTML
Escrito em Python
Objetos e métodos internos do Zope
Zope
 Zope é um ambiente para a construção e
gerenciamento de aplicações Web com foco no
seu conteúdo. Ele interpreta os fragmentos de
códigos Zope e DTML em seus templates e gera
uma saída HTML compreensível para qualquer
navegador Web. Ou seja, as páginas de um
servidor Zope são geradas dinamicamente, no
momento em que o servidor recebe o pedido do
browser, mesclando esses dois componentes.
ZOPE
ZMI - a interface de gerenciamento
via Web








Arquitetura inicial do Zope
Acessando a ZMI
Iniciando o Zope
Entrando no Zope
Controlando o Zope com a
Interface de Gerenciamento
Usando a Área de Trabalho
Entendendo Usuários em
Zope
Criando Usuários




Adicionando um novo
usuário
Mudando Logins
Administrando e
Monitorando o Zope
Importando e Exportando
Objetos
Instalação
Arquitetura
Arquitetura
Acessando a ZMI
Dependendo da sua plataforma, você pode executar o Zope com
diferentes comandos .
Unix:
$ bin/instance start
Entrando no Zope
Para entrar no Zope você precisa de um navegador. A interface do Zope
é escrita inteiramente em HTML, sendo assim o Zope funciona com
qualquer navegador.
Acesse:
http://localhost:8080/manage
Controlando o Zope com a Interface
de Gerenciamento
Controlando o Zope com a Interface
de Gerenciamento
Usando a Área de Trabalho
 Frame topo



Preferências
Logout
Links Rápidos
 Frame direito

Conteúdos(main)
 Frame esquerdo

Árvore de conteúdos, simplificada
Usuários em Zope
Usuários
 Emergency User
 Manager
 Others
Usuários
Criando usuários
Entendendo Usuários em Zope
 O Zope é um sistema multiusuário
Administrando e Monitorando o Zope
 Control Panel (Painel de Controle)
Importando e Exportando Objetos
 Você pode mover objetos de um sistema do
Zope para outro usando export e import.
Revisão
Neste capítulo você viu...
 Introdução
 Arquitetura
 Instalação: buildout
 Acessando
a ZMI
 Conhecendo o Zope
Laboratório
Laboratório 01
 Execute o pack da base ‘main’.
 Selecione qualquer objeto e faça o “export”
deste conteúdo.
ZOPE/PLONE
Capítulo 02
 Gerenciando os conteúdos no ZOPE




Adicionar
Editar
Renomear
Desfazer
ZOPE
Técnicas de criação e gerenciamento
de conteúdos
 Criando Objetos
 Movendo Objetos
 Renomeando um Objeto
 Desfazendo Erros
Técnicas de criação e gerenciamento
de conteúdos
Criando Objetos
Técnicas de criação e gerenciamento
de conteúdos
Outras operações
 Copiar
 Renomear
UNDO
Desfazendo um erro
Revisão
Neste capítulo você viu...
 Gerenciando os conteúdos no ZOPE




Adicionar
Editar
Renomear
Desfazer
Laboratório
Laboratório 02

Criar uma estrutura hierárquica de pastas simulando uma loja de
informática:

loja-de-informática

Desktop




Notebooks




Imacs
Linux
Windows
Macbooks
Intel
AMD
Memórias


DDR2
DDR3
ZOPE/PLONE
Capítulo 03
 Autenticação e autorização
 Usuários
 Papéis
 Permissões
Segurança
Segurança através de permissões e
perfis
 Introdução
 Entrando e saindo da ZMI
 Autenticação e Autorização
 Gerenciando Usuários
 Gerenciando Papéis
 Gerenciando Permissões
 Políticas de segurança
Entrando e saindo da ZMI
 A entrada é feita via URL de gerenciamento
 Para sair:


Log off, ou
Fechar o navegador e limpar os cookies
Autenticação e Autorização
 Autenticar é identificar quem está acessando o
sistema
 Autorização é verificar quais acessos
previamente identificado tem
o usuário
Usuário administrador
Definindo a localização do Usuário
 Existem várias User Folders
 O usuário está sujeito ao contexto da sua Folder
 Exemplo:
Severino Silva em intranet/documentos/acl_users
Não loga em
intranet/documentos

Contas Especiais do Usuário
 Anonymous User
 Emergency User
 Initial Manager
Criando Um usuário de Emergência
usage: adduser <name> <password>
./plone adduser JoaoSilva Pa$$w0rd
Created user: JoaoSilva
Autorização e Gerenciamento de
Segurança
 As políticas de segurança do Zope controla a
autorização
 Definem quem pode fazer o que
Gerenciando Papéis
 Manager
 Anonymous
 Owner
 Authenticated
Permissões
Permissões
Políticas de segurança
 Aba Security
 Função X Permissão
 Padrões de uso de Segurança
Regras de Manuseio de Segurança
 Defina usuários no seu nível mais alto de
controle, mas não no mais alto de todos.
 Agrupe objetos que deveriam ser gerenciados
pelas mesmas pessoas juntas nos folders.
 Mantenha isso simples.
Políticas Global e Local
 Global x Local
 Delegando controle para Gerenciadores Locais
 Diferentes níveis de Acesso
com Funções
 Controle de acesso a Locais com Funções
Executando Controle de Segurança
<dtml-if expr="_.SecurityCheckPermission(Add
Documents, Images, and Files, this())">
<form action="upload">
...
</form>
</dtml-if>
<dtml-var
expr="_.SecurityGetUser().getUserName()">
Ataque Cavalo de Troia
Gerenciamento do Owner
Papéis do Conteúdo Executável
 DTML Methods e Documents
 SQL Methods
 Scripts


Python
Perl
 Função de Solicitação
Revisão
Neste capítulo você viu...
 Autenticação e autorização
 Usuários
 Papéis
 Permissões
Laboratório
Laboratório 03
 Criar um novo papel, chamado “estagiario” com
a permissão para somente acessar a ZMI - “View
management screens”
ZOPE/PLONE
Capítulo 04
 Definições de:




ZPT
TALES
TAL
METAL
Zope Page Templates
Introdução

Zope Page Templates é uma ferramenta de geração
HTML/XML. Este apêndice é uma referência dos padrões
Zope Page Templates: Tag Attribute Language (TAL), TAL
Expression Sintaxe (TALES) e Macro Expansion TAL
(METAL).

Vantagens:




Reaproveitamento de código(tags <>) HTML;
Real separação entre conteúdo, lógica e apresentação; e
Facilidade/agilidade no uso de templates.
Desvantagens:


Poderá gerar mais código HTML do que o necessário;
Poderá existir lógica no template (não recomendado).
ZOPE
ZPT - Zope Page Templates, a
camada de apresentação
 Introdução
 Expressões TALES
 TAL
 METAL
Zope Page Templates
TALES
 path: (padrão)
 python:
 string:
 Definir classes CSS, Javascript e registros KSS;
 Inserir queries de catalogo dentro do
 Chamadas de scripts Python e ZSQL
template;
Zope Page Templates
TAL
 tal:content
 tal:replace
 tal:repeat
 tal:attributes
 tal:define
 tal:condition
 tal:omit-tag
Zope Page Templates
METAL
 metal:define-macro;
 metal:define-slot;
 metal:use-macro;
 metal:fill-slot.
e
Revisão
Neste capítulo você viu...
 Definições de:




ZPT
TALES
TAL
METAL
Laboratório
Laboratório 04
 Com base no laboratório 02, criar uma página
contendo:



Header: Um título <H1> com o título do contexto
Área de conteúdos: Listagem das subpastas, do
primeiro nível, por ordem alfabética
Footer:
ZOPE/PLONE
Capítulo 05
 Formulários utilizando Controller Page
Templates
ZOPE
Validação e processamento de
formulários
 Os formulários no Zope utilizam as mesmas
funcionalidades do Zope Page Tempates, com
uma diferença, o desenvolvedor poderá ter
maior facilidade de controle, atribuindo
validações e ações aos formulários
CPT
Validação e processamento de
formulários
 Controller Page Template - .cpt
 Controller Python Script
- .cpy
 Controller Validator Python Script - .vpy
Revisão
Neste capítulo você viu...
 Formulários utilizando Controller Page
Templates
Laboratório
Laboratório 05
 Criar um formulário com os campos:



Nome
Telefone
E-mail
 Validar todos os campos,
preenchido
caso o valor não seja
ZOPE/PLONE
Capítulo 06
 Como se conectar e fazer buscas
dados relacional
a um banco de
Integração BD relacional
Integração com bancos de dados
relacionais
 Este capítulo descreve como o Zope se conecta a
banco de dados relacionais externos.
 Conexões de Banco de Dados
 Métodos Z SQL
Usando Conexões com Banco de
Dados
 Oracle
 Sybase
 ODBC
 Postgre
 MySQL
 Interbase
 Gadfly
Usando Métodos Z-SQL
Usando Métodos Z-SQL
Pesquisas Dinâmicas com SQL
 Argumentos TAG SQLVar
 Name
 Type
 Optional
Revisão
Neste capítulo você viu...
 Como se conectar e fazer buscas
dados relacional
a um banco de
Laboratório
Laboratório 06
 Criar uma tabela “sala_de_noticias” ,
com os
campos: id, titulo, texto
 Criar uma nova conexão com o id
“conexao_noticias”
 Adicionar os dados solicitados para os campos
da tabela “sala_de_noticias”
ZOPE/PLONE
Capítulo 07
 Configurando Catálogos
 Definindo Índices
 Utilizando o portal_catalog
Catalogação e indexação
Mecanismo de busca interno:
catalogação e indexação
 Este capítulo mostra a você como indexar e
buscar objetos com o mecanismo de busca
construído no Zope, O [portal_catalog
(Catálogo) e introduz conceitos de indexação
discutindo diferentes modelos para indexação e
busca
Configurando Catálogos
 Definindo Índices




TextIndex
FieldIndex
KeywordIndex
PathIndex
Definindo Metadados
 Zcatalog pode armazenar informações sobre o
objeto

Tabular database – Meta Data Table
Busca em Catálogos
 Formulários
 Python
Buscando e Indexando informações
 Índices de Texto
 Vocabulários
 Índices de:



Campo
Palavra Chave
Caminho
Revisão
Neste capítulo você viu...
 Configurando Catálogos
 Definindo Índices
 Utilizando o portal_catalog
Laboratório
Laboratório 07
 Criar um novo índice com o id “getTexto”, com
referencia ao índice “getText”.
 Criar um ZPT para listar o getTexto no contexto
de uma notícia
ZOPE/PLONE
Capítulo 08
 Executando programas
 Tipagem dinâmica
 Compilação e interpretação
 Ferramentas
 Sintaxe
 Tipos
Python
Python básico: a camada lógica
 Python é uma linguagem de altíssimo nível
orientada a objeto, de tipagem dinâmica e forte,
interpretada e interativa.
Executando Programas
$ python arquivo.py
Tipagem Dinâmica
 Variável inferida pelo interpretador durante
execução

Duck Typing
Compilação e interpretação
 Bytecode
 .pyc – bytecode
normal
 .pyo – bytecode otimizado
 Podem ser empacotados
junto com o
interpretador em um executável
Modo Interativo
python ↲(enter)
Python 2.6.4 (r264:75706, Nov 3 2009,
13:20:47)_[GCC 4.4.1] on linux2_Type "help",
"copyright", "credits" or "license" for more
information.
Ferramentas
 GEDIT
 KOMODO
 Eclipse
Frameworks
 Web: Django, TurboGears, Zope e web2py.
 Interface gráfica: wxPython, PyGTK e PyQt.
 Processamento cientifico: NumPy e SciPy.
 Processamento de imagens: PIL.
 2D: Matplotlib e SVGFig.
 3D: Visual Python, PyOpenGL e Python Ogre.
 Mapeamento objeto-relacional: SQLAlchemy e
SQLObject.
Sintaxe
\
 Comentários


# (qualquer comentário – é ignorado pelo
python)
Exceto os Funcionais:
 Encoding (caracteres não suportados em inglês)
 Interpretador
Blocos
:
 http://www.python.org/dev/peps/pep-0008/
Objetos
 print objeto.atributo
 objeto.metodo(argumentos)
 objeto.metodo()
Sintaxes
 Condicionais

if...elif...else
 Repetição

for
 Estático
 Iteradores

while
Tipos
Números e texo
 Lista, tupla e dicionário
 Verdadeiro/falso

 Mutáveis
 Imutáveis
Funções
 Blocos de código que podem
receber
parâmetros pré-determinados
Exceções
 Quando ocorre uma falha no programa (como
uma divisão por zero, por exemplo) em tempo
de execução, uma exceção é gerada. Se a
exceção não for tratada, ela será propagada
através das chamadas de função até o módulo
principal do programa, interrompendo a
execução.
 try... except... Raise
Classes
 Old style
 New style
 Inicializar = __init__ ()
 Herança simples
 Herança múltipla
Revisão
Neste capítulo você viu...
 Executando programas
 Tipagem dinâmica
 Compilação e interpretação
 Ferramentas
 Sintaxe
 Tipos
Laboratório
Laboratório 08
 Criar um python script para listar os arquivos
do contexto, contendo link para download.
ZOPE/PLONE
Capítulo 09
 Aumentando a Performance com o
Cacheamento
ZOPE
Cacheamento de componentes
 Aumentando a Performance com o
Cacheamento
Uma cache é um lugar temporário para
armazenar informações que você
freqüentemente acessa. A razão para usar uma
cache é a velocidade
Aumentando a performance com o
cacheamento
 Tempo de vida do cache
 Informação pessoal
 Adicionando um gerenciador de cache
 Acelerador de Gerenciado de cache
 RAM
 Cacheando um documento
HTTP
Revisão
Neste capítulo você viu...
 Aumentando a Performance com o
Cacheamento
ZOPE/PLONE
Capítulo 10
 Conhecendo o DTML




Sintaxe
Variáveis
Atributos
Condições
ZOPE
Conteúdo dinâmico com DTML
 Linguagem de script baseada em tags do Zope
 Para que o DHTML é bom?
 Quando não usar DHTML
Sintaxe da Tag DTML
<dtml-var standard_html_header>
<h1>Hello World!</h1>
<dtml-var standard_html_footer>
Atributos com DTML
 <dtml-var wingspan missing="unknown
wingspan">
 <dtml-var exclamation upper>
 Inserindo variáveis com DTML
Adquirindo conteúdo
dinamicamente
 O Zope procura as variáveis da DTML no
repositório do objeto corrente se ele não
encontra a variável primeiro no objeto corrente.
<dtml-var standard_html_header>
<p>Welcome</p>
<dtml-var standard_html_footer>
Conteúdo dinâmico
Conteúdo dinâmico
Expressões Python
dtml-var expr="getHippo(with a large net)“
CUIDADO:
<dtml-var objectValues>
É diferente de:
<dtml-var expr="objectValues">
Expressões Python
 VAR
 Atributos da
Tag Var
 If... Else... Elif
 ObjectValues
 IN
 Interação com lista de arquivos
 Variáveis especiais da Tag IN
Revisão
Neste capítulo você viu...
 Conhecendo o DTML




Sintaxe
Variáveis
Atributos
Condições
Laboratório
Laboratório 09
 Criar uma pagina utilizando o DTML
Document
simulando a pagina de um blog, com:


Header
Área de conteúdos:
 Post: título,

Footer
descrição e link
ZOPE/PLONE
Capítulo 11
 Conceitos
 CMF e ZOPE
ZOPE
CMF - Content Management
Framework
 Framework que oferece facilidades para
desenvolver um sistema de gerenciamento de
conteúdo personalizado
CMF e o Zope
 MembershipServices, incluindo personalização
 CatalogingServices
 WorkflowServices
 BasicContentServices
 SiteDesignServices
 IntegrationServices
CMF e o Zope
 DiscussionServices
 ArchivingServices
 SyndicationServices
 RatingServices
 TestingServices
Revisão
Neste capítulo você viu...
 Conceitos
 CMF e o Zope
ZOPE
Download

Objetos e Metodos internos do ZOPE