set 28
Prepare-se para o Novo ENEM com o melhor material
icon1 admin | icon2 apostilas, enem | icon4 28 09 2009| icon3Não há comentários »

 

O melhor material de preparação para o novo ENEM

Livro com mais de 370 questões dos últimos 5 anos + DVD com Aula Show do Professor Pachecão!

Todas as questões gabaritadas e comentadas com suas respectivas habilidades e competências.

Apenas R$49,90 em até 5 vezesfrete grátis para todo o Brasil. Aproveite essa promoção!

Atenção: O pagamento é feito através do sistema PagSeguro da UOL. Isso significa que terá total segurança no pagamento com todos os cartões de crédito, boleto e transferência bancária. Se optar por cartão de crédito, pode parcelar em até 5 vezes. O prazo de entrega é de até 5 dias úteis.

Apenas R$49,90 em até 5 vezesfrete grátis para todo o Brasil. Aproveite essa promoção!

set 23
Dicas do Liferay
icon1 lucas | icon2 Liferay | icon4 23 09 2009| icon31 comentário »

Durante a configuração do Liferay, utilizamos alguns comandos em Linux Red Hat e MySQL que são muito importantes devido a frequencia com que aparecem, são eles:

Red Hat

cd: Efetua a mudança de diretório, se não especificar qual ele muda para o /home
ls: faz uma listagem dos arquivos e subdiretórios contidos dentro do diretório atual
mv: move ou renomeia um arquivo
rm: remove um arquivo ou um diretório
gedit: editor de arquivos
tail: mostra as ultimas linhas de um arquivo
ps: lista os processos em atividade
| : comando para utilizar mais de um comando por instrução
grep: comando para filtrar o resultado de uma busca, por exemplo ls ou ps
> nome:
gera um arquivo com o ‘nome’ e preenche esse arquivo com o resultado do comando anterior, por exemplo um log
yum localinstall: faz a instalação de um repositório que já está no sistema
wget – baixa arquivos

Tomcat

Para utilizar o tomcat, é interessante saber alguns comandos, prinpalmente do bash Catalina.sh, são eles:

./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.

MySQL

Alguns comandos mais comuns na utilização do MySQL:

[mysqlDir]/bin/mysql -u $user -p : realiza o login no MySQL
use $dbName:
no console do MySQL, força a utilização da base de dados $dbName para os futuros comandos;
create database $databasename: Substitua $databasename pelo nome da tabela que deseja criar.
show databases: realiza a listagem de todas as tabelas na base de dados.
drop database $databasename: apaga a base de dados.
drop table $tablename: apaga uma determinada tabela.
grant all privileges on ‘$tableName’.* to ‘$userName’@'localhost’ : define privilégios ao usuário em uma determinada tabela.
mysqldump -u $username -p > $arquivo.sql: exporta os dados da tabela para um arquivo.
mysqldump -u $username -p $dbName < $arquivo.sql: importa os dados SQL para o banco de dados referenciado;

set 22
Escopos do Liferay – Segurança Liferay
icon1 lucas | icon2 Liferay | icon4 22 09 2009| icon3Não há comentários »

Uma das principais características do Liferay é a separação por Escopos. Basicamente tudo é dividido por escopos, desde o conteúdo a Papeis de usuários.

Um dos escopos que temos é criado pelas comunidades. Cada comunidade pode ser vista como um escopo diferente.  É possível a criação de um conteúdo ou um post em um blog dento de uma comunidade e esse material ser apenas visto dentro dessa comunidade e muitas vezes não conseguimos utiliza-lo em outro escopo, apenas no qual ele foi criado.

Organizações podem ser vistas como escopos um pouco mais elaborados, pois podemos ter organizações pais e filhas, ou seja, uma organização filha pertence ao escopo de uma organização pai, e todas as descendentes dessa organização estão contidas no mesmo escopo que a pai. A organização filha tem apenas o escopo pai e o seu próprio. Organizações irmãs tem escopos semelhantes por parte de pai mas não conseguem participar do escopo da outra.

Usuários podem pertencer a escopos diferentes pois podem fazer parte de mais de uma organização e mais de uma comunidade, como por exemplo um usuário que seja administrador de uma organização e membro de uma comunidade pode possuir papeis (funções) administrativas em sua organização e ser totalmente inferior em termos de permissões de em uma comunidade.

É comum usuários possuirem várias permissões especificas definidas em um Papel e apenas poder usa-las em uma certa comunidade, enquanto em outra não possui nenhuma dessas permissões.

isso deixa o usuário liferay totalmente seguro em termos de confiabilidade de uma informação por exemplo, pois se os papeis e comunidades foram feitos utilizando um bom planejamento, podemos garantir por meio dos escopos, o que cada usuário tem ou não permissão de fazer.

Devido a nossa experiência em implementação de portais usando o sistema Liferay, podemos garantir a melhor opção para distribuição de papeis e permissões de tal modo a adaptar a necessidade da sua empresa e garantindo a segurança dos dados.

set 22
Configurar o Liferay para envio de E-mail
icon1 lucas | icon2 Liferay | icon4 22 09 2009| icon3Não há comentários »

O Portal Liferay possui um sistema muito simples mas eficaz de envio de e-mail. Você pode configurar com uma conta de e-mail que já possua em outro servidor ou pode configura-lo para enviar e-mail do seu servidor de e-mail.

A maneira mais simples de configurar o envio de e-mail é através da interface “Server Administrator” presente no menu “Control Panel”.

Server Admin

Server Admin

Verifique a opção de configuração de e-mail em uma das abas:

serveradmmail

serveradmmail

Nessa aba você deverá preencher com as informações sobre o seu servidor de e-mail, externo ou interno.

As informações são padrões e você pode facilmente consegui-las. Testamos aqui com um servidor interno e também com uma conta do serviço gratuito de e-mail Gmail.

Um dos meios para teste é a utilização do portlet de formulário Web.

set 21
Configuração do Landing Page no Liferay
icon1 lucas | icon2 Liferay | icon4 21 09 2009| icon3Não há comentários »

Como customizar o redirecionamento da página de login do usuário no Liferay:

Quando um usuário loga no sistema do Liferay, ele é automaticamente redirecionado para a página inicial da comunidade Guest.

Se deseja que ele seja redirecionado para por exemplo a página inicial de uma organização ou uma comunidade é necessário criar essa modificação utilizando o ambiente de extensão do liferay.

A classe que necessita ser modificada para que o usuário tenha esse redirecionamento é a CustomLandingPage.

Essa classe está localizada no diretório com\liferay\portal\events.

Para criar a modificação você deve estar com o ambiente de extensão configurado, se ainda não está, clique aqui antes de prosseguir.

Com o ambiente configurado, crie uma classe java no seguinte diretório: {dirExtLiferay}\ext-impl\src\com\liferay\portal\events com o nome de CustomLandingPages e insira o seguinte código:

/**
 * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
package com.liferay.portal.events;

import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.events.Action;
import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.util.WebKeys;
import com.liferay.portal.model.Group;
import com.liferay.portal.model.Organization;
import com.liferay.portal.model.User;
import com.liferay.portal.service.OrganizationLocalServiceUtil;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.struts.LastPath;

import com.liferay.portal.util.PropsKeys;
import com.liferay.portal.util.PropsValues;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * <a href="CustomLandingPageAction.java.html"><b><i>View Source</i></b></a>
 *
 * @author of modification Lucas Thomaz
 *
 */
public class CustomLandingPageAction extends Action {
    public void run(HttpServletRequest request, HttpServletResponse response) {

        String path = PropsValues.DEFAULT_LANDING_PAGE_PATH;

        if (_log.isInfoEnabled()) {
            _log.info(
                    PropsKeys.DEFAULT_LANDING_PAGE_PATH + StringPool.EQUAL + path);
        }

        String userId = request.getRemoteUser();
        String forwardUrl = "/web/guest";
        User user = null;
        String orgname = null;

        try {
            user = UserLocalServiceUtil.getUserById(Long.parseLong(userId));
        } catch (PortalException ex) {
            Logger.getLogger(CustomLandingPageAction.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SystemException ex) {
            Logger.getLogger(CustomLandingPageAction.class.getName()).log(Level.SEVERE, null, ex);
        }

        List organizations = null;
        try {
            organizations = OrganizationLocalServiceUtil.getUserOrganizations(Long.parseLong(userId));
        } catch (Exception ex) {
            Logger.getLogger(CustomLandingPageAction.class.getName()).log(Level.SEVERE, null, ex);
        }

        if (organizations != null && organizations.size() != 0) {
            Organization organization = (Organization) organizations.get(0);

            Group group = organization.getGroup();
            if(group.hasPrivateLayouts()) {
            	forwardUrl = "/group" + group.getFriendlyURL().toString();
            }
            if(group.hasPublicLayouts()) {
            	forwardUrl = "/web" + group.getFriendlyURL().toString();
            }

            Logger.getLogger(CustomLandingPageAction.class.getName()).info("Organization URL " + forwardUrl);
        }

        Map<String, String[]> params = new HashMap<String, String[]>();
        LastPath lastPath = new LastPath(StringPool.BLANK, forwardUrl, params);
        HttpSession session = request.getSession();
        session.setAttribute(WebKeys.LAST_PATH, lastPath);

    }
    private static Log _log =
            LogFactoryUtil.getLog(CustomLandingPageAction.class);
}

Altere o arquivo ext-impl/src/portal-ext.properties e insira os comandos abaixo:

#redirecionar login
default.landing.page.path=/web/guest/home
default.logout.page.path=/
login.events.post=com.liferay.portal.events.LoginPostAction,com.liferay.portal.events.CustomLandingPageAction

Execute o ANT de deploy e pronto, quando o usuário logar no seu sistema ele automaticamente será redirecionado pra uma organização a que ele pertença.

Esse código está livre para que possa fazer qualquer modificação e adapta-lo melhor a sua necessidade, no entanto me notifique sobre.

set 21
Configurar MySQL no Liferay
icon1 lucas | icon2 Liferay | icon4 21 09 2009| icon3Não há comentários »

O Liferay “vem de fábrica” com o banco de dados HSQL, que é bem portátil e facil de ser utilizado, se você executou o Liferay pela primeira vez, talvez nem tenha percebido a sua presença e sua simplicidade.

É altamente desaconselhável continuar com esse banco de dados, pois ele tem apenas a função de teste do portal, em grandes aplicações ele não apresenta um bom rendimento.

Agora citaremos um pequeno roteiro para configurar o MySQL como gerenciador do nosso banco de dados Liferay.

Criando o Banco de Dados

Primeiramente, com o MySQL devidamente instalado no ambiente do Liferay, deve-se criar o banco de dados e garantir acesso um usuário com todos os privilégios de modificação, pois o Liferay irá criar todas as tabelas e dados iniciais automaticamente.

Para isso utilize o seguinte comando SQL:

mysqladmin --default-character-set=utf8 create lportal
grant all privileges on 'lportal'.* to
'nomeusuario'@'localhost'

Sendo “nomeusuário” do banco de dados que o liferay usará, “localhost” local onde o servidor está hospedado, “lportal” nome do banco de dados que o liferay usará.

Com o banco de dados criado, agora é a hora de informar ao Liferay que houve uma alteração no gerenciador de banco de dados.

Essas informações podem ser realizadas modificando o arquivo portal-ext.properties. O meio mais correto de se fazer isso é utilizando o ambiente de extensão e criando um arquivo com essas informações.

Se ainda não configurou o ambiente de extensão, descubra como clicando aqui.

Com o ambiente de extensão configurado, navegue até o diretório {diretorioExtensaoLiferay}/ext-impl/src e crie um arquivo chamado portal-ext.properties e system-ext.properties.

Adicione as informações abaixo no arquivo, se esse arquivo já existia insira essas informações no final do arquivo:

# MySQL
#
jdbc.default.driverClassName=com.mysql.jdbc.Driverjdbc.default.url=jdbc:mysql://
     {nome_do_servidor}/{nome_do_banco_de_dados}?
     useUnicode=true&characterEncoding=UTF-8
jdbc.default.username=root
jdbc.default.password=root
jdbc.default.maxActive=60

Onde {nome_do_banco_de_dados} é o nome do banco de dados que criou acima {nome_do_servidor} é caminho do servidor, como por exemplo 127.0.0.1:3306 . Não se esqueça de informar a porta.

Feito isso seu banco de dados será alterado para o MySQL na proxima execução do Liferay.

set 9
Customização do Painel de Controle do Liferay
icon1 lucas | icon2 Geral | icon4 09 09 2009| icon3Não há comentários »

Até a versão 5.2.3 do Liferay, o painel de controle disponível não garante acesso a todos os usuários, apenas ao Administrador da Comunidade/Organização ou Dono da Comunidade e Organização.

Essa deficiência se torna muito relevante quando se deseja trabalhar com Aprovação de Conteúdo (Workflow) em Conteudos Web, ou até mesmo com a moderação de Blogs e Wikis.

Para resolver esse problema, implementamos uma alteração em nossas classes, tal alteração está disponível para download no repositório da Liferay.

Essa alteração dará a possibilidade de incluir nos Papeis (Roles) a possibilidade de acesso ao painel de controle em um determinado portlet, como por exemplo o portlet Conteúdo Web (Web Content).

Para efetuar essa adaptação no código você deve ter um ambiente de extensão configurado, pois essas alterações serão feitas nesse ambiente. Nós disponibilizamos um tutoria de como criar esse ambiente, pode ser visto clicando aqui.

Com o ambiente de extensão criado, baixe todos os arquivos do repositório da Liferay e coloque-os em seu ambiente de extensão preservando a hierarquia de pastas. Por exemplo, os arquivos a seguir foram retirados do repositório citado acima e devem ser colocados no ambiente de extensão na seguinte hierarquia:
  • Arquivos XML’s referentes aos portlets que terão a opção de acesso ao painel de controle.
    Eles deverão  ser colocados no diretório {dir_extenção_liferay}/ext-impl/classes/resource-actions
    São eles:
    asset.xml
    blogs.xml
    bookmarks.xml
    calendar.xml
    documentlibrary.xml
    imagegallery.xml
    journal.xml
    messageboards.xml
    polls.xml
    portal.xml
    tags.xml
    wiki.xml
  • Arquivo PortalImpl.class, que implementa a função que libera o acesso ao painel de controle. Ele pode ser encontrado no seguinte diretório do seu ambiente de execução:
    {dir_extenção_liferay}/ext-impl/classes/com/liferay/portal/util
Mantenha esse padrão para o restante dos arquivos e tenha certeza que nenhum arquivo que você está copiando já exista em seu ambiente de execução, pois e existir significa que ele já foi modificado uma vez e deve conter alterações que não podem ser sobrescritas. Se isso acontecer, terá que comparar o código para descobrir onde as alterações são realizadas.
Após essa etapa apenas execute o Build file em seu ambiente de extensão e ele automaticamente compilará suas classes e gerará os .jar’s correspondentes.
Essa modificação implementada pela Weblibre ajuda ainda mais a customização dos nossos sistemas, adequando totalmente a necessidade do cliente.