mar 4
Cache de Javascript e CSS no Liferay – Como Remover
icon1 lucas | icon2 Liferay | icon4 04 03 2010| icon3Não há comentários »

O Liferay mantém um cache de javascripts já carregados e também de CSS. Fato muito bom quando se está com o sistema pronto, pois aumenta o desempenho do sistema.

Mas essa configuração pode atrapalhar, e muito, na hora que estamos configurando o Liferay, adequando para o nosso uso.

Existe uma maneira de eliminar esse armazenamento de cache e uma outra maneira de configurar para que o Liferay não armazene mais esse tipo de informação.

Para eliminar o cache apenas apague as pastas temp e work que estão no diretório liferay-portal-5.2.3\tomcat-6.0.18.

Para configurar o não armazenamento desse tipo de informação, adicione as seguintes linhas no arquivo portal-ext.properties, localizado no diretório: liferay-portal-5.2.3\tomcat-6.0.18\webapps\ROOT\WEB-INF\classes:

# limpar cache de css e javascript
theme.css.fast.load=false
theme.images.fast.load=false
javascript.fast.load=false
javascript.log.enabled=true
layout.template.cache.enabled=false
browser.launcher.url=
last.modified.check=false
velocity.engine.resource.manager.cache.enabled=false
com.liferay.portal.servlet.filters.cache.CacheFilter=false

Feito isso o seu sistema ficará com um desempenho menor mas facilitará na hora que estiver configurando para a sua necessidade.

mar 4
Instalação do Liferay no Linux – Red Hat
icon1 lucas | icon2 Liferay | icon4 04 03 2010| icon31 comentário »
./Catalina.sh run: executa o servidor tom cat e exibe no console as informações sobre o início do servidor tomcat
./Catalina.sh stop: para totalmente a atividade do servidor.
./Catalina.sh start: inicia o servidor, mas não exibe informações no console.

Nos nossos artigos já narramos varias etapas para configuração do Liferay no ambiente Linux.

Agora iremos descrever como proceder desde o download até a configuração e depois a inicialização.

Primeiramente precisamos fazer o download da versão do Liferay com o Tomcat, que é a qual utilizaremos no exemplo. O comando linux abaixo baixará a versão 5.2.3 com o tomcat:

wget http://downloads.sourceforge.net/project/lportal/Liferay%20Portal/5.2.3/liferay-portal-tomcat-5.5-5.2.3.zip?use_mirror=nchc

Executado o comando o servidor começará a baixar o Liferay e quando terminar será preciso descompactar, utilize o comando abaixo:

gunzip -portal-tomcat-5.5-5.2.3.zip

Descompactado, precisamos agora modificar a base de dados que ele utilizará, que no nosso exemplo será o MySQL. Para tanto, crie uma base de dados com o nome lyferay e altere o seguinte arquivo no Liferay:

liferay-portal-5.2.3\tomcat-6.0.18\webapps\ROOT\WEB-INF\classes\portal-ext.properties

Insira o seguinte código:

# MySQL - Servidor Synchro
#
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost:3306/liferay?emulateLocators=true&useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=root
jdbc.default.maxActive=60

Dessa maneira, o utilizaremos a base de dados com o usuário root e a senha root e o nome da base de dados será liferay, altere esses dados para a sua necessidade.

Agora podemos inicializar o servidor que o Liferay irá povoar as tabelas.

Para iniciar o servidor em Linux, acesse o seguinte diretório:

liferay-portal-5.2.3\tomcat-6.0.18\bin\

e utilize os comandos abaixo:
Catalina.sh run: executa o servidor tom cat e exibe no console as informações sobre o início do servidor tomcat
shutdown.sh: para totalmente a atividade do servidor.
startup.sh: inicia o servidor, mas não exibe informações no console.

Pronto,  o seu servidor Liferay está instalado no Linux.

Para mais informações acesse esses nossos artigos:

mar 3
Customizando o Liferay – CSS
icon1 lucas | icon2 Geral, Liferay | icon4 03 03 2010| icon3Não há comentários »

A customização no Liferay

Uma das maiores vantagens do Liferay está na sua alta capacidade de customização. Na Weblibre, todos os projetos ficam do modo como o cliente deseja, totalmente adaptado para a sua necessidade.

A customização do Liferay pode ser feita de várias maneiras, uma delas é a adptação dos CSS Cascading Style Sheets ou folha de estilos ), que pode ser entendido, de forma bem simples, como um padrão para toda a aparencia do portal, seja suas cores, suas fontes ou até mesmo as suas imagens.

Com a utilização apropriada dos CSS garantimos que as páginas contenham o mesmo estilo, mantendo assim a identidade visual da empresa, proporcionando uma maior satisfação do nosso cliente, pois seu portal Liferay pode ser facilmente adaptado as cores de sua empresa, de suas intranet’s ou até a de outros portais que estejam associados a empresa contratante.

Outra enorme vantagem da utilização de CSS é sua rápida modificação, pois normalmente basta apenas a modifcação em uma folha de estilos e podemos alterar totalmente as configurações estéticas do portal Liferay.

Onde encontrar os CSS do Liferay

Os CSS’s do portal Liferay podem ser encontrados no diretório /{diretorio_tomcat}/webapps/ROOT/html/{tema_atual}/css.

Nessa pasta estão todos os arquivos CSS que o Liferay utiliza, e a modificação desses arquivos já altera a forma como o site é exibido.

Exemplo do Código CSS do arquivo custom.css

/* ---------- Banner ---------- */

#banner {
background: transparent url(../images/common/banner_bg.jpg) no-repeat center 20px;
height: 80px;
top: -1px;
}

#banner h1.logo {
display: block;
float: left;
font-size: 2em;
left: 5%;
margin: 6px 20px 0px 0px;
margin-top: 12px;
padding-top: 20px;
padding: 0;
position: absolute;
}

Como descobrir qual atributo alterar?

Uma das maneiras de descobrir a função de uma caracteristica do css que se deseja modificar é a utilização de ferramentas. Essas ferramentas podem ser variadas e algumas são gratuitas.

Abaixo alguns dos programas que utilizamos aqui na WebLibre para customizar nosso Liferay:

  • Web Developer plugin: esse plugin para Mozilla Firefox é gratuito e permite a visualização de varios recursos que o navegador utiliza para exibir a página. Entre eles estão os recursos de CSS. O plugin pode ser baixado diretamente da página do desenvolvedor:

mar 2
Problema permissões no resultado do portlet Busca
icon1 lucas | icon2 Liferay | icon4 02 03 2010| icon32 comentários »

Um BUG grave do Liferay na versão 5.2.3 é relacionado a o resultado do portlet de Busca.

Ele devolve o resultado baseado em um parametro de busca mas não leva em consideração as permissões sobre aquele resultado, ou seja, se o usuário pode ou não ver aquele título.

Essa situação é bastante indesejada e não foi proposta nenhuma mudança simples que solucionasse esse problema.

Nós realizamos um workaround e realizamos algumas alterações para que essa permissão fosse respeitada.

Em sua nova versão, supostamente chamada de 6.0 o Liferay corrige esse problema, mas replicar as alterações que a versão nova utilizou para corrigir o problema é bastante inviável.

Funcionamento do Portlet de Busca:

Basicamente o do portlet de busca realiza uma chamada aos portlets que desejamos realizar a busca e esses portlets são responsáveis pela devolução dos itens relevantes a palavra chave utilizada.

O Portlet de busca então se encarrega de listar essas opções e mostrar ao usuário todos os resultados que lhe foram entregues.

Nossa Solução:

No nosso workaround descobrimos que a melhor maneira de implementar isso é continuar recebendo todos os resultados relevantes e realizar o filtro após, criando uma outra lista de resultados, agora sim levando em conta as permissões.

Como Implementamos:

Podemos resumir com a sequencia de passos abaixo:

  1. Recuperamos o elemento e verificamos o seu tipo, por exemplo: Journal
  2. Recuperamos o link do elemento
  3. Recuperamos do link artefatos interessantes para que possamos recuperar maiores informações sobre o conteúdo e assim realizar o teste das permissões.
  4. Utilizamos os dados recuperados para recuperar as informações relevantes do conteúdo.
  5. Utilizar o metodo que checa as permissões para o conteúdo e o usuário logado no sistema, por exemplo: JournalArticlePermission.contains();
  6. Utilizamos normalmente o PermissionChecker do Portlet que devolveu o conteúdo.
  7. Se o conteúdo puder ser exibido ele será adicionado a nova lista, se não ele é descartado.

Utilizamos essa lista no lugar da antiga e não necessitamos mudar mais nada no código.

mar 2
Remover opção para busca em outras Organizações/Comunidades
icon1 lucas | icon2 Liferay | icon4 02 03 2010| icon3Não há comentários »

O portlet de busca do Liferay pode ser visto como um agregador de resultados de outros portlets, como é o caso do conteúdo web ou um post em um forum.

Analisando o código do portlet podemos observar bem essa funcionalidade, pois ele “pede” aos portlets que retornem os resultados de busca em relação ao termo pesquisado.

Surgiu a necessidade de realizarmos essa busca somente na organização em que o portlet está “instalado”, não exibindo resultados de outras Organizações/Comunidades.

Essa modificação foi solucionada excluindo o combo box que exibia essa opção de seleção de organizações. Realizamos da seguinte maneira:

No arquivo html\taglib\ui\search\start.jsp remova o select na linha #49 – #52:

<select name=”<%= namespace %>groupId”>
<option value=”0″ <%= (groupId == 0) ? “selected” : “” %>><liferay-ui:message key=”everything” /></option>
<option value=”<%= group.getGroupId() %>” <%= (groupId != 0) ? “selected” : “” %>><liferay-ui:message key=’<%= “this-” + (group.isOrganization() ? “organization” : “community”) %>’ /></option>
</select>

<select name=”<%= namespace %>groupId”>

<option value=”0″ <%= (groupId == 0) ? “selected” : “” %>><liferay-ui:message key=”everything” /></option>

<option value=”<%= group.getGroupId() %>” <%= (groupId != 0) ? “selected” : “” %>><liferay-ui:message key=’<%= “this-” + (group.isOrganization() ? “organization” : “community”) %>’ /></option>

</select>

Salve essa alteração e atualize. Veja que agora não existe mais a opção para o usuário.

mar 2
Erro na geração das miniaturas de imagens (thumbnails) do Liferay – Como corrigir
icon1 lucas | icon2 Liferay | icon4 02 03 2010| icon3Não há comentários »

Existe um BUG no Liferay na versão 5.2.3 que ainda não foi solucionado, mas o erro que ele gera pode ser corrigido.

Quando modificamos o tamanho das miniaturas, como o exemplo que demos nesse artigo [http://www.weblibre.com.br/como-enviar-arquivos-maiores-que-2mb-no-liferay/] podemos gerar um erro no armazenamento das preferencias do portlet no banco de dados do Liferay.

Esse erro faz com que as imagens, na listagem, sejam exibidas ou sobrepostas ou com o seu tamanho original, distorcendo totalmente o layout do portal.

Para remediar esse problema, a forma mais rápida é a alteração de um dado no banco de dados do liferay.

Para isso, faça o seguinte:

  1. Exporte o resultado da seleção da coluna preferences da tabela portletpreferences.
    OBS.: Para exportar o resultado de uma seleção, podemos usar o comando SQL: SELECT … INTO OUTFILE ‘nome_do_arq’;
  2. Abra esse arquivo e procure pelos dados:
    i)”<name>sc.image.thumbnail.max.height</name><value>150</value>” e verifique se o valor que está configurado é válido ou está de acordo com o que deseja.
    ii) “<name>ig.image.thumbnail.max.dimension</name><value>150</value>”
    e também verifique o seu valor.
  3. Se estiver com um valor errado, atualize a sua tabela com o valor correto
  4. Reinicie o servidor

Após essa sequencia de ações o problema deve ser resolvido, mas infelizmente se ele voltar a acontecer, devemos proceder da mesma maneira.

mar 2
Falha no redirecionamento do Liferay – Como proceder
icon1 lucas | icon2 Liferay | icon4 02 03 2010| icon3Não há comentários »

Pode ocorrer uma situação em que o Liferay perde o redirecionamento de suas páginas, principalmente quando tentamos navegar acessando os links como “Voltar”, “Página Inicial” e etc…

Essa falha pode ocorrer por vários motivos, um deles, o mais simples de ser resolvido e por vezes o último a ser procurado é a configuração realizada no “Painel de Controle -> Configurações -> Home URL”.

Nesse campo, se colocarmos uma URL errônea, ele mudará todos os links que redirecionam a algo relacionado a página inicial, como um botão “Voltar” por exemplo, e aparecerá que a URL não existe.

Para resolver esse problema, apenas insira a informação correta ou até mesmo deixe o campo em branco e salve as alterações.

O sistema deve funcionar normalmente.

mar 2
Como remover opção de expirar conteúdos no Liferay
icon1 lucas | icon2 Liferay | icon4 02 03 2010| icon3Não há comentários »

Já descrevemos como remover alguns botões relacionados a ações em conteúdos web, agora o objetivo é a remoção do botão “Expirar” localizado acima da listagem dos conteúdos na página de Conteúdos Web (Painel de Controle -> Conteúdos Web).

Esse botão, por padrão, permite expirar um ou mais conteúdos, mas se o usuário não possui essa permissão ele barra a ação dizendo justamente isso, que o usuário não possui as permissões requeridas.

Na nossa aplicação desejamos que apenas um tipo de usuário, possuidor de um papel que chamaremos de “Aprovador”, portanto para os outros usuários não é interessante que apareça esse botão, visto que eles não poderão mesmo ter essa ação.

Para realizar essa ação teremos que trabalhar no JSP: webapps\ROOT\html\portlet\journal\view.jsp.

Ele é o responsável pela listagem dos portlets e de tudo que a primeira página de “Painel de Controle -> Conteúdo Web” exibe.

Altere adicione o seguinte código na linha #125:

boolean hasExpirePermission = false;
boolean isAdmin = false;
if (request.isUserInRole("Administrator"))
isAdmin = true;
boolean isAprovador = false;
if (request.isUserInRole("NomeDoPapelDeAprovador"))
isAprovador = true;
if (isAdmin||isAprovador){
hasExpirePermission = true;
}

Salve essas alterações e perceba que o botão não é exibido para usuários regulares.

mar 1
Como enviar arquivos maiores que 2mb no Liferay
icon1 lucas | icon2 Liferay | icon4 01 03 2010| icon31 comentário »

Por padrão, o Liferay na versão 5.2.3 não aceita arquivos (imagens, documentos, ect) maiores que 2 mb, mas isso pode ser alterado com uma simples configuração.

Vá em Painel de Controle -> Administração do Servidor -> Upload de Arquivos e perceba que temos várias configurações.

O valor é em bites e se configuramos com o valor 0 (zero) ele aceita qualquer tamanho.

Repare que podemos configurar também o tamanho tanto em bites de um thumbnail quanto de altura e largura. Essa configuração é interessante quando queremos que a listagem das imagens seja mais rápida.

mar 1
Como resolver falha na indexação dos dados no Liferay – Ferramentas Administrativas
icon1 lucas | icon2 Liferay | icon4 01 03 2010| icon3Não há comentários »

Existem situações que o Liferay perde os índices dos dados armazenados no banco de dados, ocasionando falhas na listagem dos usuários ou até mesmo de comunidades e organizações.

Se observarmos o log, veremos que ele acusa uma falha na indexação dos dados. Isso normalmente ocorre quando estamos limpando as pastas temporárias do Liferay, a fim de eliminar algum tipo de cache errado por exemplo.

O diretório liferay-portal-5.2.3/DATA é o que normalmente armazena esses dados, tanto é que a sua exclusão, fatalmente criará uma situação como a exemplificada anteriormente.

Para corrigir esse erro podemos utilizar as Ferramentas Administrativas do Liferay, em Painel de Controle -> Administração do servidor. Lá podemos observar diversas ações para o sistema e a que interessa agora é a “Reindexar todos índices de busca”.

Execute essa opção e tente novamente fazer a listagem dos usuários que estava com erro no nosso exemplo anterior. Observe que agora funciona normalmente.

Essas Ferramentas são muito úteis não só para corrigir falhas mas também para melhorar o desempenho do sistema, é recomendada a execução de algumas em determinados momentos, como é o caso da “Rodar o garbage collector para liberar memória” e “Limpar o cache do banco de dados”.

« Página Anterior Próxima Página »