Você está na página 1de 116

Treinamento presencial

ZOPE
Objetos e mtodos internos do Zope

Objetos e mtodos internos do Zope

Introduo
Este treinamento destinado aos

desenvolvedores e administradores das solues desenvolvidas para o Portal de Internet e Intranet do STM .
Carga horria 40h/aula

ZOPE/PLONE

Captulo 01
ZMI Arquitetura inicial do ZOPE rea de trabalho Usurios Importando e exportando objetos

ZOPE

Servidor de Aplicaes WEB


Interpreta ZOPE (ZPT) e DTML Gera sada HTML Escrito em Python

Objetos e mtodos internos do Zope

Zope
Zope um ambiente para a construo e

gerenciamento de aplicaes Web com foco no seu contedo. Ele interpreta os fragmentos de cdigos Zope e DTML em seus templates e gera uma sada HTML compreensvel para qualquer navegador Web. Ou seja, as pginas de um servidor Zope so 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 Usurios em Zope Criando Usurios

Adicionando um novo usurio Mudando Logins Administrando e Monitorando o Zope Importando e Exportando Objetos

Instalao

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

Preferncias Logout Links Rpidos

Frame direito

Contedos(main)
rvore de contedos, simplificada

Frame esquerdo

Usurios em Zope

Usurios
Emergency User Manager Others

Usurios

Criando usurios

Entendendo Usurios em Zope

O Zope um sistema multiusurio

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.

Reviso

Neste captulo voc viu...


Introduo Arquitetura Instalao: buildout Acessando

a ZMI Conhecendo o Zope

Laboratrio

Laboratrio 01
Execute o pack da base main. Selecione qualquer objeto e faa o export

deste contedo.

ZOPE/PLONE

Captulo 02
Gerenciando os contedos no ZOPE

Adicionar Editar Renomear Desfazer

ZOPE

Tcnicas de criao e gerenciamento de contedos


Criando Objetos Movendo Objetos Renomeando um Objeto Desfazendo Erros

Tcnicas de criao e gerenciamento de contedos

Criando Objetos

Tcnicas de criao e gerenciamento de contedos

Outras operaes
Copiar Renomear

UNDO

Desfazendo um erro

Reviso

Neste captulo voc viu...


Gerenciando os contedos no ZOPE

Adicionar Editar Renomear Desfazer

Laboratrio

Laboratrio 02

Criar uma estrutura hierrquica de pastas simulando uma loja de informtica:

loja-de-informtica

Desktop

Imacs Linux Windows


Macbooks Intel AMD DDR2 DDR3

Notebooks

Memrias

ZOPE/PLONE

Captulo 03
Autenticao e autorizao Usurios Papis Permisses

Segurana

Segurana atravs de permisses e perfis


Introduo Entrando e saindo da ZMI Autenticao e Autorizao Gerenciando Usurios Gerenciando Papis Gerenciando Permisses

Polticas de segurana

Entrando e saindo da ZMI


A entrada feita via URL de gerenciamento Para sair:

Log off, ou Fechar o navegador e limpar os cookies

Autenticao e Autorizao
Autenticar identificar quem est acessando o

sistema
Autorizao verificar quais acessos o usurio

previamente identificado tem

Usurio administrador

Definindo a localizao do Usurio


Existem vrias User Folders O usurio est sujeito ao contexto da sua Folder Exemplo:

Severino Silva em intranet/documentos/acl_users No loga em intranet/documentos

Contas Especiais do Usurio


Anonymous User Emergency User Initial Manager

Criando Um usurio de Emergncia


usage: adduser <name> <password> ./plone adduser JoaoSilva Pa$$w0rd Created user: JoaoSilva

Autorizao e Gerenciamento de Segurana


As polticas de segurana do Zope controla a

autorizao
Definem quem pode fazer o que

Gerenciando Papis
Manager Anonymous Owner

Authenticated

Permisses

Permisses

Polticas de segurana
Aba Security Funo X Permisso Padres de uso de Segurana

Regras de Manuseio de Segurana


Defina usurios no seu nvel mais alto de

controle, mas no no mais alto de todos.


Agrupe objetos que deveriam ser gerenciados

pelas mesmas pessoas juntas nos folders.


Mantenha isso simples.

Polticas Global e Local


Global x Local Delegando controle para Gerenciadores Locais Diferentes nveis de Acesso

com Funes

Controle de acesso a Locais com Funes

Executando Controle de Segurana


<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

Papis do Contedo Executvel


DTML Methods e Documents SQL Methods Scripts

Python Perl

Funo de Solicitao

Reviso

Neste captulo voc viu...


Autenticao e autorizao Usurios Papis Permisses

Laboratrio

Laboratrio 03
Criar um novo papel, chamado estagiario com

a permisso para somente acessar a ZMI - View management screens

ZOPE/PLONE

Captulo 04
Definies de:

ZPT TALES TAL METAL

Zope Page Templates

Introduo

Zope Page Templates uma ferramenta de gerao HTML/XML. Este apndice uma referncia dos padres Zope Page Templates: Tag Attribute Language (TAL), TAL Expression Sintaxe (TALES) e Macro Expansion TAL (METAL). Vantagens:

Reaproveitamento de cdigo(tags <>) HTML; Real separao entre contedo, lgica e apresentao; e Facilidade/agilidade no uso de templates. Poder gerar mais cdigo HTML do que o necessrio; Poder existir lgica no template (no recomendado).

Desvantagens:

ZOPE

ZPT - Zope Page Templates, a camada de apresentao


Introduo Expresses TALES TAL

METAL

Zope Page Templates

TALES
path: (padro) python: string: Definir classes CSS, Javascript e registros KSS; Inserir queries de catalogo dentro do

template;

Chamadas de scripts Python e ZSQL

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.

Reviso

Neste captulo voc viu...


Definies de:

ZPT TALES TAL METAL

Laboratrio

Laboratrio 04
Com base no laboratrio 02, criar uma pgina

contendo:

Header: Um ttulo <H1> com o ttulo do contexto rea de contedos: Listagem das subpastas, do primeiro nvel, por ordem alfabtica Footer:

ZOPE/PLONE

Captulo 05
Formulrios utilizando Controller Page

Templates

ZOPE

Validao e processamento de formulrios


Os formulrios no Zope utilizam as mesmas

funcionalidades do Zope Page Tempates, com uma diferena, o desenvolvedor poder ter maior facilidade de controle, atribuindo validaes e aes aos formulrios

CPT

Validao e processamento de formulrios


Controller Page Template - .cpt Controller Python Script

- .cpy Controller Validator Python Script - .vpy

Reviso

Neste captulo voc viu...


Formulrios utilizando Controller Page

Templates

Laboratrio

Laboratrio 05
Criar um formulrio com os campos:

Nome Telefone E-mail

Validar todos os campos,

caso o valor no seja

preenchido

ZOPE/PLONE

Captulo 06
Como se conectar e fazer buscas

a um banco de

dados relacional

Integrao BD relacional

Integrao com bancos de dados relacionais


Este captulo descreve como o Zope se conecta a

banco de dados relacionais externos.


Conexes de Banco de Dados
Mtodos Z SQL

Usando Conexes com Banco de Dados


Oracle Sybase ODBC Postgre MySQL Interbase

Gadfly

Usando Mtodos Z-SQL

Usando Mtodos Z-SQL

Pesquisas Dinmicas com SQL


Argumentos TAG SQLVar Name Type Optional

Reviso

Neste captulo voc viu...


Como se conectar e fazer buscas

a um banco de

dados relacional

Laboratrio

Laboratrio 06
Criar uma tabela sala_de_noticias ,

com os

campos: id, titulo, texto Criar uma nova conexo com o id conexao_noticias Adicionar os dados solicitados para os campos da tabela sala_de_noticias

ZOPE/PLONE

Captulo 07
Configurando Catlogos Definindo ndices Utilizando o portal_catalog

Catalogao e indexao

Mecanismo de busca interno: catalogao e indexao


Este captulo mostra a voc como indexar e

buscar objetos com o mecanismo de busca construdo no Zope, O [portal_catalog (Catlogo) e introduz conceitos de indexao discutindo diferentes modelos para indexao e busca

Configurando Catlogos
Definindo ndices

TextIndex FieldIndex KeywordIndex PathIndex

Definindo Metadados
Zcatalog pode armazenar informaes sobre o

objeto

Tabular database Meta Data Table

Busca em Catlogos
Formulrios Python

Buscando e Indexando informaes


ndices de Texto Vocabulrios ndices de:

Campo Palavra Chave Caminho

Reviso

Neste captulo voc viu...


Configurando Catlogos Definindo ndices Utilizando o portal_catalog

Laboratrio

Laboratrio 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 notcia

ZOPE/PLONE

Captulo 08
Executando programas Tipagem dinmica Compilao e interpretao Ferramentas Sintaxe Tipos

Python

Python bsico: a camada lgica


Python uma linguagem de altssimo nvel

orientada a objeto, de tipagem dinmica e forte, interpretada e interativa.

Executando Programas
$ python arquivo.py

Tipagem Dinmica
Varivel inferida pelo interpretador durante

execuo

Duck Typing

Compilao e interpretao
Bytecode .pyc bytecode

normal

.pyo bytecode otimizado

Podem ser empacotados

junto com o interpretador em um executvel

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 grfica: 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
\ Comentrios

# (qualquer comentrio ignorado pelo python) Exceto os Funcionais:


Encoding (caracteres no suportados em ingls) Interpretador

Blocos
: http://www.python.org/dev/peps/pep-0008/

Objetos
print objeto.atributo objeto.metodo(argumentos) objeto.metodo()

Sintaxes
Condicionais

if...elif...else for
Esttico Iteradores

Repetio

while

Tipos
Nmeros e texo Lista, tupla e dicionrio Verdadeiro/falso
Mutveis Imutveis

Funes
Blocos de cdigo que podem

receber parmetros pr-determinados

Excees
Quando ocorre uma falha no programa (como

uma diviso por zero, por exemplo) em tempo de execuo, uma exceo gerada. Se a exceo no for tratada, ela ser propagada atravs das chamadas de funo at o mdulo principal do programa, interrompendo a execuo. try... except... Raise

Classes
Old style New style Inicializar = __init__ () Herana simples

Herana mltipla

Reviso

Neste captulo voc viu...


Executando programas Tipagem dinmica Compilao e interpretao Ferramentas Sintaxe Tipos

Laboratrio

Laboratrio 08
Criar um python script para listar os arquivos

do contexto, contendo link para download.

ZOPE/PLONE

Captulo 09
Aumentando a Performance com o

Cacheamento

ZOPE

Cacheamento de componentes
Aumentando a Performance com o

Cacheamento

Uma cache um lugar temporrio para armazenar informaes que voc freqentemente acessa. A razo para usar uma cache a velocidade

Aumentando a performance com o cacheamento


Tempo de vida do cache Informao pessoal Adicionando um gerenciador de cache Acelerador de Gerenciado de cache RAM Cacheando um documento

HTTP

Reviso

Neste captulo voc viu...


Aumentando a Performance com o

Cacheamento

ZOPE/PLONE

Captulo 10
Conhecendo o DTML

Sintaxe Variveis Atributos Condies

ZOPE

Contedo dinmico com DTML


Linguagem de script baseada em tags do Zope Para que o DHTML bom? Quando no 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 variveis com DTML

Adquirindo contedo dinamicamente


O Zope procura as variveis da DTML no

repositrio do objeto corrente se ele no encontra a varivel primeiro no objeto corrente. <dtml-var standard_html_header> <p>Welcome</p> <dtml-var standard_html_footer>

Contedo dinmico

Contedo dinmico

Expresses Python
dtml-var expr="getHippo(with a large net) CUIDADO: <dtml-var objectValues> diferente de: <dtml-var expr="objectValues">

Expresses Python
VAR Atributos da If... Else... Elif ObjectValues IN Interao com lista de arquivos

Tag Var

Variveis especiais da Tag IN

Reviso

Neste captulo voc viu...


Conhecendo o DTML

Sintaxe Variveis Atributos Condies

Laboratrio

Laboratrio 09
Criar uma pagina utilizando o DTML

Document simulando a pagina de um blog, com:

Header rea de contedos:


Post: ttulo,

descrio e link

Footer

ZOPE/PLONE

Captulo 11
Conceitos CMF e ZOPE

ZOPE

CMF - Content Management Framework


Framework que oferece facilidades para

desenvolver um sistema de gerenciamento de contedo personalizado

CMF e o Zope
MembershipServices, incluindo personalizao CatalogingServices WorkflowServices BasicContentServices SiteDesignServices IntegrationServices

CMF e o Zope
DiscussionServices ArchivingServices SyndicationServices RatingServices TestingServices

Reviso

Neste captulo voc viu...


Conceitos CMF e o Zope

ZOPE