Vous êtes sur la page 1sur 12

Introduo ao Titan Framework ca

Rodrigo S. Devigo Curso de Cincia da Computaao e c Universidade Federal do Mato Grosso do Sul - UFMS 2 de abril de 2011

Resumo Descrio e um curso introdutrio do Titan Framework, alm de ca o e conter a denio do Framework em si. Entender os tipos e os comca ponentes nativos do Titan, como criar sees, integrar ao Banco de co dados, gerar formulrios e mostrar esse dados so temas abordados a a nesse documento.

Palavras Chave: Titan, framework, cms

Introduo ao Titan ca

A introduo ao Titan est dividido em duas subsees. ca a co

1.1

O que um framework ? e

Um framework, ou arcabouo, em desenvolvimento de software, uma absc e trao que une cdigos comuns entre vrios projetos de software provendo ca o a uma funcionalidade genrica. Um framework pode atingir uma funcionalie dade espec ca, por congurao, durante a programao de uma aplicao. ca ca ca Ao contrrio das bibliotecas, o framework quem dita o uxo de controle a e da aplicao, chamado de Inverso de Controle. ca a

1.2

O que o Titan framework ? e

O Titan um framework para instanciao de CMSs (Content Management e ca Systems), ou seja, gerenciadores de contedo, para sistemas Web. A prou posta do Titan Framework ser uma soluo simples e completa para a e ca instanciao de gerenciadores de contedo de forma rpida e fcil. Entre os ca u a a 1

vrios recursos que esto sendo desenvolvidos esto a arquitetura baseada a a a em componentes, suporte a XML/XSL Transformation, independncia de e Banco de Dados atravs de camada de persistncia, implementao totale e ca mente Orientada a Objetos e suporte completo a AJAX.

1.3

Denies bsicas co a
No contexto da orientao ao objeto, instncia signica a concretizao ca a ca de uma classe. Em termos intuitivos, mas aproximados, uma classe e vista como um moldeque gera instncias de um certo tipo, j objeto a a algo que existe sicamente moldado a partir desse molde. No caso e do Titan Framework, essa instnciao a concretizao do conjunto a ca e ca de classes e dos arquivos de conguraes. co

Instncia: a

CMS: So as siglas de Content Management System, que se traduz diretaa mente ao portugus como Sistema de Gerenciamento de Contedos. e u Como seu prprio nome indica, um sistema que nos permite gereno e ciar contedos. Em linhas gerais, um CMS permitiria administrar u contedos em meio digital e para o caso particular que nos ocupa, um u CMS permitiria gerenciar os contedos de uma web. u Front-End: Em um framework ou software, front-end, toda parte do sistema e responsvel pela interao entre o framework ou software e o usurio a ca a diretamente. Back-End: Em um framework ou software, back-end, a parte responsvel pelo e a processamento de dados recolhidos dos usurios e sua adequao ` a ca a funes especif co cas.

2
2.1

Componentes nativos
O que um componente do Titan ? e

Um cdigo fonte executvel que, devidamente congurado, instancia uma o a seo, ou seja, o componente um conjunto de arquivos que geram diversas ca e sees similares( caracter co ticas bsicas iguais ) em uma aplicao XML+ a ca Entidades SQL. 2

2.2

Componentes

global.archive global.contact global.generic global.group global.home global.poller global.simple global.userPrivate global.userProtected global.userPublic

Tipos nativos
Amount Boolean Cep City Cnpj Collection Color Coordinate Cpf Date Edit Enum 3

Fck File Float Integer Money Multiply Password Radio Rga Select Slug State String Text Time Twitter

Estrutura da pasta da instncia do Titan a

Lembre-se uma instncia do Titan formada pela concretizao das classes a e ca do Core e dos arquivos de congurao, na gura 1 a estrutura de pastas da ca instncia. a Abaixo esto as descrio dos arquivos importantes, de primeiro moa ca mento, dentro do Titan. /congure/Titan.xml: Este arquivo guarda as conguraes da insco tncia, o nome da aplicao, o nome do autor, a hash de criptograa, a ca os dados do banco de dados e etc. /congure/business.xml: Este arquivo guarda o mapa das sees que co a aplicao possui. ca 4

Figura 1: Estrutura de uma instncia a

/congure/archive.xml: Este arquivo guarda o mapa dos tipos de arquivo que a aplicao aceita para uploads de usurios. ca a /section/: Esta pasta guarda todas as sees da aplicao, onde cada co ca seo representada por outra pasta. ca e

Estrutura de uma seo do Titan ca

As sees no Titan so formadas por um conjunto de arquivos XML que ` co a a congura, uma entidade no banco de dados(PostgreSQL ou MySQL) e um componente local ou global.

5.1

Arquivos bsicos e suas funes a co

As sees do Titan possui alguns arquivos bsicos que deve conter dentro co a da pasta da seo dentro de /section/, so eles: ca a cong.inc.xml: Este arquivo guarda a congurao da seo, mais preca ca cisamente guarda as aes que vai conter a seo. co ca mail.xml: Este arquivo contm todos os corpos dos emails de interao e ca com o usurio do sistema, ou seja, contm os textos dos emails enviados a e quando o usurio produz alguma modio na seo. a ca ca register.xml: Este arquivo guarda as informaes para o Titan gerar o co formulrio de cadastro de um determinado dado na seo corrente. a ca modify.xml: Este arquivo guarda as informaes para o Titan gerar o co formulrio de modicao de um determinado dado na seo corrente. a ca ca

all.xml: No caso de quando o Titan no acha os arquivos modify.xml a ou register.xml ele usa este arquivo como gerador dos formulrios de a cadastro e modicao de determinado dado na seo corrente. ca ca list.xml: Este arquivo guarda as informaes para o Titan gerar a co listagem dos dados que esto salvos da determinada seo. a ca Vale lembrar que, dependendo do componente usado no obrigatrio a a e o existncia de tais arquivos dentro da pasta da seo. e ca

5.2

Criao de uma seo passo ` passo ca ca a

O intuito deste mini-guia criar uma seo do zero, ento seja algumas e ca a denies de nosso exemplo: co Esta uma seo de Not e ca cias de um site qualquer, ou seja, ela uma e seo CRUD( Create, Retrieve, Update e Delete). ca Ela utiliza uma entidade do banco de dados chamada Noticias utilizando PostgreSQL, ou seja, ela pertence ` um esquema que aqui ser a a utilizado o Titan(esquema padro de uma instncia do framework). a a A entidade possui os seguintes atributos: T tulo, Texto, Data de publicao, Id(chave), Autor, Data de criao, Data da ultima modicao. ca ca ca O componente utilizado nesse caso o global.Generic. e As aes que essa seo ir ter ser a de criar, editar, deletar e listar co ca a a as not cias. 1. Criao da pasta da seo na pasta /section com o nome de news. ca ca 2. Congurao da seo no arquivo cong.inc.xml ca ca Cria-se um arquivo *.xml utilizando qualquer editor de texto e seguindo o modelo abaixo chamado cong.inc.xml. Listagem 1: Aes da seo news co ca
<?xml version=" 1.0 " e n c o d i n g="ISO -8859 -1 " ?> <a c t i o n mapping> <a c t i o n
5

name=" list " l a b e l=" Listar Itens " default=" true "

10

d e s c r i p t i o n=""> <menu a c t i o n=" create " /> <menu f u n c t i o n=" search " /> <menu f u n c t i o n=" rss " /> </ a c t i o n> <a c t i o n

15

20

name=" create " l a b e l=" Criar Itens " d e s c r i p t i o n="" indext o=" view "> <menu f u n c t i o n=" save " /> <menu a c t i o n=" list " image=" close . png " /> </ a c t i o n> <a c t i o n

25

30

name=" edit " l a b e l=" Editar Itens " d e s c r i p t i o n="" indext o=" view "> <menu f u n c t i o n=" save " /> <menu a c t i o n=" list " image=" close . png " /> </ a c t i o n> <a c t i o n name=" delete " l a b e l=" Apagar Itens " d e s c r i p t i o n="" indext o=" view "> <menu f u n c t i o n=" delete " /> <menu a c t i o n=" list " /> </ a c t i o n> <a c t i o n name=" view " l a b e l=" Visualizar Itens " d e s c r i p t i o n=""> <menu a c t i o n=" list " /> <menu f u n c t i o n=" print " /> <menu a c t i o n=" edit " /> <menu a c t i o n=" delete " /> <menu f u n c t i o n=" pdf " /> </ a c t i o n> </ a c t i o n mapping>

35

40

45

50

Pode-se notar que cada ao caracterizada por uma tag <action></action>, ca e como pode ser ver abaixo: 7

Listagem 2: Tag <action>


<a c t i o n name=" list " l a b e l=" Listar Itens " default=" true " d e s c r i p t i o n=""> <menu a c t i o n=" create " /> <menu f u n c t i o n=" search " /> <menu f u n c t i o n=" rss " /> </ a c t i o n>

Esta tag aceita como atributos: name: o nome da ao, mais como um rtulo para referenci-lo ca o a nos formulrios da seo. a ca label: nome da ao que ser visualizado pelo usurio do sistema. ca a a description: descrio da ao da seo. ca ca ca Esta tag aceita tambm algumas subtags para sua congurao: e ca <menu function= />: tag que determina o que a ao ir fazer ca a dentro da seo. ca <menu action= />: tag que determina as aes que haver no co a menu da seo quando estiver executando a ao corrente. ca ca Concluido a parte da congurao das aes da seo Novidades. ca co ca 3. Criando os formulrios: list.xml e all.xml a Cria-se dois arquivos *.xml utilizando qualquer editor de texto e seguindo os modelos abaixo chamados list.xml e all.xml. Listagem 3: Formulrio de registro e modicao de dados da seo a ca ca
<?xml version=" 1.0 " e n c o d i n g="ISO -8859 -1 " ?> <form t a b l e=" titan . noticias " primary=" id "> <got o f l a g=" success " a c t i o n="[ default ]" /> <got o f l a g=" fail " a c t i o n="[ same ]" /> < f i e l d type=" String " column=" title " l a b e l=" Titulo " r e q u i r e d=" true " maxl e n g h t=" 256 " /> < f i e l d type=" Date " column=" date " l a b e l=" Data " /> < f i e l d type=" Text " column=" synopsis " l a b e l=" Chamada " /> < f i e l d type=" Fck " column=" text " l a b e l=" Texto " /> </ form>

Nota-se que o arquivo all.xml comea com a tag <form>, que contm c e como atributos: table e primary, onde table recebe o nome da tabela a que o Titan ir salvar os dados no Banco de Dados e primary guarda a a chave primria da tabela. a Aps a abertura da tag <form> temos a tag <go-to >, que contm o e como atributos: ag e a action. E ento tem-se as tags que de fato gera os campos no formulrio dentro a a da aplicao, a tag <eld> que contm essa interface: ca e
<eld {type= } {column= } {label = } [required = true || false ] [readonly = true || false ] />;

Lembrando que dependendo do tipo de campo a tag pode ter mais atributos, estes so s alguns e bsicos. a o a Aps a criao do arquivo all.xml, nossa seo j possui um formulrio o ca ca a a de registro e modicao de dados, no caso, de not ca cias. A seguir h o arquivo list.xml. a Listagem 4: Formulrio de listagem dos dados da seo a ca
<?xml version=" 1.0 " e n c o d i n g="ISO -8859 -1 " ?> <view t a b l e=" titan . noticias " primary=" id " p a g i n a t e=" 15 "> < f i e l d type=" String " column=" title " l a b e l=" Titulo " i d=" _TITLE_ " /> < f i e l d type=" Date " column=" date " l a b e l=" Data " i d=" _DATE_ " /> < f i e l d type=" Select " column=" _user " l i n k column=" _id " l i n k t a b l e=" _user " l i n k view=" _name " l a b e l= " Autor " /> <o r d e r i d=" _DATE_ " i n v e r t=" true " /> <i c o n a c t i o n=" view " image=" view . gif " l a b e l=" Visualizar " default=" true " /> <i c o n a c t i o n=" edit " image=" edit . gif " l a b e l=" Editar " /> <i c o n a c t i o n=" delete " image=" delete . gif " l a b e l=" Apagar " /> <i c o n a c t i o n=" version " l a b e l=" Controle de Versoes " /> </ view> <s e a r c h t a b l e=" titan . noticias "> < f i e l d type=" String " column=" title " l a b e l=" Titulo " /> < f i e l d type=" Date " column=" date " l a b e l=" Data " /> < f i e l d type=" String " column=" text " l a b e l=" Texto " /> </ s e a r c h>

10

15

A tag <view> ela diz ao Titan que este arquivo trata-se de uma listagem e faz com que ele busque as informaes declaradas nas co subtags <eld> e lista todas as ocorrncias. e A tag <search> responsvel por congurar a listagem quando e a voc usa a funo de procura dentro da seo. e ca ca Agora tem-se todos os arquivos congurados de nossa seo e o arquivo ca mail.xml no h explicao mas segue abaixo. a a ca Listagem 5: Arquivo mail.xml
<?xml version=" 1.0 " e n c o d i n g="ISO -8859 -1 " ?> <mailmapping> <m a i l name=" CREATE " l a b e l=" Aviso de item criado " s u b j e c t=" [[ _SYSTEM_ ]] Novo item de [ _LABEL_ ] criado "> Ola [ USER ] ,
5

O u s u a r i o [ ACTOR ] c r i o u um novo item de [ LABEL ] . Para v i s u a l i z a r o novo item , c l i q u e no l i n k a b a i x o :


10

[ LINK ] Sem mais , Equipe [ SYSTEM ] </ m a i l> <m a i l name=" EDIT " l a b e l=" Aviso de item modificado " s u b j e c t=" [[ _SYSTEM_ ]] Um item de [ _LABEL_ ] foi modificado "> Ola [ USER ] , O u s u a r i o [ ACTOR ] m o d i f i c o u um item de [ LABEL ] .

15

20

Para v i s u a l i z a r o item , c l i q u e no l i n k a b a i x o : [ LINK ]


25

Sem mais , Equipe [ SYSTEM ] </ m a i l> <m a i l name=" DELETE " l a b e l=" Aviso de item apagado " s u b j e c t=" [[ _SYSTEM_ ]] Item de [ _LABEL_ ] apagado " > Ola [ USER ] ,

30

10

O u s u a r i o [ ACTOR ] apagou um item de [ LABEL ] . Veja i n f o r m a c o e s s o b r e o item a p a g a d o :


35

[ RESUME ]
40

Sem mais , Equipe [ SYSTEM ] </ m a i l> </ mailmapping>

45

4. Habilitando a seo na instncia ca a O passo nal da criao de uma seo a sua habilitao no arquivo ca ca e ca congure/business.xml, que segue abaixo. Listagem 6: Business.xml
<?xml version=" 1.0 " e n c o d i n g="ISO -8859 -1 " ?> <s e c t i o n mapping> <s e c t i o n l a b e l=" Noticias " name=" news " component=" global . generic " /> </ s e c t i o n mapping>

Uma seo habilitada na aplicao quando cria-se uma tag <section> ca e ca dentro do arquivo business.xml. A tag <section> tm como atributos: e label: Como ser mostrado para o usurio dentro da aplicao. a a ca name: o nome da pasta da seo que est dentro da pasta sectica a on/. component: o nome do componente usado pela seo. ca father: opcional, isto mais para a organizao do menu da aplie ca cao utilizando a caracter ca stica do Titan de sees fakes. co Concluido esses passos a seo Not ca cias foi criada em nossa aplicao. ca

11

Concluso a

Como foi demonstrado aqui, a simplicidade do Titan em termos de instnciao e criao de sees um ponto forte deste framework, com este a ca ca co e guia qualquer programador estar apto ` criar aplicaes unicas utilizando a a co o Titan. Vale lembrar que o Titan oferece uma customizao maior, no caso, ca criando componentes e tipos locais para determinadas aplicaes, mas o co intuito deste artigo uma introduo ao framework. e ca

Bibliograa
1. CARROMEU, C.; PAIVA, D. M. B.; MACHADO, M. I. C.; RUBINSZTJN, H. K. S.; BREITMAN, K.; TURINE, M. A. S. (2010) Component-based Architecture for e-Gov Web Systems Development. In: 17th IEEE International Conference and Workshops on Engineering of Computer-Based Systems. 2. Titan Framework,http://wiki.ledes.net/index.php/Titan_Framework. Acessado dia 01/04/2011

12

Vous aimerez peut-être aussi