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

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

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

Apresentações semelhantes


Apresentação em tema: "Python – Zope - Plone Adolfo Bruno GCUFAL _____________________________________________ Maceió – 16 de Agosto de 2008."— Transcrição da apresentação:

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

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

3 CMS Content Management System

4 O que é um CMS? É 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 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 Por que usar um CMS? _____________________________________________

6 Python

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

8 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. História do Python? ______________________________________________

9 Indentação 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 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() ______________________________________________ Indentação

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 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 ______________________________________________ Funções

13 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) ______________________________________________ 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

14 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 ______________________________________________ Listas

15 Zope

16 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 ______________________________________________ O que é Zope?

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

18 Plone

19 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 ______________________________________________ O que é Plone?

20 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 ______________________________________________ A instalação Verificar se o gcc, g++ e make estão instalados

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

22 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 ______________________________________________ A instalação

23 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 ______________________________________________ A instalação

24 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 ______________________________________________ A instalação

25 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 ______________________________________________ A instalação

26 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). ______________________________________________ Criando conteúdo

27 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. ______________________________________________ Objetos e sua diferenças

28 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. ______________________________________________ Instalando Produtos

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

30 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 ______________________________________________ portal_actions

31 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; ______________________________________________ portal_catalog

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

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

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

35 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; ______________________________________________ portal_types

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

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

38 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. ______________________________________________ Zope Page Templates (ZPT)

39 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. ______________________________________________ ZPT x DTML

40 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: Page Title ______________________________________________ ZPT na prática

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

42 ______________________________________________ ZPT na prática Esse é o título

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: Esse é o título Renderizou: Esse é o Meu Template. Portanto, A tag 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.: Titulo

47 ______________________________________________ ZPT na prática - Repetindo estruturas Número Id Meta-Type Titulo # Id Meta-Type Title

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 Número Id Meta-Type Titulo # Id Meta-Type Title

51 ______________________________________________ ZPT na prática – Controle de atributos É possível alterar os atributos das tags através instrução tal:attributes Ex.: link Resultado: link

52 ______________________________________________ ZPT na prática – Definindo variáveis Você pode definir suas próprias variáveis usando a instrução: tal:define; Ex.: id

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.: id

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: Copyright 2001, Foo, Bar, and Associates Inc. Utilizando a Macro Aqui fica a macro! Resultado Copyright 2001, Foo, Bar, and Associates Inc.

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 Lista zope-pt Meu contato

60 Muito Obrigado!!


Carregar ppt "Python – Zope - Plone Adolfo Bruno GCUFAL _____________________________________________ Maceió – 16 de Agosto de 2008."

Apresentações semelhantes


Anúncios Google