Bloco de produtos em promoção e produtos randômicos do Magento

O template para os produtos em promocão fica localizado em appcodecoreMageCatalogBlockProductListPromotion.php. Para utilizar, acrescente ou crie um atributo promotion, de escopo global, input type yes/no,  e adicione ao set de atributos que você utiliza.

Para exibir os produtos em promoção utilize no xml de gerenciamento da sua página o código:

<block type="catalog/product_list_promotion"
       name="product_promotion"
       template="catalog/product/list.phtml"/>

ou insira pelo CMS:

{{block type='catalog/product_list_promotion'
        template='catalog/product/list.phtml'}}

O template do bloco de itens randômicos estão localizados em appcodecoreMageCatalogBlockProductListRandom.php, para chamar no xml de gerenciamento da sua página utilize:

<block type="catalog/product_list_random"
       name="product_random"
       template="catalog/product/list.phtml"/>

 

Configurando as páginas de erro do magento

Na instalação padrão, quando ocorre algum erro no Magento, ele mostra ao usuário uma tela baseada no layout padrão mostrando o código do Error Log. Isso é extremamente desagradável ao usuário por não entender o que aquilo significa.

Para personalizar as suas páginas de erro e ainda exibir um formulário de contato com o cliente que chegou na página de erro, procure na sua instalação a pasta errors/default/ e copie com o nome do seu template, ou seja error/meutemplate/

Renomeie o arquivo local.xml.sample que está dentro da pasta error/ para local.xml e abra para edição.

Altere os valores das tags de acordo com o desejado

  • <skin> – nome do template ao qual pertence a página de erro, ex.: meutemplate;
  • <action> – gerencia qual ação será tomada
    • print: para colocar o erro na tela. Ideal para usar no seu servidor de testes.
    • email: para enviar o erro por email.
  • <subject> – assunto do email
  • <email_address> – para qual email deverá ser enviado o erro.
  • <trash> – gerencia o que fazer com o erro.
    • leave: para gravar o erro no banco
    • delete: para limpar

Personalize os arquivos que copiou da pasta default, sendo os arquivos:

  • page.phtml: para emoldurar a página com o seu template
  • 404.phtml: para configurar a página com o erro de página não encontrada.
  • 503.phtml: para configurar a página com o erro de serviço indisponível.
  • report.phtml: para configurar a página que te enviará o relatório de erros por email.

Tente usar o mínimo de requisições ao core do Magento, pois se o erro ocorrer devido a falhas no core, o usuário não visualizará a página de erro.

Criação de Blocos de página no Magento

Um dos grandes problemas ao se trabalhar com o magento é a sua parte burocrática para a implementação de códigos. Para mudar simplesmente um menu de posição, será necessário um esforço muito maior do que temos hoje para executar o mesmo processo em um sistema Joomla ou WordPress.

Se por um lado é um sacrifício ter que passar por estas etapas, por outro, de acordo com a Varien, isso dá mais segurança.

Então para implementarmos um bloco de código, não é somente inserir um include, require ou implantar o código diretamente no template. Para exemplificar, farei a descrição das etapas para chamar um bloco de código que faça a exibição do menu principal da página. Proceda então da seguinte forma:

Crie o seu arquivo phtml dentro do caminho app/design/frontend/default/seu_tema/template/page/html/, neste caso nomeei como menuprincipal.phtml.

Abra o arquivo page.xml que está dentro de app/design/frontend/default/seu_tema/layout/

Como eu quero que o menu apareça dentro do bloco header, insiro a linha a seguir dentro do trecho de código xml que gerencia este bloco.

<block type="page/html_header" name="header" as="header">
    <block
     type="core/template"
     name="menuprincipal"
     as="menuprincipal"
     template="page/html/menuprincipal.phtml" />
</block>

Então temos quatro variáveis a serem preenchidas para a exibição correta do nosso bloco: type, name, as e template.

  • type identifica o tipo do bloco, você verá outros tipos na própria página page.xml
  • name é o nome do seu bloco;
  • as é o atalho que você usará para chamar este bloco e
  • template é o caminho para se chegar até o seu arquivo phtml.

Para finalizar, vá até o seu template do header que fica em app/design/frontend/default/seu_tema/template/page/html/ e insira o código que fará a chamada do seu bloco.

<?php echo $this->getChildHtml('menuprincipal') ?>

Você pode usar estes blocos para subdividir e gerenciar melhor o seu layout.

Referências

http://inchoo.net/ecommerce/magento/custom-reference-structural-block/

http://www.exploremagento.com/magento/simple-custom-module.php

Adicionando MySQL do MAMP ou XAMPP via linha de comando no Terminal do Mac

Apesar de termos o PHPMyAdmin como excelente ferramenta de gerenciamento do MySQL, existem algumas facilidades quando trabalhamos com o MySQL via linha de comando.

Por exemplo, para fazer ou restaurar backup de uma base de dados é muito mais rápido via linha de comando do que exportando o arquivo pelo PHPMyAdmin e reimportando pelo mesmo. Sem contar que dependendo do tamanho do arquivo podem ocorrer erros na importação e corromper os dados.

Para este tipo específico de problema, resolvi então buscar uma forma mais prática para usar o MySQL instalado pelo MAMP (ou XAMPP) na linha de comando do terminal.

Os resultados que mostro abaixo foram baseados no artigo “Command line MySQL not working with XAMPP” do site http://www.aschroder.com/2009/03/how-to-use-the-mamp-mysql-command-line-client-in-a-terminal/.

Abra o terminal, crie um diretório na raiz chamado bin e acesse.

mkdir ~/bin
cd ~/bin

Crie um atalho para a aplicação

ln -s /Applications/MAMP/Library/bin/mysql mysql

Para usar o XAMPP no lugar do MAMP é só substituir o atalho da aplicação pelo endereço do XAMPP no seu sistema. Abra o arquivo ~/.bash_profile, pode ser usando o comando PICO e VI do terminal ou como eu prefiro, usando o aplicativo TextWrangler. Se houver alguma linha escrita neste arquivo, adicione na linha seguinte:

export PATH=$PATH:/Users/__usuario__/bin/

Caso contrário digite:

export PATH=/Users/__usuario__/bin/:$PATH

Lembrando de trocar o termo __usuario__ pelo seu nome de usuario do sistema. Salve o arquivo, volte ao terminal e teste digitando:

echo $PATH

Verifique o atalho com:

ls -la ~/bin

E verifique qual endereço do MySQL está rodando no seu sistema com:

which mysql

Pronto, a partir de agora para acessar o mysql é só digitar no terminal:

mysql

E o prompt de comando já será alterado para responder ao MySQL.