Tags: schema, xsd, opencms, modules, xml, newresource, pagina, conteudo, estruturado, estruturada, renderizado, renderizada, html, template, jsp
ETAPAS
1) Criar Schema
2) Cadastrar novo schema em opencms-modules.xml e gerenciar permissoes dos grupos em opencms-workplace.xml
3) Cadastrar novo schema em workplace.properties (opcional)
4) Criar conteudo estruturado
5) Criar template JSP
6) Criar HTML ou pasta de renderizacao
7) Edicao do template JSP
//////////////////////////////////////////////////////////////////////////////////////////
1) SCHEMA
1.a) Na pasta "/system/modules/br.gov.almg.site.portal/schemas/"
1.b) Crie (Novo > "Arquivo de texto") ou copie um esquema "*.xsd" e siga a estrutura abaixo (exemplo "boletimRadio.xsd"):
< ============ >
< === CODE === >
< ============ >
< ================ >
< === END CODE === >
< ================ >
Ps1: Sugestão usando o exemplo acima:
- Substituir todos 'boletimRadio' por 'meuXsd' (Marcar 'Coincidir maiúsc./minúsc.')
- Substituir todos 'BoletimRadio' por 'MeuXsd' (Marcar 'Coincidir maiúsc./minúsc.')
1.c) Opcionalmente, crie outro "*.xsd" que será incluido no primeiro e siga a estrutura abaixo (exemplo "boletimRadioConteudo.xsd"):
< ============ >
< === CODE === >
< ============ >
< ================ >
< === END CODE === >
< ================ >
Ps1: Sugestão usando o exemplo acima:
- Substituir todos 'BoletimRadio' por 'MeuXsd' (Marcar 'Coincidir maiúsc./minúsc.')
Ps2: Tipos de campos para xsd's:
http://documentation.opencms.org/content-in-opencms/defining-a-content-type/defining-the-contents-behavior/adjusting-the-contents-appearance-in-the-content-editor/widget-configuration/
//////////////////////////////////////////////////////////////////////////////////////////
2) EDITAR OPENCMS-MODULES (NOVO TIPO) E OPENCMS-WORKPLACE (PERMISSAO)
Ps: É possível testar o novo schema sem mexer em "opencms-modules.xml". Para isso, pule para a etapa 4
2.a) Solicitar "opencms-modules.xml"
2.b) Adicionar o novo schema (apenas o geral), conforme exemplo abaixo:
<============>
<=== CODE ===>
<============>
(...)
/system/modules/br.gov.almg.site.portal/schemas/acompanhe/boletimRadio.xsd
(...)
< ================ >
< === END CODE === >
< ================ >
Ps1: Sugestão usando o exemplo acima:
- Substituir todos 'boletimRadio' por 'meuXsd' (Marcar 'Coincidir maiúsc./minúsc.')
Ps2: O valor do atributo "page" da tag "newresource" do "opencms-modules.xml" representa o local em que o Schema ficará hospedado ao criar novo conteúdo ("Novo" > "conteudos_ALMG" > [local])
Ps3: O valor do atributo "name" da tag "explorertype" do "opencms-modules.xml" deve ser diferente do valor do atributo "name" do primeiro "xsd:element" do primeiro "xsd:complexType" em "boletimRadio.xsd"
2.c) Certifique-se de que o grupo de usuário tem acesso à pasta onde o conteúdo estruturado se localiza.
- Para isso, solicite o "opencms-workplace.xml"
- Procure o "explorertype" da respectiva pasta e verifique as permissões
<============>
<=== CODE ===>
<============>
(...)
(...)
(...)
< ================ >
< === END CODE === >
< ================ >
2.d) Reenviar arquivos e solicitar reinicio do servidor Apache/Tomcat
//////////////////////////////////////////////////////////////////////////////////////////
3) WORKPLACE.PROPERTIES (ETAPA OPCIONAL)
3.a) Na pasta: "/system/modules/br.gov.almg.site.portal/classes/br/gov/almg/site/portal/"
3.b) Edite "workplace.properties" da seguinte forma:
<============>
<=== CODE ===>
<============>
###########################
###### BOLETIM RADIO ######
###########################
#Descricao do arquivo quando o usuario criar um novo conteudo estruturado
#Ps: "boletimRadio" (b minusculo) é o valor atributo "name" da tag "explorertype" em opencms-modules.xml
fileicon.boletimRadio = Boletim da Rádio Assembleia
desc.boletimRadio = Edição das newsletters da Rádio Assembleia
#Descricao dos campos dentro da edicao do conteudo estruturado
#Ps: "BoletimRadio" (B maiusculo) é o valor do atributo "name" do primeiro "xsd:element" do primeiro "xsd:complexType" em "boletimRadio.xsd". Em seguida, apos o ponto, o nome de cada campo do xsd
label.BoletimRadio.boletimRadioData = Data
label.BoletimRadio.boletimRadioData.help = Data do Correspondente na Assembleia e da lista de mídias
label.BoletimRadio.boletimRadioTurno = Turno
label.BoletimRadio.boletimRadioTurno.help = Indicação do turno do Correspondente na Assembleia
label.BoletimRadio.boletimRadioCorrespondente = Correspondente na Assembleia
label.BoletimRadio.boletimRadioNotas = Notas para divulgação
label.BoletimRadio.boletimRadioAudios = Número de mídias
label.BoletimRadio.boletimRadioAudios.help = Número de mídias da lista de áudios
< ================ >
< === END CODE === >
< ================ >
3.c) Publicar arquivo
3.d) Reiniciar Strings do Open: "Visao de Administracao > area de trabalho" e clique em "Reinicializar a area de trabalho"
//////////////////////////////////////////////////////////////////////////////////////////
4, OPCAO A) CRIAR CONTEUDO ESTRUTURADO - SEM EDICAO OPENCMS-MODULES (ETAPA 2)
4.a) Entre na pasta: "/sites/default/minha_pasta"
4.b) Clique com o botão direito > "Avançado > Editar código de controle"
4.c) Localize o atributo "noNamespaceSchemaLocation" e altere o caminho do ".xsd" para "opencms://system/modules/br.gov.almg.site.portal/schemas/.xsd" (xsd principal)
4.d) Nessa mesma linha, renomeie a tag do atributo "noNamespaceSchemaLocation" para o mesmo valor do "name" do primeiro "xsd:element" encontrado do "Xsd" principal (boletimRadioGeral)
4.e) Edite as demais tags internas contendo todas os campos do xsd principal "/system/modules/br.gov.almg.site.portal/schemas/.xsd"
No fim, o seu conteúdo estruturado deve seguir o exemplo:
<============>
<=== CODE ===>
<============>
1537524000000
< ================ >
< === END CODE === >
< ================ >
Ps1: Sugestão usando o exemplo acima:
- Substituir todos 'boletimRadio' por 'meuXsd' (Marcar 'Coincidir maiúsc./minúsc.')
- Substituir todos 'BoletimRadio' por 'MeuXsd' (Marcar 'Coincidir maiúsc./minúsc.')
//////////////////////////////////////////////////////////////////////////////////////////
4, OPCAO B) CRIAR CONTEUDO ESTRUTURADO - COM EDICAO DO OPENCMS-MODULES (ETAPA 2)
4.a) Entre na pasta: "/sites/default/minha_pasta"
4.b) Crie o conteúdo estruturado atraves do botao: "Novo" > "conteudos_ALMG" > {local}* > {Schema recem-criado}
* {local} foi indicado no atributo "page" da tag "newresource" em opencms-modules:
//////////////////////////////////////////////////////////////////////////////////////////
5) TEMPLATE JSP
5.a) Na pasta: "/system/modules/br.gov.almg.site/templates"
5.b) Crie um arquivo "Novo > JSP" ou copie algum template existente
//////////////////////////////////////////////////////////////////////////////////////////
6) HTML OU PASTA DE RENDERIZACAO
6.a) Retorne a pasta: "/sites/default/minha_pasta"
6.b) Html de renderizacao:
6.b.i) Crie o html de renderizacao ("Novo > Outras opções > Página com texto livre" ou copie algum html existente) e clique em "Continuar"
6.b.ii) Nomeie como "index.html" (nao se preocupe com o campo "Template") e clique em "Concluir"
6.b.iii) Clique com o botao direito no html, va em "Propriedades" e "Propriedades individuais
6.b.iv) Altere o campo "template" e indique o caminho do template que voce criou "/system/modules/br.gov.almg.site/templates"
6.c) Pasta de renderizacao
6.c.i) Clique com o botao direito na pasta, va em "Propriedades" e "Propriedades completas"
6.c.ii) Altere o campo "template" e indique o caminho do template que voce criou "/system/modules/br.gov.almg.site/templates"
Ps: - Use a propriedade "template-elements" na pasta para que todos os html internos herdem o mesmo template de renderização
- A propriedade "template" citada em um arquivo interno de uma pasta que já tenha "template-elements" irá sobreescrever o template de renderização heradado
//////////////////////////////////////////////////////////////////////////////////////////
7) EDICAO DO TEMPLATE
7.a) No template JSP recem-criado, procure a tag "cms:contentload" e coloque o caminho dos conteúdos estruturados ("/sites/default/minha_pasta")
7.b) Dentro do contentload, chame os campos do seu xsd
<============>
<=== CODE ===>
<============>
< ================ >
< === END CODE === >
< ================ >
* O valor do atributo "param" pode ser o caminho fisico "/sites/default/minha_pasta/meu_html.html" ou uma variavel que pega o arquivo da propria URL: %(opencms.filename)