Virtuemart 2: Dicas de customização de templates

Algumas dicas para customizar seu template em Joomla 2.5 ou Joomla 1.5, Joomla 1.6 até em Joomla 1.7, mas realmente usando a versão do Virtuemart 2.0.

Customizando templates no Virtuemart 2.0

Estes códigos php tem que ser inseridos na index.php do seu template Joomla para que funcionem.

São usados para exibir módulos de forma personalizada, de modo que cada categoria ou produto tenha um banner ou qualquer outro módulo específico, para personalizar ao máximo a loja em Virtuemart 2.0.

Estas alterações são independentes de versão (2.02, 2.04, 2.06, etc ).


 

Criar uma posição de módulo para aparecer sempre em qualquer flypage ( página de detalhes do produto )


<?php if (JRequest::getVar('view')=='productdetails') { ?>
<div id="moduloflypage"><jdoc:include type="modules" name="detalhes_produto" /></div>
<?php } ?>

Criar uma posição de módulo para cada flypage. Cria uma posição de módulo chamada detalhes_produto# aonde o # é o código do produto ( product_id )


<?php if (JRequest::getVar('view')=='productdetails') { ?>
<div id="moduloflypage"><jdoc:include type="modules" name="detalhes_produto<?php echo JRequest::getInt('virtuemart_product_id',0); ?>" /></div>
<?php } ?>

Módulos na página de categorias de produtos, para todas as categorias


<?php if (JRequest::getVar('view')=='category') { ?>
<div id="modulocategoria"><jdoc:include type="modules" name="categoria_produto" /></div>
<?php } ?>

Criar uma posição de módulo para cada categoria. Cria uma posição de módulo chamada categoria_produto# aonde o # é o código da categoria


<?php if (JRequest::getVar('view')=='category') { ?>
<div id="modulocategoria"><jdoc:include type="modules" name="categoria_produto<?php echo JRequest::getInt('virtuemart_category_id',0); ?>" /></div>
<?php } ?>

Cria uma posição de módulo na página do produto que irá aparecer se determinada categoria # for ligada ao produto.


<?php if (JRequest::getVar('view')=='productdetails') { ?>
<div id="produto_pela_categoria"><jdoc:include type="modules" name="produto_pela_categoria<?php echo JRequest::getInt('virtuemart_category_id',0); ?>" /></div>
<?php } ?>

Muitas outras visões no componente Virtuemart. Você pode fazer o mesmo com qualquer Visão do Virtuemart: cart (carrinho), manutenção da conta (account), etc.


<?php if (JRequest::getVar('view')=='NOME-DA-VISÃO') { ?>
<div id="divid"><jdoc:include type="modules" name="Nome-da-posição" /></div>
<?php } ?>

 

Artigo traduzido daqui: http://www.kaizenmediaworks.com/virtuemart-template-and-module-control
leia mais

Snippets: Mini-dicas de Joomla

Faz tempo que não postava algum código PHP aqui no blog. Portanto separei alguns códigos bacanas bem rapidos e que ajudam bastante na hora de desenvolver plugins e componentes pra Joomla e com frequência.

Verificar se o site está usando https ou não


if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'    || $_SERVER['SERVER_PORT'] == 443) {
$site_seguro = true;}

Fazer uma consulta no Joomla ( em qualquer tabela )


$db = JFactory::getDBO();
$query = "SELECT * FROM #__tabela WHERE x =1";
$db->setQuery($query);
$consulta = $db->loadObjectList();

Adicionar algum conteúdo no cabeçalho da página ( no head )


$doc =& JFactory::getDocument();
$doc->addCustomTag( '<script></script>' );

Capturar o título da página


global $mainframe;
$titulo 	= $mainframe->getPageTitle();
// $titulo = "SITE DO CHAMPS"

Capturar a url completa do site


$u 		= JFactory::getURI();
$url 		= $u->toString();
// $url = "http://www.site.com.br/"

Verificar se está dentro da área Administrativa do Joomla ou não


global $mainframe;
if(!$mainframe->isAdmin()) {
// fora da area admin
}

Algumas constantes do Joomla

Mostra o caminho a nivel de servidor ( /home/xxx/public_html ) e não url.

JPATH_ADMINISTRATOR Caminho para a pasta administrator do Joomla.
JPATH_BASE Caminho aonde o Joomla está instalado.
JPATH_CACHE Caminho para a pasta cache.
JPATH_COMPONENT Caminho para o componente atual que está sendo executado.
JPATH_COMPONENT_ADMINISTRATOR Caminho para o componente na área administrativa que está sendo executado.
JPATH_COMPONENT_SITE Caminho para a pasta anterior ao componente que está sendo executado.
JPATH_CONFIGURATION Caminho para o arquivo configuration.php.
JPATH_INSTALLATION Caminho para a pasta installation ( instalação ) do Joomla.
JPATH_LIBRARIES Caminho para a pasta libraries ( bibliotecas ) do Joomla.
JPATH_PLUGINS Caminho para a pasta plugins.
JPATH_ROOT Semelhante ao JPATH_BASE.
JPATH_SITE Semelhante ao JPATH_BASE.
JPATH_THEMES Caminho para a pasta /templates do site.
JPATH_XMLRPC Caminho para a pasta xmlrpc

 

leia mais

Patch para Virtuemart ( Cupom para Múltiplas Moedas )

Esses dias atrás o pessoal da Gameasy, uma grande loja de venda de games, me pediu uma correção no Virtuemart. Na verdade era um bug que acontece quando se tenta pagar uma transação com uma moeda diferente da padrão e utilizar um cupom de desconto.

Não sei se alguém mais teve este problema, mas acho muito interessante para lojas que tenham múltiplas moedas integradas ( Dólar, Real, Libras ).

O problema basicamente era esse:

  • Eu escolho um produto, querendo pagar com Real, por exemplo
  • Como eu já tenho um cupom de desconto, o aplico nesta compra. O cupom tem o desconto certinho no carrinho de compras.
  • Ao finalizar a transação com Dólar, por exemplo ( para pagar com paypal ou outra forma de pagamento ), o valor do desconto não é atualizado
  • Então o valor do desconto está totalmente distorcido, porque não foi recalculado.

Veja Como corrigir o problema da atualizacao do valor do cupom

No arquivo ps_main.php
(\public_html\administrator\components\com_virtuemart\classes\ps_main.php)

Adicione após a linha 922:


if( !empty( $_SESSION['coupon_discount'] )) {
// Update the Coupon Discount !!
require_once(CLASSPATH.'ps_coupon.php');
ps_coupon::process_coupon_code($d);
}

Bom… Correções à parte, recomendo à visitação à Loja de Games Gameasy, que é uma empresa séria, apesar de vender só brincadeira e diversão.

Deixo aqui o meu apoio ( sem ganhar nenhum centavo com isso, porque o pessoal é gente boa mesmo ) :) .

Loja de Games Gameasy

leia mais

Versão Beta do Módulo do Pagamento Digital pro Virtuemart

Mais um dia, mais um módulo atualizado.

Desta vez divulgo em primeira mão a atualização fresquinha do Módulo de Pagamentos pro Virtuemart, usando o Pagamento Digital.

Basicamente nesta versão foram corrigidos os seguintes itens:

  • Envio de email usando servidor smtp não funcionava.
  • Incompatibilidade com Virtuemart 1.1.x e Joomla 1.5.x.
  • Email de atualização do status de pagamento alterado para um formato mais amigável.

E a funcionalidade principal:

  • Redirecionar o usuário automaticamente assim que ele finaliza o pedido no Virtuemart.
    Faz com que ele não se perca na compra, achando que o pedido já foi feito e que já pode receber a mercadoria (sem ter pago nada). Isso diminui bastante a taxa de compras não-finalizadas (Taxa de conversão).
leia mais

Módulos e extensões para SEO do Joomla

Otimizar um site para mecanismos de busca não é simplesmente ativar as urls amigáveis do Joomla. Existem alguns itens importantes e componentes para Joomla que tornam o trabalho de indexação praticamente automático e muito mais fácil.

Alguns itens importantes a se observar com relação ao conteúdo:

  • Organizar as categorias de  acordo com o conteúdo relevante do site
  • Escolher muito bem as palavras-chave e a descrição do site ( na configuração global do Joomla )
  • Colocar legendas ( atributo alt ) em imagens…
  • Mas isso não é tudo!! =)

Separei 2 plugins específicos para resolver alguns problemas de indexação de sites Joomla, que daí sim, o processo fica muito mais automatizado, deixando que o site trabalhe sozinho (digamos assim). Eis a lista:

Easy Ping

Easy Ping

Plugin Easy Ping

Easy Ping (1598)

Permite que um artigo, ao ser adicionado ou alterado, seja notificado em servidores que guardam atualizações de blogs para facilitar os mecanismos de busca, como o http://pingomatic.com/

Dentro deste plugin há uma configuração a fazer. Editando as configurações do plugin, no campo PING SERVICES, coloque as duas urls:

http://rpc.pingomatic.com/

http://blogsearch.google.com/ping/RPC2

Configurado, deve ficar assim:

Configurando o Easy Ping

Configurando o Easy Ping

Auto Meta SEO

Auto Meta SEO

Plugin Auto Meta Desc SEO

Auto Meta Desc SEO (1530)

Plugin que cria automaticamente uma descrição na meta-tag description de cada página inserida. Ajuda muito ao usuário, pois não é necessário atualizar cada página na aba do lado direito da edição de artigos, com a descrição para os mecanismos de busca.

Já este plugin é tão automatizado que não precisa configurar nada, só ativá-lo e boa =).

Bom, após um longo período sem postar, finalmente consegui separar um tempo para compartilhar o que de melhor eu acho na net, mas tem muito mais dicas e links no Delicious ou no Twitter. =)

Comentem o que acham, se gostaram do post, alguma dúvida, sugestão, comente!

leia mais
Page 1 of 41234