fev 26
Remover item Painel de Controle Liferay – My Pages
icon1 lucas | icon2 Liferay | icon4 26 02 2010| icon3Não há comentários »

O Painel de Controle do Liferay pode ser editado de várias maneiras e por várias vezes podemos nos deparar com situações que exijam a remoção e inserção de itens.

O liferay faz isso de uma forma bem simples, através da modificação de um arquivo xml: liferay-portlet.xml, presente na pasta WEB-INF.

Esse arquivo descreve os itens que deverão ser inseridos no menu do Painel de Controle.

No nosso exemplo iremos remover o item My Pages, para tanto devemos procurar a sua definição, que se da na linha # 1301. Se fizer uma busca por my_pages, será o resultado único.

Como o nosso objetivo é a apenas a remoção desse item, podemos sem problemas apenas apagar a definição restrita pela tag portlet que ele irá ser eliminado.

Salve o arquivo e reinicie o servidor. Verifique que o item foi removido.

fev 26
Tradução Liferay – Como fazer
icon1 lucas | icon2 Liferay | icon4 26 02 2010| icon3Não há comentários »

O Liferay ainda não possui uma tradução oficial para o portugues do Brasil. Eles estão trabalhando para que a próxima versão, supostamente chamada de 6.0 já venha com uma tradução oficial brasileira.

Até la você pode criar a sua própria tradução e adequar os termos para a sua versão.

O arquivo que trata essa tradução é encontrado no caminho: classes/content/, normalmente um arquivo com o nome padronizado, no caso do portugues do brasil é Language_pt_BR.properties.native.

É importante que a alteração seja feita utilizando esse arquivo e não o Language_pt_BR.properties, pois esse ultimo contém a codificação especial para acentos e outros caracteres especiais.

Para alteração do arquivo utilize um editor de textos qualquer, particularmente recomendamos o Notepad++, que além de gratuito é muito eficiente.

Altere o arquivo como desejar, save e depois execute o seguinte comando:

native2ascii -encoding UTF-8 Language_pt_BR.properties.native Language_pt_BR.properties

substitua na pasta /WEB-INF/classes/contet caso exista, sobrescreva.

Reinicie o servidor e perceba que suas alterações já foram efetuadas.

fev 26
Negar edição de Conteúdos Web já aprovados no Liferay
icon1 lucas | icon2 Liferay | icon4 26 02 2010| icon3Não há comentários »

É interessante negar acesso a edição de um conteúdo web aprovado.

Um dos motivos é que caso esse conteúdo for modificado e já estiver aprovado,  ele não muda o seu status e continua sendo exibido nas listagens de conteúdo e também não informa ao usuário responsável pela aprovação de conteúdos que foi modificado.

A listagem de conteúdos pode ser acessada pelo menu Painel de Controle -> Conteúdo Web. Essa listagem contem todos os conteúdos que o usuário ativo tem permissão de visualização.

O arquivo que cuida da exibição dos botões de ação sobre cada conteúdo é o {amb_extensao}/docroot/html/portlet/journal/article_action.jsp.

Uma melhor abordagem de como editar esse artigo pode ser encontrada nesse outro artigo que fizemos: http://www.weblibre.com.br/alterar-a-listagem-dos-conteudos-no-liferay/

Para retirar o botão de Edição de conteúdos que estão aprovados fizemos a seguinte modificação nesse arquivo:

Na linha #47, quando ele começa os testes sobre o botão editar, insira o seguinte código:

boolean editTest = false;
if (article.isApproved()){
if (isAdmin||isAprovador){
editTest = JournalArticlePermission.contains(permissionChecker, article, ActionKeys.UPDATE);
}
}
else {
editTest = JournalArticlePermission.contains(permissionChecker, article, ActionKeys.UPDATE);
}

Isso fará com que o artigo faça o teste antes de liberar o botão de edição.

Mas como esse não é o único modo de bloquear esse tipo de modificação, devemos também testar se o botão Salvar pode estar disponível na página de edição do artigo, para tanto fizemos a seguinte modificação no arquivo: {amb_extensao}/docroot/html/portlet/journal/edit_article.jsp:

No momento em que o jps testa se o usuário tem permissão para poder salvar o arquivo, por volta da linha # 1044, modifique o teste por esse a seguir:

boolean hasSavePermission = false;
if (article != null) {

boolean isOwner = false;
if (Long.valueOf(request.getRemoteUser()) == article.getUserId())
isOwner = true;
boolean isAdmin = false;
if (request.isUserInRole("Administrator"))
isAdmin = true;
boolean isAprovador = false;
if (request.isUserInRole("NomeDoPapelDoAprovador")&&
(JournalArticlePermission.contains(permissionChecker, article, ActionKeys.VIEW)))
isAprovador = true;
if (article.isApproved()){
if (isAdmin||isAprovador){
hasSavePermission = JournalArticlePermission.contains(permissionChecker, groupId, articleId, ActionKeys.UPDATE);
}
}else {
hasSavePermission = JournalArticlePermission.contains(permissionChecker, groupId, articleId, ActionKeys.UPDATE);
}
}
else {
hasSavePermission = JournalPermission.contains(permissionChecker, scopeGroupId, ActionKeys.ADD_ARTICLE);
}

Com essas duas modificações, conseguimos ter a certeza que o usuário apenas editará arquivos não aprovados.

fev 26
Alterar a listagem dos Conteúdos no Liferay
icon1 lucas | icon2 Liferay | icon4 26 02 2010| icon31 comentário »

Ao acessar o item “Painel de Controle” do menu “Bem-Vindo” e a opção de “Conteúdo Web”, o usuário tem a listagem dos conteúdos que o portal possui. Nem sempre é interessante que o usuário tenha essa visualização, e para isso realizamos uma modificação, que será detalhada a seguir:

Trabalhamos com os arquivos:
{amb_extensao}/docroot/html/portlet/journal/article_action.jsp e:
{amb_extensao}/docroot/html/portlet/journal/view.jsp

No início do primeiro arquivo, colocamos as seguintes modificações:


boolean isOwner = false;
if (Long.valueOf(request.getRemoteUser()) == article.getUserId())
isOwner = true;
boolean isAdmin = false;
if (request.isUserInRole("Administrator"))
isAdmin = true;
boolean isAprovador = false;
if (request.isUserInRole("Aprovador de conteúdo web")&&
(JournalArticlePermission.contains(permissionChecker, article, ActionKeys.VIEW)))
isAprovador = true;

E utilizamos esses dados para modificar as opções que se seguem, como por exemplo:


c:if test="%= JournalArticlePermission.contains(permissionChecker, article, ActionKeys.UPDATE) %"

ou:


c:if test="%= ((JournalArticlePermission.contains(permissionChecker, article, ActionKeys.PERMISSIONS)&& isOwner) || isAdmin || isAprovador) %"

E dessa maneira conseguimos alterar quais usuários tem permissões sobre as ações de determinado conteúdo.

Para melhorar a filtragem, alteramos o segundo arquivo da seguinte maneira:

Alteramos a linha #137 da seguinte maneira:


JournalArticle article = (JournalArticle)results.get(i);
if (JournalArticlePermission.contains(permissionChecker, article, ActionKeys.VIEW)
|| (Long.valueOf(request.getRemoteUser()) == article.getUserId())) {

fev 24
Produtos Relacionados, Vendas Agregadas e Vendas Cruzadas

O Magento tem 3 opções semelhantes para relacionar produtos entre si. São elas:

Vendas Cruzadas: Exibe produtos que façam sentido serem comprados em conjunto. A relação de produtos cruzados somente será apresentada quando o primeiro produto for adicionado ao carrinho de compras.

Exemplo: o cliente coloca uma Televisão no carrinho de compras, quando a página é redirecionada para o carrinho, um Aparelho de DVD aparece logo abaixo. Isso pode fazer com que o cliente compre um segundo produto por impulso.

Vendas Agregadas: Exibe os produtos abaixo do produto que está sendo exibido, com o texto “Você pode também estar interessado nos seguinte produtos”. Pode ser usado para apresentar alternativas ao produto selecionado.

Exemplo: ao entrar no produto TV LCD Samsung, também será apresentado o produto TV LCD LG, que pode ser mais vantajosa ao cliente por ser mais barata e para o lojista por proporcionar uma maior margem de lucro, entre outras vantagens.

Produto Relacionado: Exibe os produtos relacionados diretamente na página de detalhes do produto, na coluna da direita ou da esquerda. É parecido com a Venda Cruzada, mas os produtos aparecem antes de serem adicionados ao carrinho de compras.

Texto baseado em http://www.magentocommerce.com/boards/index.php/viewthread/20945/#t70628 por Viveiros.
fev 20
Centro Profissionalizante

Centro Profissionalizante

Implantado pela Weblibre, o Portal Centro Profissionalizante oferece formação profissional a distância.

Todas as aulas são multimídia, o que as confere atratividade.

A formação se inicia com informática básica (Windows, Internet, e-mail), passa pelos cursos para o uso profissional (Word, Excel, PowerPoint, Noções de Secretariado, Google Docs, Noções de Digitação) e pode ser complementada com formações específicas para trabalhar com imagens (CorelDraw, Photoshop, Fireworks) ou animações (Flash), criação de sites (Dreamweaver) e banco de dados (Access). Os usuários de Linux não foram esquecidos e podem realizar os seguintes treinamentos: Linux-Gnome, Mozilla Firefox, Thunderbird, BR Office – Writer, Calc, Impress e Gimp.

Conheça www.centroprofissionalizante.com.br.

fev 19
Configurar o Tutor para matricular estudantes no Moodle
- Na configuração do curso, o campo Tipo de Grupos deve estar “Grupos Separados”
- Como administrador, na caixa “Administração do site”, clique em Usuários->Permissões->Definir Funções
- Clique no botão “Modificar”
- Selecione a segunda opção (permitir) no item “Designar Funções dos Usuários”
- Selecione a primeira opção (não atribuido) no item “Acessar todos os grupos”
+ opcionalmente, pode-se selecionar a segunda opção (permitir) no item “Gerenciar Grupos”
- Clique no botão “Salvar” para confirmar as alterações
- Vote à página Usuários->Permissões->Definir Funções e clique na guia “Permitir Designação de Funções”
- Na linha do “Non-editing teacher”, marque a opção “Student”
  1. Na configuração do curso, o campo Tipo de Grupos deve estar “Grupos Separados”
  2. Como administrador, na caixa “Administração do site”, clique em Usuários->Permissões->Definir Funções
  3. Clique no botão “Modificar”
  4. Selecione a segunda opção (permitir) no item “Designar Funções dos Usuários”
  5. Selecione a primeira opção (não atribuido) no item “Acessar todos os grupos”
    • opcionalmente, pode-se selecionar a segunda opção (permitir) no item “Gerenciar Grupos”
  6. Clique no botão “Salvar” para confirmar as alterações
  7. Vote à página Usuários->Permissões->Definir Funções e clique na guia “Permitir Designação de Funções”
  8. Na linha do “Non-editing teacher”, marque a opção “Student”
fev 19
Como matricular alunos em um curso e exportá-los para outros cursos usando a opção Meta-Curso do Moodle
  1. Crie uma categoria invisível cuja finalidade será agregar cursos, também invisíveis, que relacionarão os respectivos alunos de um cliente/prefeitura.
  2. Crie um curso para cada cliente/prefeitura.
    • Na configuração do curso, selecione a opção Grupos Visíveis no campo Tipo de Grupo
  3. - Entre do curso criado no passo anterior. No menu Administração, clique na opção Grupos. Crie um grupo para cada escola do cliente/prefeitura.
  4. - No menu Administração, clique na opção Designar Funções e acrescente estudantes a este curso.
  5. - Volte à opção de Grupos, selecione um grupo e clique no botão “Adicionar/remover usuários“. Em seguida, acrescente usuários ao grupo selecionado.
    • Faça o mesmo para os demais grupos
  6. - Para que outros cursos enxerguem os alunos deste curso. Entre no curso desejado. Nas configurações do curso:
    • No campo Tipo de Curso, escolha Meta-Curso. Importante observar que este curso não deve ter alunos previamente matriculados.
    • Selecione a opção Grupos Visíveis no campo Tipo de Grupo
  7. - Na Área de Administração do Curso, clique na opção Cursos Afiliados. Em seguida, acrescente o curso do cliente/prefeitura, criado anteriormente.
    • Isso importará todos os alunos deste curso para o curso atual.
    • Os grupos não são importados. Sendo assim, devem ser criados novamente neste curso.
fev 9
Alterar tempo de Expiração no portal Liferay
icon1 lucas | icon2 Liferay | icon4 09 02 2010| icon3Não há comentários »

Para alterar o tempo em que um usuário pode ficar inativo no portal Liferay é bem simples.
Apenas altere as seguintes linhas no arquivo: liferay-portal-5.2.3\tomcat-6.0.18\webapps\ROOT\WEB-INF\web.xml

<session-config>
<session-config> <session-timeout>480</session-timeout> </session-config>

O tempo é dado em minutos.

fev 9
Inicialização automática do Liferay em Servidores Linux – RedHat
icon1 lucas | icon2 Liferay, Linux | icon4 09 02 2010| icon3Não há comentários »

Inicialização Automática do Liferay

Esse tutorial é feito para um servidor Linux RedHat

1) Crie o Script:

Crie um arquivo texto com as seguintes linhas:

#!/bin/sh
# chkconfig: 3 66 30
# description: Starts and stops Liferay (running as root)

mode=$1

export TOMCAT_HOME=/opt/liferay-portal-5.2.3/tomcat-6.0.18
export CATALINA_HOME=/opt/liferay-portal-5.2.3/tomcat-6.0.18/bin
#export JAVA_HOME=/usr/java

case "$mode" in
'start')
# Start daemon
su -c "$TOMCAT_HOME/bin/catalina.sh $mode" root
;;

'stop')
# Stop daemon. We use a signal here to avoid having to know the
# root password.
$TOMCAT_HOME/bin/catalina.sh $mode
;;
 *)
# usage
echo "usage: $0 start|stop"
exit 1
;;
esac

Altere o local onde o TOMCAT  e o JAVA_HOME estão armazenados em sua máquina.

Grave o arquivo, lembrando que ele deve seguir o padrão UNIX, para gravar utilizando esse padrão faça o seguinte:
vim myfile.txt
:set fileformat=dos
:wq

Altere o nome myfile.txt para o nome que deseja gravar o seu script, no nosso caso, é conveniente chamar de ‘liferay’.

Feito isso o Script está criado, agora basta mover esse arquivo para a pasta /etc/rc.d/init.d, utilize o comando mv.

Agora devemos configurar utilizando o comando chkconfig,  na linha de comando faça o seguinte:

chkconfig --add liferay
chkconfig liferay on

Desse modo, configuramos o liferay para ser iniciado junto com o servidor com o comando ’start’ e desligado com o comando ’stop’.
Para teste, ainda na pasta /etc/rc.d/init.d, execute:

./liferay start
./liferay stop

Se não encontrar nenhum erro, é porque está funcionando normalmente.

Para conferir os níveis onde o script está configurando, utilize o comando:
chkconfig --list liferay

Ele irá mostrar algo como:
liferay 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Para saber qual é o nível de boot (runlevel) atual, faça:

runlevel

Isso irá exibir o número atual do runlevel.

Para testar a inicialização no nível 3, faça o comando abaixo:

/etc/rc.d/rc 3

onde 3 é número do nivel de boot que se deseja executar.