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)