A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Python – Zope - Plone Adolfo Bruno

Apresentações semelhantes


Apresentação em tema: "Python – Zope - Plone Adolfo Bruno"— Transcrição da apresentação:

1 Python – Zope - Plone Adolfo Bruno
_____________________________________________ Adolfo Bruno GCUFAL Maceió – 16 de Agosto de 2008

2 Sequência CMS Python Zope Plone Aplicação
_____________________________________________ CMS Python Zope Plone Aplicação

3 CMS Content Management System

4 O que é um CMS? intranets, cujo objetivo é estruturar e facilitar a
_____________________________________________ É um gerenciador para websites, portais e intranets, cujo objetivo é estruturar e facilitar a criação, administração, distribuição, publicação e disponibilidade da informação.

5 Por que usar um CMS? Sites tendem a crescer desordenadamente
_____________________________________________ Sites tendem a crescer desordenadamente Dar o “poder” da edição ao usuário Reduzir o tempo de publicação Publicação on-line Padronizar interfaces de apresentação Separar conteúdo, interface e lógica Segurança Web 2.0

6 Python

7 O que é Python? Linguagem de programação de alto nível Interpretada
______________________________________________ Linguagem de programação de alto nível Interpretada Interativa Orientada a Objetos Tipagem dinâmica e forte Portável Multiparadigma

8 História do Python? ______________________________________________
Surgiu no Natal de 1989 Criada por Guido Van Rossum nos Países Baixos Sucessora da ABC Utilizada no sistema operacional Amoeba O nome é em homenagem ao grupo humorístico britânico Monty Python.

9 Indentação Não existem blocos de comandos
______________________________________________ Não existem blocos de comandos A Indentação é uma característica peculiar no Python Em linguagens como C ou PHP os blocos são delimitados por chaves, no Pascal ou Delphi pelo begin e end

10 Indentação Indentação correta Indentação Errada
______________________________________________ Indentação correta def valor(self): try: self.c = input('Valor: ') c = self.c return c except: print 'Inválido!' self.valor() Indentação Errada def valor(self): try: self.c = input('Valor: ') c = self.c return c except: print 'Inválido! ' self.valor()

11 Estruturas de Controle
______________________________________________ Condicional: if, else e elif if nome == “Pedro": idade = 21 Laço iterativo: for lista = ["pedra", "papel", "cenoura"] for item in lista: print item Laço condicional: while while i < 10: print "true"

12 Funções Funções são criadas utilizando a palavra reservada def
______________________________________________ Funções são criadas utilizando a palavra reservada def def funcao(v1, v2): v3 = v1 + v2 print "O resultado de v1 + v2 é ", v3 funcao(2, 2) Pode executar no prompt: python funcao.py

13 Classes ______________________________________________
Atributos e métodos privados sempre têm dois ‘_’ antes do seu nome. Em Python podemos utilizar herança simples e herança múltipla class ClasseOne: def __init__(self): self.atribA = 'Atributo A' self.atribB = 10 self.atrubC = None self.__privado = None def umMetodo(self, arg1): print arg1 + self.atribB umaClasse = ClasseOne() print umaClasse.atribA umaClasse.umMetodo(2)

14 Listas ______________________________________________
A utilização de listas (arrays) em Python é muito simples. lista = [] # cria lista vazia lista = ['laranja', 'banana', 'uva'] # cria lista com 3 elementos print lista[1] # imprime ‘banana’ lista.append(‘abacaxi'); # adiciona um novo elemento no final da lista lista. Insert(i, x) # adiciona um elemento x na posição i lista.remove( x) # remove o elemento x lista[:2] # retorna uma nova lista com os elementos 0 a 2 lista[1:3] # retorna uma nova lista com os elementos 1 a 3

15 Zope

16 O que é Zope? ______________________________________________
Servidor de Aplicações criado pela Digital Creations (Zope Corporation) Liberado fonte em 1998 Interface de administração via broswer Escrito em Python Zope (Z Object Publishing Environment) Servidor web, o Zserver Banco de dados orientado a objetos, o ZODB

17 Multi SGBDs ______________________________________________ O Zope suporta conexões com os bancos de dados relacionais mais utilizados no mercado PostgreSQL MySQL Firebird Oracle SQL Server ODBC

18 Plone

19 O que é Plone? ______________________________________________
Criado em 2001 por Alexander Limi e Alan Runyan É um CMS open-source que roda sob o servidor de aplicações Zope Lançado sobre a licença GNU Compatível com a maioria dos navegadores web Adere ao padrões web É extensível (através dos produtos) Fácil customização Internacionalizado para ~60 idiomas Tradução sensível ao idioma do navegador

20 Verificar se o gcc, g++ e make estão instalados
A instalação ______________________________________________ 1. Passo: Instalar Zlib 1 – tar zxvf zlib tar.gz 2 – ./configure 3 – make test 4 – make install 2. Passo: 1 – vim /etc/ld.so.conf 2 – Adicione: include /usr/local/include 3 – Execute o comando: ldconfig Verificar se o gcc, g++ e make estão instalados

21 A instalação ______________________________________________
3. Passo: Instalar o Python 1 – tar zxvf Python tgz 2 – ./configure 3 – make 4 – make install

22 A instalação ______________________________________________
4. Passo: Instalar Imaging 1 – tar zxvf Imaging tar.gz 2 - Para instalar a Imaging certifique-se que a libjpeg está instalada no sistema. Para isso execute o seguinte comando: whereis libjpeg Caso a saída seja: libjpeg: Significa que a libjpeg não está instalada. Para instalá-la execute o comando: apt-get install libjpeg-progs libjpeg62 libjpeg62-dev

23 A instalação ______________________________________________
3- Agora altere a linha JPEG_ROOT no arquivo setup.py, para isso execute dentro do diretório Imaging-1.1.6: vim setup.py Procure pela linha JPEG_ROOT = NONE e a altere para JPEG_ROOT = “/usr/lib” Salve as alterações. E siga para o próximo passo. 4 – python setup.py install

24 A instalação ______________________________________________
5. Passo: Instalar o Zope 1 – tar zxvf Zope final.tgz 2 – ./configure --prefix=/var/zope with- python=/usr/local/bin/python 3 – make 4 – make install 5 – useradd zope 6 – chown zope:root /var/zope R 7 – /var/zope-2.9.8/bin/mkzopeinstance.py 8 – Informar o seguinte diretório: /var/zope 9 – Informar usuário e senha da instância zope (não do linux!) 10 – Descomentar e editar no arquivo /var/zope/etc/zope.conf “effective-user zope” Onde zope é o usuário criado no momento da criação da instância (passo 8) 11 – chmod 755 /var/zope/log 12 – chmod 755 /var/zope/var 13 – chown zope:root /var/zope -R

25 A instalação ______________________________________________
6. Passo: Instalar o Plone 1 – tar zxvf Plone tar.gz 2 – mv ./Plone /var/zope/Products 3 – chown zope:root /var/zope -R Para iniciar o zope, execute os seguintes comandos: Iniciar: /var/zope/bin/zopectl start Reiniciar: /var/zope/bin/zopectl restart Parar: /var/zope/bin/zopectl stop

26 Criando conteúdo ______________________________________________
O Plone disponibiliza objetos para criação, por padrão são: Arquivo, Evento, Imagem, Link, Notícia, Pasta, Pasta Esperta, Página. Assim que é criado algum objeto o Plone atribui uma data de criação; Um objeto pode atribuir: data (criação, efetivação, expiração, inicial, final), criador, estado (esboço público, publicado, privado, pendente).

27 Objetos e sua diferenças
______________________________________________ Arquivo: Enviar arquivo externo para o site; Evento: Informações de eventos que ficam no calendário; Imagem: Pode ser referenciada em documentos e exibida em álbuns; Link: Um link para recursos interno ou externo; Notícia: Um anúncio que aparecerá no portlet de notícia e na lista de notícia; Pasta: Pode conter outros itens; Pasta Esperta: Realiza busca que é atualizada automaticamente e pode exibir itens que casam com um critério especificado; Página: Pode conter conteúdo, uma página do site.

28 Instalando Produtos ______________________________________________
Qual o produto? RichDocument Onde achar? Como instalar? Copiar o arquivo descompactado para a pasta Products; Reiniciar o servidor; Ir ao site > Configuração do site > Adicionar remover produtos. E instalar o produto. Ou então, Ir na ZMI -> Portal Quickinstaller -> Escolher o produto e instalar.

29 Ferramentas do Plone no Zope
______________________________________________ portal_actions portal_catalog portal_properties portal_quickinstaller portal_skins portal_types portal_workflow portal_css portal_javascripts

30 portal_actions ______________________________________________
Responsável pelo cadastro e alteração de ações do portal, por exemplo: site_actions, document_actions, portal_tabs; Title = Título Id = Identificação única URL = Caminho para script/página que será executado Permission = Permissão necessária para executar a ação Category = Categoria que a ação pertence Visible = É visível ou não

31 portal_catalog Baseado no ZCatalog do ZOPE;
______________________________________________ Baseado no ZCatalog do ZOPE; Indexa todos os objetos do Plone; Adiciona índices, metadados e políticas que facilitam a busca de objetos no Plone;

32 portal_properties ______________________________________________ Define as principais propriedades para a árvore de navegação e também para o site em geral;

33 portal_quickinstaller
______________________________________________ Responsável por adicionar e remover produtos Plone;

34 portal_skins Localização dos templates do Plone e dos produtos;
______________________________________________ Localização dos templates do Plone e dos produtos;

35 portal_types ______________________________________________
Gerencia os tipos de objetos do Plone Aba Contents -> Lista todos os tipos de objetos Properties -> Detalhes do objeto Actions -> Ações possíveis de executar pelo objeto Aba Aliases -> Determina os templates de Visão, Edição, Propriedades, compartilhamento dos objetos;

36 portal_workflow Determina o workflow para cada objeto do Plone
______________________________________________ Determina o workflow para cada objeto do Plone Aba Workflow -> Determina o workflow do portal_type Aba Contents -> Lista os workflows existentes

37 portal_css - portal_javascripts
______________________________________________ Em portal_css são registrados todos os css do plone; Em portal_javascripts são registrados todos os javascripts do plone;

38 Zope Page Templates (ZPT)
______________________________________________ Zope Page Templates (ou linguagem de templates Zope) é um instrumento do servidor de aplicação Zope para a geração de páginas web dinâmicas. O objetivo é proporcionar um fluxo de tarefas natural entre designers e programadores.

39 ZPT x DTML ______________________________________________ DTML “Document Template Markup Language” (Linguagem de Marcação para Modelos de Documentos) é a linguagem de apresentação e script baseada em tag do Zope. Podemos usar o DTML em dois tipos de objetos no Zope, DTML Documents e DTML Methods DTML sofre por uma deficiência para separar apresentação, lógica e conteúdo (dados). O namespace do DTML adiciona muita “mágica”, sem permitir controle suficiente.

40 ZPT na prática ______________________________________________ Page Templates usam a Template Attribute Language (TAL). TAL consiste em atributos especiais para as tags HTML. Por exemplo, um titulo dinâmico de uma página deveria ficar assim: <title tal:content="here/title">Page Title</title>

41 ZPT na prática Para criar um Page Template vamos até a ZMI:
______________________________________________ Para criar um Page Template vamos até a ZMI: Em seguida:

42 ZPT na prática ______________________________________________
<html> <body> <p> Esse é o <b tal:content="template/title">título</b> </p> </body> </html>

43 ZPT na prática - Expressões
______________________________________________ A expressão, "template/title" do exemplo anterior é uma expressão de caminho ou path expression. Esse é o tipo mais comum de expressão. Outras expressões: 'request/URL': A URL da requisição web atual. 'user/getUserName': O nome do usuário autenticado. 'container/objectIds': Uma lista dos ids dos objetos que estão na mesma pasta do template.

44 ZPT na prática - Comandos TAL
______________________________________________

45 ZPT na prática No Page Template que criamos, a linha:
______________________________________________ No Page Template que criamos, a linha: Esse é o <b tal:replace="template/title"> título</b> Renderizou: Esse é o Meu Template. Portanto, A tag <b> foi trocado pelo valor de “template/title”

46 ZPT na prática ______________________________________________
Outra maneira de inserir texto é com a instrução: tal:content Uso similar ao tal:replace, porém o a tag não é removida e o valor é inserido dentro dela; Ex.: <head> <title tal:content="template/title">Titulo</title> </head>

47 ZPT na prática - Repetindo estruturas
______________________________________________ <table border="1" width="100%"> <tr> <th>Número</th> <th>Id</th> <th>Meta-Type</th> <th>Titulo</th> </tr> <tr tal:repeat="item container/objectValues"> <td tal:content="repeat/item/number">#</td> <td tal:content="item/getId">Id</td> <td tal:content="item/meta_type">Meta-Type</td> <td tal:content="item/title">Title</td> </table>

48 ZPT na prática - Repetindo estruturas
______________________________________________ A instrução tal:repeat na linha da tabela significa “repita essa linha para cada item na minha lista de objetos do container”. A instrução coloca os objetos da lista na variável item, um de cada vez (essa variável é conhecida como variável de repetição), e faz uma copia da linha usando essa variável. O valor de "item/getId" em cada linha é o id do objeto para a linha, e também como em "item/meta_type" e "item/title".

49 ZPT na prática – Elementos condicionais
______________________________________________ Usando a instrução tal:condition podemos checar vários tipos de condições. tal:condition deixa a tag e seu conteúdo no lugar se a expressão é verdadeira, mas remove-os se for falsa. O Zope considera o numero zero, uma string em branco, uma lista vazia, e a variável de ambiente nothing como falsos valores. Sendo assim quase todos outros valore são considerados como verdadeiros, incluindo números diferentes de zero, e strings com algum valor (até mesmo espaços em branco!).

50 ZPT na prática – Elementos condicionais
______________________________________________ <div tal:define=“items container/objectValues”> <table tal:condition= "items" border="1" width="100%"> <tr> <th>Número</th> <th>Id</th> <th>Meta-Type</th> <th>Titulo</th> </tr> <tr tal:repeat="item items"> <td tal:content="repeat/item/number">#</td> <td tal:content="item/getId">Id</td> <td tal:content="item/meta_type">Meta-Type</td> <td tal:content="item/title">Title</td> </table> </div>

51 ZPT na prática – Controle de atributos
______________________________________________ É possível alterar os atributos das tags através instrução tal:attributes Ex.: <a href="link" tal:attributes="href here/getILink; ">link</a> Resultado: <a href= "linkToSomeWhere">link</a>

52 ZPT na prática – Definindo variáveis
______________________________________________ Você pode definir suas próprias variáveis usando a instrução: tal:define; Ex.: <ul tal:define="items container/objectIds" tal:condition="items"> <li tal:repeat="item items"> <p tal:content="item">id</p> </li> </ul>

53 ZPT na prática ______________________________________________
É possível ter mais de uma instrução numa única tag HTML, nesse caso eles são executados na seguinte ordem: 1 - define 2 - condition 3 - repeat 4 - content ou replace 5 - attributes 6 - omit-tag

54 ZPT na prática – Chamadas de scripts
______________________________________________ É possível utilizar chamadas de scripts Python ao invés das expressões de caminho(path expressions); Para isso usa-se o termo ‘python:’ Ex.: <div tal:content=“python:item.getId ()“>id</div>

55 ZPT na prática – Expressões string
______________________________________________ Expressões string permitem unir com facilidade expressões de caminho com texto. Todo o texto depois do termo string: é procurado por expressões de caminho. Cada expressão deve ser precedida do sinal de dólar ($). Ex.: "string:Somente texto. Sem path expressions. " "string:Seu nome é ${user/getUserName}!"

56 ZPT na prática – Macros ______________________________________________
As page templates tem a capacidade de reutilização da ‘aparência’ e elementos em várias páginas; Para isso utilizamos as Macros. Elas definem uma seção da página que pode ser reutilizada por outras; Uma macro pode ser uma página inteira, ou somente uma parte como cabeçalho ou rodapé; Macros são definidos por atributos chamados de METAL(Macro Expansion Tag Attribute Language)

57 ZPT na prática – Macros ______________________________________________
Definindo uma macro: <p metal:define-macro="copyright"> Copyright 2001, <em>Foo, Bar, and Associates</em> Inc. </p> Utilizando a Macro <b metal:use-macro="container/master_page/macros/copyright"> Aqui fica a macro! </b> Resultado <p> Copyright 2001, <em>Foo, Bar, and Associates</em> Inc.</p>

58 Aplicação com Archetypes
______________________________________________ Framework para desenvolvimento ágil ✔ Dá suporte aos tipos do Plone ✔ Gera automaticamente ✔ Formulários ✔ Visões ArchGenXML ✔ Geração automática de códigos Archetypes ✔ Baseado em modelos

59 Referências Meu contato www.plone.org www.zope.org Lista zope-pt
______________________________________________ Lista zope-pt Meu contato

60 Muito Obrigado!!


Carregar ppt "Python – Zope - Plone Adolfo Bruno"

Apresentações semelhantes


Anúncios Google