Desenvolvendo Um Tema de Liferay - Traduzido
Desenvolvendo Um Tema de Liferay - Traduzido
Desenvolvendo Um Tema de Liferay - Traduzido
Como desenvolvedor, voc deseja que seu site comunique suas idias de forma clara e eficaz.
Voc no deseja que o design do seu site iniba os usurios de interagir com seu contedo.
aqui que os temas entram em jogo. Os temas permitem que voc tome um controle criativo e
conte a histria que deseja contar com seu site. Eles lhe do controle sobre a aparncia do seu
site, at os mnimos detalhes.
Ao abordar o design do tema, tenha em mente o pblico-alvo, a mensagem que voc est
tentando comunicar e a finalidade do site. O design do tema ajuda a responder a essas
perguntas.
Este Caminho de Aprendizagem leva voc a desenvolver um tema para o Lunar Resort de
Liferay usando a linguagem do modelo Freemarker. Voc aprender como estilo seu tema com
CSS, como torn-lo receptivo para dispositivos mveis, como alavancar cones do Bootstrap e
Font Awesome no seu tema e como implementar configuraes de tema configurveis.
hora de comear!
Configurando o Tema
Liferay Portal: 6.2 - Documentao oficial: desenvolvedor
Nesta parte do Caminho de Aprendizagem, voc criar as bases para o tema Lunar Resort. Voc
aprender o bom fluxo de trabalho e estrutura de diretrios necessrios para criar um tema.
Finalmente, voc modificar os modelos padro portal/_normal.ftl e navigation.ftl
para corresponder ao mock up do Lunar Resort.
Um mock up de um tema serve como um guia para o tema final que ser:
Para comear, baixe os recursos que voc precisar para completar cada exerccio e
descompacte-os em uma pasta de sua escolha.
Agora voc pode seguir em frente e entrar diretamente na criao do projeto de tema!
Desenvolvendo um Tema de Liferay Criando um Projeto de Tema
O resto deste caminho de aprendizagem assume que voc seguiu as instrues para configurar
o Liferay IDE ou o Liferay Developer Studio. Se voc fez isso, voc est pronto para comear!
Selecione Arquivo Novo ...
Nota: Esta etapa assume que voc baixou e descompactou os recursos necessrios para
configurar o tema. Isso foi mencionado na introduo a esta etapa. A estrutura de diretrio do
seu tema deve refletir ...
Nesta seo, voc adicionar alguns toques para portal_normal.ftl e navigation.ftl para
corresponder a maquete final para o Lunar Resort. Abra portal_normal.ftl e encontre o <body
class = "$ {css_class}"> ...
Criando um Projeto Tema tico
Liferay Portal: 6.2 - Documentao oficial: desenvolvedor
O resto deste caminho de aprendizagem assume que voc seguiu as instrues para configurar
o Liferay IDE ou o Liferay Developer Studio. Se voc fez isso, voc est pronto para comear!
Nota: A primeira vez que voc cria um projeto, verifique se voc est online. Em segundo
plano, o SDK dos plugins do Liferay faz download de vrios arquivos JAR necessrios. Isso
mantm o plugin inicial do SDK baixar pequeno, mas pode demorar vrios minutos para criar
seu primeiro projeto. Projetos subseqentes so criados quase que instantaneamente.
Agora voc ver seu projeto no Package Explorer esquerda. O que voc acabou de fazer
criar um tema Liferay em branco, baseado no tema _syled de Liferay.
Em vez de criar um tema a partir do zero, melhor usar um tema de base Liferay como ponto
de partida para garantir uma compatibilidade total. As alteraes feitas no tema substituem as
configuraes padro do tema _syled.
Nota: Esta etapa assume que voc baixou e descompactou os recursos necessrios para
configurar o tema. Isso foi mencionado na introduo a esta etapa.
A estrutura do diretrio do seu tema deve refletir aquela abaixo quando estiver concluda:
lunar-resort-theme/
docroot/
_diffs/ (subfolders not created by default)
css/
images/
templates/
css/ - aui - (many directories) - _aui_custom.scss -
_aui_variables.scss - _liferay_custom.scss
application.css
aui.css
base.css
custom.css
dockbar.css
extras.css
layout.css
main.css
navigation.css
portlet.css
images/
(many directories)
js/
main.js
templates/
init_custom.ftl
navigation.ftl
portal_normal.ftl
portal_pop_up.ftl
portlet.ftl
WEB-INF/ - liferay-look-and-feel.xml
liferay-plugin-package.properties
Os temas so baseados em diferenas dos temas em que se baseiam. Quando voc criou o
projeto, voc selecionou o tema _syled. Uma cpia do cdigo deste tema, portanto, existe na
maioria dessas pastas. Isso garante que voc tenha um estilo padro para todos os elementos
da pgina. medida que voc escreve seu tema, voc definir apenas as diferenas entre o
que deseja e o que o tema subjacente j fornece.
Suas edies devem ser feitas nos arquivos no diretrio _diffs, que, em seguida, transferem
para os arquivos no diretrio pai. Por esse motivo, o diretrio na pasta _diffs deve refletir o
diretrio pai. Se as estruturas no coincidem, as alteraes que voc faz no sero aplicadas.
Para manter os arquivos de base inalterados, voc s deve adicionar os arquivos que deseja
editar para o diretrio _diffs.
Como uma prtica recomendada, todo o seu estilo CSS deve entrar em um arquivo custom.css
no diretrio _diffs / css /. Como est carregado por ltimo, todos os estilos colocados em
custom.css substituem os estilos no tema base principal. Ao manter todos os seus estilos em
um arquivo, a manuteno torna-se um processo mais fcil.
Agora que voc conhece a estrutura do tema e o fluxo de trabalho de desenvolvimento, voc
pode comear a trabalhar em seu tema.
1. Clique com o boto direito do mouse na pasta _diffs no Package Explorer e selecione
New Folder.
2. Com a pasta _diffs selecionada, digite css para o nome da pasta e clique em Concluir.
3. Repita as etapas 1 e 2 para criar as imagens restantes e os diretrios dos modelos.
4. Copie o arquivo custom.css do diretrio docroot / css / para o diretrio _diffs / css.
Todas as alteraes feitas no arquivo custom.css no diretrio _diffs so aplicadas no
arquivo espelhado.
5. Copie o _aui_variables.scss para o diretrio diffs / css.
6. Copie init_custom.ftl, navigation.ftl e portal_normal.ftl do diretrio docroot /
templates para o diretrio diffs / templates.
Agora voc tem o ponto de partida para o seu tema. Existem alguns itens de limpeza adicionais
para cuidar antes de passar para a prxima seo.
$ BkColor: #FFF;
$ ThemeMainColor: # DF5946;
Se voc no passou pelo MVC Learning Path, voc deve verificar se voc est interessado em
desenvolver aplicativos para o Liferay.
Agora que a limpeza est terminada, voc pode examinar o HTML para portal_normal.ftl em
seguida.
A Estrutura HTML do portal_normal.ftl
Liferay Portal: 6.2 - Documentao oficial: desenvolvedor
Veja a figura abaixo para ver como ser a estrutura HTML concluda:
Figura 1: O HTML dividido em sees.
A estrutura HTML dividida em trs sees principais: Banner, Contedo e Rodap. O Banner
contm o logotipo do site, seu nome, o ttulo da pgina e a navegao principal. O contedo
<div> contm as migalhas de mapas para o site e os portlets na pgina. Finalmente, o rodap
detm o 'powered by Liferay' e as ligaes de redes sociais. As trs sees principais esto
contidas em um invlucro <div> que usado para ajustar a largura do site.
Agora que voc est familiarizado com a estrutura HTML, voc pode fazer algumas
modificaes nos modelos de tema a seguir.
Modificando modelos de tema
Liferay Portal: 6.2 - Documentao oficial: desenvolvedor
Nesta seo, voc adicionar alguns toques para portal_normal.ftl e navigation.ftl para
corresponder ao mock up final para o Lunar Resort.
Seu tema agora tem o dockbar moderno que est no tema clssico de Liferay.
<#if! Is_signed_in>
<A href = "$ {sign_in_url}" dados-redirecionamento = "$ {is_login_redirect_
Obrigatrio? String} "id =" sign-in "rel =" nofollow "> $ {sign_in_text} </a>
</ # If>
O link de login padro foi removido, mas voc o substituir na prxima etapa.
3. Encontre o <@ liferay.dockbar /> cdigo e remova a instruo <#if is_signed_in> e a tag
de fechamento </ # if> que o envolve.
O cdigo atualizado agora exibe o Dockbar se voc est logado ou no. Se voc estiver
desconectado, o Dockbar simplificado e mostra um link de login. Isso ser til mais tarde no
caminho de aprendizagem quando o tema for tornado receptivo.
4. Insira o seguinte cdigo logo acima da tag </ div> de fechamento para o contedo
<div>:
5. Salve o arquivo.
<#if nav_item.isSelected()>
<#assign nav_item_attr_selected = "aria-selected='true'"
/>
<#assign nav_item_css_class = "${nav_item_css_class}
selected active" />
</#if>
<#if nav_item.hasChildren()>
<#assign nav_item_attr_has_popup =
"aria-haspopup='true'" />
<#assign nav_item_caret = "<b class='icon-caret-down'>
</b>" />
<#assign nav_item_css_class = "${nav_item_css_class}
dropdown" />
<#assign nav_item_link_css_class = "dropdown-toggle" />
</#if>
<#if nav_item.hasChildren()>
<ul class="dropdown-menu child-menu" role="menu">
<#list nav_item.getChildren() as nav_child>
<#assign nav_child_attr_selected = "" />
<#assign nav_child_css_class =
"lfr-nav-item" />
<#if nav_item.isSelected()>
<#assign nav_child_attr_selected
= "aria-selected='true'" />
<#assign nav_child_css_class =
"selected" />
</#if>
<li class="${nav_child_css_class}"
id="layout_${nav_child.getLayoutId()}"
${nav_child_attr_selected}
role="presentation">
<a aria-labelledby=
"layout_${nav_child.getLayoutId()}"
href="${nav_child.getURL()}"
${nav_child.getTarget()}
role="menuitem">
${nav_child.getName()}</a>
</li>
</#list>
</ul>
</#if>
</li>
</#list>
</ul>
</nav>
O cdigo atualizado uma duplicao do cdigo antigo com algumas adies. A mudana
principal as classes de menu filho atualizadas: os itens do menu filho agora so suportados.
Alm disso, uma classe chamada "Ativo" destaca a pgina atual.
7. Salve o arquivo.
Voc tem os modelos bem envolvidos, para que voc possa avanar para implantar o prximo
tema.
1. Uma vez que seu servidor seja iniciado, selecione o tema do Package Explorer, arraste-
o para baixo e solte-o no topo do servidor para implantar seu tema.
2. Depois que seu tema foi implantado, faa login no Portal e goto Admin
Administrao do Site Pginas.
3. Certifique-se de que as Pginas Pblicas esto selecionadas e role para o ttulo dos
Temas Disponveis.
4. Selecione o boto de opo para o tema Lunar Resort e clique em Salvar.
O tema agora aplicado! Antes de voc olhar para isso, voc precisa cuidar de mais
alguns itens de limpeza.
5. Selecione o logotipo no menu direita e desmarque Mostrar nome do site.
6. Clique em Procurar e selecione o lunar-resort-logo.png no diretrio _diffs / images do
Lunar Resort Theme.
7. Clique em Salvar.
8. Depois de receber a mensagem de sucesso, volte para a pgina de boas-vindas.
Voc ver agora que seu novo tema est no lugar. Deve ser semelhante figura abaixo:
O tema parece quebrado no momento, mas isso esperado. Nas sees a seguir, voc corrigir
isso. Isso mostra o ponto de partida que o tema base fornece.
Voc instalou e aplicou com sucesso seu novo tema! Na prxima seo, voc aprender como
importar recursos para o seu tema.
Importando recursos para o seu tema
Liferay Portal: 6.2 - Documentao oficial: desenvolvedor
Voc criou o tema para o Lunar Resort, mas parece muito vazio no momento. Voc precisa de
algum contedo padro para ir com ele, ento parece bom quando instalado pela primeira
vez. H alguns mtodos que voc pode usar para importar recursos com seu tema. Voc pode
criar um arquivo archive.lar, que importa o LAR com o tema, ou voc pode criar um arquivo
sitemap.json para manter seu layout e preencher seu contedo de uma estrutura de diretrio.
Ambos os mtodos so boas opes, mas existem algumas desvantagens ao usar o mtodo
LAR. Os LARs dependem da verso, ento, atualizar para uma nova verso do Liferay significa
recriar o LAR. Alm disso, quaisquer alteraes feitas no contedo exigem que o LAR seja
recriado.
O sitemap.json, por outro lado, funciona em qualquer verso do Liferay. Voc pode, assim,
implementar mudanas com um simples deslocamento.
Nesta seo, voc aprender a usar o Importador de recursos com o tema Lunar Resort usando
um sitemap.json. Para importar contedo com o Importador de recursos, voc precisar
primeiro criar a estrutura de diretrio apropriada.
Modificando modelos de tema Configurando a Estrutura de Diretrio para o Importador de
Recursos
Um diretrio de importadores de recursos em branco foi criado com seu tema. Ao invs de
adicionar cada arquivo individualmente e criar todas as pastas restantes, v em frente e exclua
o existente importador de recursos ...
O arquivo sitemap.json define o layout para o contedo da Web, pginas e portlets em seu site.
Como a extenso do arquivo sugere, sitemap.json usa a sintaxe JSON, ento, se voc est
familiarizado com JSON, voc ...
Definindo liferay-plugin-package.properties
Um diretrio resources-importer em branco foi criado com seu tema. Em vez de adicionar
cada arquivo individualmente e criar todas as pastas restantes, v em frente e exclua o
diretrio resources-importer existente.
lunar-resort-theme/
docroot/WEB-INF/src/
resources-importer/
document_library/
documents/
(documents and media files)
journal/
articles/
(web content articles)
structures/
templates/
Os artigos de contedo Web podem ser escritos em HTML ou XML e colocados na pasta journal
/articles/. As imagens includas no contedo da Web so referenciadas usando o nome do
arquivo na pasta document_library/documents. O contedo Web faz referncia imagem
usando o seguinte cdigo:
Src = "[$ FILE = filename.filetype $]"
Esse todo o trabalho de preparao que precisa ser completado para a maioria dos
contedos web. Para contedos web mais avanado que requeiram estruturas e modelos,
existem algumas etapas adicionais que voc precisar seguir.
Para o carrossel, o contedo web adicionado sua prpria pasta carousel dentro da pasta
journal/articles/. A estrutura ento adicionada pasta /structures. Finalmente, o modelo de
correspondncia adicionado pasta /templates e colocado em sua prpria pasta de
carousel. O diretrio final do carrossel corresponde seguinte estrutura:
journal/
articles/
carousel/
carousel.xml
(more web content articles)
structures/
carousel.xml
templates/
carousel/
carousel.vm
importante que voc crie a estrutura do arquivo desta forma para que o contedo da web
seja reconhecido.
O arquivo sitemap.json define o layout para o contedo da Web, pginas e portlets em seu site.
Como a extenso do arquivo sugere, o sitemap.json usa a sintaxe JSON, ento, se voc estiver
familiarizado com a JSON, voc deve poder navegar at o sitemap bastante fcil. Se voc no
est familiarizado com a sintaxe JSON, no se preocupe, o sitemap ser explicado com mais
detalhes.
Uma vez que o arquivo sitemap.json j foi criado quando voc copiou o contedo da pasta
resources-importer, voc no precisa fazer nada para implementar. Aqui est o que ele faz.
O cdigo abaixo adiciona uma pgina Welcome e About Us usando o modelo de layout padro
e preenche as pginas com artigos de contedo da Web:
{
"LayoutTemplateId": "1_column",
"Layouts": [
{
"Nome": "Bem-vindo",
"Ttulo": "Bem-vindo",
"FriendlyURL": "/ home",
"Colunas": [
[
"Carousel.xml",
"Bem-vindo ao Lunar Resort.html",
"Amenities.html",
"2 column description.html"
]
]
},
{
"Nome": "Sobre ns",
"Ttulo": "Sobre ns",
"FriendlyURL": "/ about-us",
"Colunas": [
[
"Sobre Ns Info.html"
]
]
}
O sitemap comea definindo uma identificao de modelo de layout padro para as pginas.
Voc pode encontrar IDs de modelo de layout na pasta layouttpl em seu pacote Liferay. Em
seguida, as pginas, referidas como layouts no sitemap, so organizadas. A pgina recebe um
nome, um ttulo e um URL amigvel.
O layout abaixo adiciona uma pgina Activities com uma pgina filha Rover Racing e as
preenche com contedo Web:
{
"Nome": "Atividades",
"Ttulo": "Atividades",
"FriendlyURL": "/ atividades",
"Colunas": [
[
"Atividades Info.html",
"Atividades Links.html"
]
],
"Layouts": [
{
"Nome": "Rover Racing",
"Ttulo": "Rover Racing",
"FriendlyURL": "/ rover-racing",
"Colunas": [
[
"Rover Racing Article.html"
]
]
},
Como voc pode ver, para criar uma pgina filha, voc usa a mesma sintaxe de layouts que
voc usaria para criar uma pgina pai. A configurao de layouts para a pgina filho colocada
dentro da configurao da pgina principal.
O cdigo a seguir adiciona dois portlets pgina e define seu prprio modelo de layout.
{
"Nome": "Colaborao",
"Ttulo": "Colaborao",
"FriendlyURL": "/ colaborao",
"LayoutTemplateId": "2_columns",
"Colunas": [
[
{
"PortletId": "36"
}
],
[
{
"PortletId": "115"
}
]
]
}
O cdigo a seguir cria uma pgina oculta no menu de navegao e adiciona um artigo de
contedo da web e um portlet personalizado para a pgina.
{
"Nome": "Reserva",
"Ttulo": "Reserva",
"FriendlyURL": "/ reservation",
"Escondido": "verdadeiro",
"Colunas": [
[
"Formulrio de Reserva.html",
{
"PortletId": "guestbook_WAR_guestbookportlet"
}
]
]
}
Portlets plugins so definidos da mesma forma que os portlets principais, como o portlet Web
Content Display, so definidos e suas IDs so definidas em seus prprios arquivos portlet.xml.
Eles seguem um padro fcil de lembrar: portletName_WAR_projectName. Para que o portlet
seja atribudo a uma ID, ela deve ser implantada primeiro. Voc cuidou disso na ltima seo
do Caminho de Aprendizagem.
Agora voc deve ter uma melhor compreenso do arquivo sitemap.json. H um ltimo arquivo
para configurar, liferay-plugin-package.properties, com o qual voc trabalhar na prxima
seo.
Definindo liferay-plugin-package.properties
Resource-import-target-class-name = com.liferay.portal.model.Group
Importador de recursos-importador-alvo = convidado
required-deployment-contexts=\resources-importer-web
Isso exige que o plug-in resources-importer-web seja instalado para que o tema seja
implantado. Se o resources-importer-web no estiver instalado, o tema ser colocado em
espera at o plugin ser instalado. L voc tem isso! Todos os recursos esto prontos para serem
implantados com o tema.
4. Faa o Redeploy do tema Lunar Resort e atualize o navegador para ver as mudanas.
Agora que seu tema tem essas pginas iniciais e contedo, voc pode desativar o Resources
Importer. Se voc no fizer isso, as pginas, contedos web e documentos sero reimportados
desnecessariamente e problemas de referncia de ativos podem ocorrer quando voc
reimplantar seu tema. Para desativar o Resources Importer, siga estas etapas:
required-deployment-contexts=\
resources-importer-web
resources-importer-target-class-name=com.liferay.portal.model.Group
resources-importer-target-value=Guest
Como voc pode ver, o Resources Importer no muito complicado uma vez que voc quebre
em pedaos individuais e serve como uma maneira eficaz de organizar seu tema com contedo
e pginas. Na prxima parte do Caminho de Aprendizagem, voc aprender a modelar seu
tema usando CSS.
Parei na pgina
https://customer.liferay.com/pt/documentation/6.2/develop/learning-
paths/themes/-/official_documentation/themes/styling-your-theme-with-css