mar 31
Como exibir o bloco de navegação por categorias, preços e demais atributos
icon1 gvenerato | icon2 Magento, tutoriais | icon4 31 03 2010| icon3Não há comentários »

No Magento, para exibir o bloco de navegação por categorias, preços e demais atributos, faça:

1- A categoria mãe deve ser do tipo Anchor

2- Edite o arquivo catalog.xml e insira o código a seguir abaixo de  <catalog_category_layered> e de <catalog_category_default>:
<reference name=”left”>
<block type=”catalog/layer_view” name=”catalog.leftnav” before=”-” template=”catalog/layer/view.phtml”/>
</reference>

3- Para que os links sempre apontem para a página da categoria mãe, substitua o método getUrl da classe app/code/core/Mage/Catalog/Model/Layer/Filter/Item.php por:
public function getUrl()
{
$currentCategory = $this->getFilter()->getLayer()->getCurrentCategory();

$query = array(
$this->getFilter()->getRequestVar()=>$this->getValue(),
Mage::getBlockSingleton(’page/html_pager’)->getPageVarName() => null // exclude current page from urls
);

if ($currentCategory) {
$url = $currentCategory->getUrl(’*/*/*’, array(’_current’=>true, ‘_use_rewrite’=>true, ‘_query’=>$query));

$urler = Mage::getModel(’core/url’);
$urler -> getRouteUrl(’*/*/*’, array(’_current’=>true, ‘_use_rewrite’=>true, ‘_query’=>$query));
$urler->setQueryParams($query, true);
$query = $urler->getQuery(false);

return $url . ‘?’ . $query;
}
else {
return Mage::getUrl(’*/*/*’, array(’_current’=>true, ‘_use_rewrite’=>true, ‘_query’=>$query));
}
}

mar 24
Como corrigir bug do Google Analytics no Magento 1.4

A nova versão do Magento 1.4 veio com um bug no módulo do Google Analytics, que faz com que o módulo não funcione corretamente.

Um bug fácil de se corrigir, para isso acesse o arquivo:

app/code/core/Mage/GoogleAnalytics/Block/Ga.php

Na linha 180 insira o código:

var _gaq = _gaq || [];

Ficando o código da seguinte maneira:

var _gaq = _gaq || [];
_gaq.push(["_setAccount", "' . $this->getAccount() . '"]);
_gaq.push(["_trackPageview", "'.$this->getPageName().'"]);

Salve o arquivo e o bug estará corrigido.

mar 24
Inserindo abas na visualização de produtos no Magento

Primeiramente faça o download e instale o módulo de abas do Magento na url:

http://www.magentocommerce.com/extension/1725/magento-easytabs

Para inserir novas abas faça o seguinte.

Abra o arquivo app/design/frontend/seu-pacote/seu-tema/layout/easytabs.xml
Procure pela referência “product.info.additional” e dentro do bloco “catalog/product_view_tabs” insira a seguinte linha:
 
 <action method=”addTab” translate=”title” module=”catalog” ifconfig=”easy_tabs/general/sendfriendtabbed”><alias>sendfriend_tabbed</alias><title>Send a Friend</title><block>sendfriend/send</block><template>sendfriend/send.phtml</template></action>
 O exemplo usado acima insere o bloco “Enviar para um amigo”.

Após isso abra o arquivo app/code/community/TM/EasyTabs/etc/system.xml
Procure por:
 <optiontabbed translate=”label”>
  <label>Enable product’s  attributes tab</label>
  <frontend_type>select</frontend_type>
  <source_model>adminhtml/system_config_source_yesno</source_model>
  <sort_order>8</sort_order>
  <show_in_default>1</show_in_default>
  <show_in_website>1</show_in_website>
  <show_in_store>1</show_in_store>
 </optiontabbed>

 

E após isso insira:
 <sendfriendtabbed translate=”label”>
  <label>Enable send a friend tab</label>
  <frontend_type>select</frontend_type>
  <source_model>adminhtml/system_config_source_yesno</source_model>
  <sort_order>9</sort_order>
  <show_in_default>1</show_in_default>
  <show_in_website>1</show_in_website>
  <show_in_store>1</show_in_store>
 </sendfriendtabbed>

Para habilitar as abas acesse o painel administrativo do Magento e vá em Sistema -> Configuração -> Easy Tabs

Habilite o módulo e as opções que você deseja exibir.

Você também pode criar abas utilizando campos de atributo dos produtos e também utilizando blocos CMS do próprio Magento

mar 23
Sugar CRM – Como importar vCards com acentos do Outlook
icon1 admin | icon2 crm, tutoriais | icon4 23 03 2010| icon3Não há comentários »

No SugarCRM, ao importar um contato via vCard do Outlook, os caracteres acentuados não aparecem.

Isso ocorre pois o Sugar está em UTF-8 e o Outlook usa ISO-8859-1.

Para corrigir:

  1. Abra o arquivo “includes/vCard.php” em um editor de textos simples.
  2. Localize a  linha que contém o comando $line = trim($line);, aproximadamente na linha 156.
  3. Insira o seguinte trecho de código:
if (mb_detect_encoding($line, "auto") != "UTF-8") {
    $line = mb_convert_encoding($line, "UTF-8");
}

Certifique-se de que o módulo mb_string está instalado no PHP.

Agora é só fazer um teste de importação para ver se tudo está ok.

mar 8
Como alterar o grupo principal de um usuário em Linux
icon1 admin | icon2 Linux, tutoriais | icon4 08 03 2010| icon3Não há comentários »

Para definir qual será o grupo primário de um usuário em Linux, use o seguinte comando:

usermod -G <nome-grupo> <login-usuario>

Exemplo:

usermod -G weblibre godutra
mar 5
Liferay – PermissionChecker – Como usar
icon1 lucas | icon2 Liferay | icon4 05 03 2010| icon3Não há comentários »

Existe um serviço no Liferay que é muito interessante e tem nos ajudado bastante, é a classe PermissionChecker.

Com ela conseguimos testar se um usuário tem a permissão sobre um determinado objeto, pode ser um conteúdo web, um post de um forum ou até mesmo acesso a uma determinada comunidade ou organização. Tudo isso pode ser verificado utilizando essa classe e seus métodos.

Para ficar mais claro, alguns exemplos de uso dessa classe:

A classe permissionchecker pode ser importada para um arquivo utilizando o seguinte código:

import com.liferay.portal.security.permission.PermissionChecker;

Um exemplo de um método dessa classe é:

permissionChecker.isCommunityAdmin(group.getGroupId()));

Esse método testa se o usuário é administrador de uma comunidade.

O permissionChecker também pode ser usado como instancia para a passagem de parametro para outras classes que fazem testes mais específicos, como no exemplo abaixo:

hasSavePermission = JournalArticlePermission.contains(permissionChecker, groupId, articleId, ActionKeys.UPDATE);

Nós já utilizamos esse método em alguns artigos aqui na Weblibre, confira:

mar 5
Liferay – Usuário comum não consegue ver o Link em um Web Content
icon1 lucas | icon2 Liferay | icon4 05 03 2010| icon3Não há comentários »

Existe um bug no Liferay que os usuários comuns, ou seja, usuários não autenticados como administradores do sistema, não consegue visualizar o link que está dentro de um conteúdo web.

Esse bug foi descoberto após colocarmos a opção no portal-ext.properties de que o usuário não poderia mais ter páginas pessoais públicas e privadas.


layout.user.private.layouts.enabled=false
layout.user.public.layouts.enabled=false

Resolvemos esse problema eliminando essa informação do portal-ext.properties e ainda limpando o cache do Lucene, que fica no diretório:

liferay-portal-5.2.3\data

Exclua o conteúdo desta pasta, isso forçará o Lucene a reindexar todas as suas buscas e deve solucionar o problema.

Esse BUG está relacionado com outro bug já descrito nos nossos artigos, confira aqui:

mar 5
Como fazer download do Source do Liferay via VPN
icon1 lucas | icon2 Liferay | icon4 05 03 2010| icon3Não há comentários »

O Liferay possui um repositório onde as alterações que são feitas no código são armazenadas.

Esse repositório pode ser acessado por qualquer usuário com o usuário guest e sem senha.

Para facilitar o uso do repositório é muito interessante o download de uma ferramenta que seja um gerenciador de svn, nós particularmente recomendamos o Tortoise, que pode ser baixado no link:

http://tortoisesvn.net/downloads

Após fazer o download do Tortoise você já pode acessar o repositótio inserindo o link :

svn://svn.liferay.com/repos/public/portal/trunk

Esse links deve ser inserido na opção Repo-browser. Após o login com o usuário citado acima você já consegue ver a estrutura de pastas do repositório e informações úteis como a data que o arquivo foi modificado e o autor dessa modificação.

Para fazer o download, chamado aqui de checkout, apenas clique com o botão direito sobre uma pasta na estrutura a esquerda e selecione chekout, ou se quiser fazer apenas o download de um arquivo, clique sobre ele com o botão direito e selecione “save as”.

mar 5
Liferay – Busca dentro do Arquivo – Como resolver
icon1 lucas | icon2 Liferay | icon4 05 03 2010| icon3Não há comentários »

O portal Liferay realiza busca dentro de arquivos, como por exemplo, arquivos pdf, word, etc…

Por algum motivo, essa busca pode começar a dar problemas e um deles é a inserção de caracteres inválidos dentro do xml que o portlet de Busca utiliza para fazer a leitura.

Para identificar esse problema observe que o log começará a avisar sobre um erro na leitura do xml no momento em que o portal tenta fazer a busca nos arquivos.

A maneira como corrigimos esse problema foi identificar o local onde ele faz essa leitura e utilizar um método em java que retira os caracteres inválidos do xml, como é narrado abaixo:

O método que criamos é o seguinte:


String stripNonValidXMLCharacters(String in) {
StringBuffer out = new StringBuffer(); // Used to hold the output.
char current; // Used to reference the current character.

if (in == null || ("".equals(in))) return ""; // vacancy test.
for (int i = 0; i < in.length(); i++) { current = in.charAt(i); // NOTE: No IndexOutOfBoundsException caught here; it should not happen. if ((current == 0x9) || (current == 0xA) || (current == 0xD) || ((current >= 0x20) && (current <= 0xD7FF)) || ((current >= 0xE000) && (current <= 0xFFFD)) || ((current >= 0x10000) && (current <= 0x10FFFF)))
out.append(current);
}
return out.toString();
}

E inserimos esse método no arquivo liferay-portal-5.2.3\tomcat-6.0.18\webapps\ROOT\html\portlet\search\search.jsp

No momento em que ele faz a leitura do xml, na linha # 169 inserimos o seguinte código:


xml = stripNonValidXMLCharacters(xml);

mar 4
Liferay Hook
icon1 lucas | icon2 Liferay | icon4 04 03 2010| icon3Não há comentários »

O “hook” foi desenvolvido pelo Brian Chan e como nome sugere ele permitem um “gancho” no Liferay. Especificamente, eles permitem que você “hook” nos eventos do sistema, nos listeners, nos JSPS, basicamente em todo as propriedades do portal.

Sendo assim, você pode “enxertar” código em quase qualquer lugar do seu portal Liferay. Isso é muito útil e deve ser usado dessa maneira sempre que possível, pois mantém o sistema o mais dentro do padão possível, ao contrário das modificações no ambiente de extensão.

Para conhecer mais sobre o assunto, verifique esses links:

Próxima Página »