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

Preview:

Citation preview

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

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

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

PARTE 1

Uma breve introdução ao XMLNuke

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.

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.

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>

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.

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?

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.

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

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.

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

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

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

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.

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

PARTE 2

Utilizando o XMLNuke

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

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

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.

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

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>

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.

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>

...

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

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.

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>

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

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>

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

Estrutura de diretórios

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

Arquivos de configuração

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

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

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

Recommended