33
João Gilberto Magalhães http://www.byjg.com.br XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML.

João Gilberto Magalhães XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

Embed Size (px)

Citation preview

Page 1: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

XMLNuke

Um sistema de gerenciamento de conteúdo baseado em XML.

Page 2: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Agenda

• Visão Geral– Apresentação– Conceitos sobre XML/XSL– Funcionalidades do XMLNuke– Framework de desenvolvimento

• Trabalhando com o XMLNuke– Fazendo requisições– Criando documentos XML/XSL– Estrutura de diretórios– Repositório de dados

• Utilizando o Framework

Page 3: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

PARTE 1

Uma breve introdução ao XMLNuke

Page 4: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Apresentação

• O que é o XMLNuke?– É um sistema de gerenciamento de conteúdo totalmente

baseado em XML.

• Um sistema de gerenciamento de conteúdo (CMS) é uma aplicação que permite auxiliar o usuário na tarefa de publicação e edição de conteúdos na WEB.

• XML é um padrão de representação de documentos.

Page 5: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

O que vem a ser o XML?

• O XML (eXtensible Markup Language) é um documento no formato texto.

• Representa apenas informações sem se preocupar com a forma como serão listadas– A informação é estruturada de forma hierárquica– Cada informação é delimitada através de marcas no

documento, muito parecidas com o HTML.– É extensível, pois cada um pode definir quais marcas

representarão as suas informações.

Page 6: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Exemplo de XML

<filme><nome>Matrix Revolutions</nome>

<direcao>Irmãos Wachowski</direcao>

<duracao tempo=“minutos”>129</duracao>

<texto>Em Matrix Revolutions, o capítulo final da trilogia, a guerra entre homens e máquinas chega ao seu ponto máximo.

</texto>

</filme>

Page 7: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Vantagens do XML

• Algumas Perguntas:– Por que utilizar o XML para representar apenas a

informação?– Não seria melhor já listá-lo na forma definitiva?

• A reposta é simples:– Ao separar informação de apresentação é possível

“moldar” essa informação através de diversos formatos. – Se as informações de conteúdo ficassem misturadas com

a apresentação, qualquer mudança de layout representaria horas de trabalho.

Page 8: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Vantagens do XML

• O documento XML listado anteriormente poderia facilmente representar as informações de diversas formas, como por exemplo:

DE QUE FORMA?

Page 9: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Processando documentos XML

• Os documentos XML, podem ser processados de diversas formas.

• A forma mais usual é através de documentos XSL– XSL = eXtensible Stylesheet Language– São documentos textos– Contém comandos específicos para selecionar, percorrer,

extrair e listar “nós” de documentos XML.– Um documento XSL, pode gerar outro documento texto,

em outra linguagem ou formato. Pode ainda, gerar documentos que não necessariamente precisam ser texto.

Page 10: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Processando documentos XML

• O programa que é capaz de ler o documento XML, e processar é chamado de PARSER.

• A tarefa de processar o documento XML em outro através do XSL é chamado de transformação

Page 11: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

O XMLNuke então...

• Utiliza o processo de transformação de documentos XML/XSL de forma a potencializar as características oferecidas por esse processo agregando novas funcionalidades.– Sendo assim, o usuário precisará criar apenas as suas

informações (documentos XML), definir como elas serão exibidas (documentos XSL) e o XMLNuke fará o resto.

Page 12: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Características do XMLNuke

• Independência do conteúdo do site em relação à forma como este será exibido.

• Múltiplos temas para visualização de documentos XML de forma simples e natural.– Exemplo “Preparar para a impressão”

• Multi-Plataforma Real• Possibilidade de criar conteúdo estático (HTML

puro) à partir das transformações de documentos XML/XSL

Page 13: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Características do XMLNuke

• Ferramenta de Administração Remota Extensível• Diversos Sites em um único mecanismo• Suporte nativo a Internacionalização• Suporte a cache para aumentar a performance.• Indexação de documentos XML para busca de

palavras• Framework de desenvolvimento de aplicações que

produzem XML e aproveitam todos os recursos do XMLNuke

• Fácil instalação

Page 14: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Framework de Desenvolvimento

• Criar módulos personalizáveis (ex: Uma tela de cadastramento) no qual o programador se preocupa apenas em QUAIS informações serão trabalhadas e não em COMO serão mostradas.

• Suporte a cache nos módulos de consulta• Suporte a internacionalização• Suporte a segurança• Possibilidade de acrescentar módulos

administrativos para implementar novas funcionalidades e/ou facilidades ao XMLNuke

Page 15: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

A quem se destina o XMLNuke?

• O XMLNuke destina-se aos usuários que:– Mudam com freqüência a aparência (layout) do site ou

querem ter diversos temas de trabalho.– Desenvolvem aplicativos para a WEB e desejam

desassociar completamente a interface gráfica dos dados– Não querem estar preso à sistemas operacionais e

linguagens de programação – Possuem vários sites ou áreas, cujos dados e valores

sejam totalmente independentes, porém querem aproveitar o mesmo mecanismo de processamento das informações.

– Estão na vanguarda da tecnologia e querem sempre trabalhar com novas soluções.

Page 16: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

PARTE 2

Utilizando o XMLNuke

Page 17: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Funcionamento do XMLNuke

• O XMLNuke funciona através de um mecanismo denominado “Front-Controller”.– Esse mecanismo (um Design Pattern) processa todas as

requisições WEB.– Sendo assim, para acessar qualquer documento XML

e/ou modelo XSL é necessário passar argumentos para o Front-Controller

• Existem três Front-Controller no XMLNuke:– Processador de documentos XML/XSL estáticos– Processador de módulos de usuários– Processador de módulos de administração

Page 18: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Passando argumentos ao XMLNuke

• O XMLNuke suporta os seguintes argumentos http:– Site: Contém o site no qual o XMLNuke irá trabalhar.– XML: Contém o documento que será processado– XSL: Contém o modelo que irá processar o documento

XML.– LANG: Contém a linguagem do documento XML a ser

trabalhada.

• Exemplos– Enginexmlnuke?site=default&xml=home– Enginexmlnuke?site=default&xml=home&xsl=preview– Enginexmlnuke?module=guestbook&xsl=page

Page 19: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Criando um documento XML

• Conforme visto na definição, o XML pode ter qualquer formato.

• O XMLNuke é capaz de processar qualquer representação de documento XML

• Entretanto, a ferramenta de administração e algumas funcionalidades adicionais requerem uma representação específica.

Page 20: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Criando documentos XML

• O documento XML que o XMLNuke sugere para se trabalhar está dividido em duas partes:– Cabeçalho, que contém os metadados– Área de dados que está dividida em Blocos.

• Essa divisão possibilita fragmentaras informações em partes menoresque podem ser dispostas (ou não)em posições específicas da página

Page 21: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Exemplo de um documento XML

<page><meta>

<title>Título da Página</title> <abstract>Resumo do conteúdo da página</abstract> <created>20/10/2002 19:33:57</created> <modified>10/20/2002 7:33:57 PM</modified> <keyword>XMLSite ByJG</keyword> <groupkeyword>bfoto</groupkeyword>

</meta><blockcenter>

<title>Pegando as Imagens com o BuscaFoto</title> <body>

<p>Um simples parágrafo</p></body>

<blockcenter></page>

Page 22: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Criando um documento XML

• Como o XMLNuke identifica as marcas no documento XML e sabe o mapeamento para o HTML?– O XMLNuke possui um recurso chamado “Snippet” (visto

mais adiante) que possibilita a inclusão de trechos pré-definidos de XSL

– Existe um XSL chamado HTMLBODY que faz praticamente todos os mapeamentos mais importantes para o HTML.

– O usuário também pode modificar esse Snippet ou acrescentar outros com funções específicas, como mapeamentos para SVG.

Page 23: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Criando XML com formulários

• O Snippet HTMLBODY que mapeia as marcas XML em HTML trata de uma forma mais simplificada e específica os formulários. Por exemplo:

  ...<blockcenter>

<title>Send eMail</title> <body>

<p>This page use a custom module 'sendmail' distribute with default installation of XMLNuke. You can create a custom form, to POST data to sendmail page.</p> <editform action="module:sendemail" title="Fill Fields Bellow to Send a email">

<textbox name="name" caption="Name" size="40" /><textbox name="email" caption="eMail" size="40" /><textbox name="subject" caption="Subject" size="50" /> <memo name="message" caption="Message" cols="50" rows="5" /><hidden name="toname_id" value="DEFAULT" /><buttons>

<submit caption="Send" /> <reset caption="Reset" />

</buttons></editform>

</body></blockcenter>

...

Page 24: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Documentos XML especiais

• O XMLNuke possui um documento chamado _all:– Esse documento não possui identificação de metadados– É acrescentado automaticamente a TODO documento

XML processado que contenha o nó raiz chamado “Page”– Útil, por exemplo, para definir caixas que podem ter seu

conteúdo facilmente modificável, sem mexer em templates XSL

Page 25: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Documentos XML especiais

• Todo documento XML criado pela ferramenta de administração, gera uma entrada no documento de nome INDEX.– Esse documento possui uma referência rápida a todos os

documentos XML– Pode agrupar documentos XML– Da mesma forma que o documento _all, o documento

index é inserido em todos os documentos XML processados.

– Útil para montar um índice dinâmico, ou seja, ao acrescentar um documento XML, este é incluído no índice.

Page 26: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Criando documentos XSL

• Os documentos XSL devem conter comandos que processem os nós do documento XML selecionado através dos argumentos de página.

• Exemplo:<xsl:for-each select="page/blockleft">

<br/>

<b><xsl:value-of select="title"/></b>

<br/>

<xsl:apply-templates select="body"/>

<hr/>

</xsl:for-each>

Page 27: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Criando documentos XSL

• A criação de documentos XSL requer algum conhecimento do usuário.

• Para facilitar essa tarefa o XMLNuke implementa o conceito de SNIPPETs– Os Snippets são blocos de código que são inseridos no

documento XSL no momento do processamento.– Esses blocos de código, tornam o código XSL mais

legível ou evita repetição desnecessária de código

Page 28: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Exemplo de Documento XSL

<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" /><xsl:template match="/">

<HTML><TABLE BORDER="0">

<TR VALIGN="TOP"><TD STYLE="WIDTH:120px">

<xmlnuke-tableofcontents/><xmlnuke-menu/><xmlnuke-blockleft/>

</TD><TD WIDTH="100%"><xmlnuke-blockcenter/>

</TD><xmlnuke-blockright/>

</TR></TABLE></HTML>

</xsl:template><xmlnuke-htmlbody/>

</xsl:stylesheet>

Page 29: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Estrutura de diretórios

Page 30: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Arquivos de configuração

Page 31: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Page 32: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br

Page 33: João Gilberto Magalhães  XMLNuke Um sistema de gerenciamento de conteúdo baseado em XML

João Gilberto Magalhãeshttp://www.byjg.com.br