Magento: exibir nome da base de dados

Para exibir o nome da base de dados:

$dbname = (string)Mage::getConfig()->getNode('global/resources/default_setup/connection/dbname');
var_dump($dbname);

nov28

Magento: formatar preço de um produto

Snippet rápido pra quem quiser formatar o preço com a moeda de um produto no Magento:

 
//...
$_product->setPrice('10.00');
var_dump(Mage::helper('core')->currency(number_format($_product->getPrice(),2))); // imprime R$10,00

That´s it.

nov04

Magento: mensagens de sucesso e erro não aparecem.

Já falamos por aqui sobre mensagens de sucesso e erro no Magento.

Porém, muitas vezes as mensagens simplesmente não aparecem.

Um dos principais motivos é a inicialização dessas mensagens (que ficam em sessão) no controller do seu módulo. Se isto não é feito da maneira correta, as mensagens não ficam disponíveis na view. (Se vocẽ não sabe o que são controllers ou views, leia isso).

Como faço então para inicializar as mensagens de sucesso e erro no meu controller?

/**
* Controller da ação index.
*
*/
public function indexAction() {
        $this->loadLayout();
        // inicia as mensagens do usuário
        $this->_initLayoutMessages('customer/session');
        $this->getLayout()->getBlock('inscricaoForm')->setFormAction(Mage::getUrl('*/*/post'));
        $this->renderLayout();
}
// Assim funciona.

Note as mensagens são inicializadas após o método “loadLayout”. Geralmente, tendemos a invocar o método “_initLayoutMessages” no começo do método que estamos programando. Geralmente, é por isso que não funciona.

/**
* Controller da ação index.
*
*/
public function indexAction() {
        // inicia as mensagens do usuário
        $this->_initLayoutMessages('customer/session');
        $this->loadLayout();
        $this->getLayout()->getBlock('inscricaoForm')->setFormAction(Mage::getUrl('*/*/post'));
        $this->renderLayout();
}
// Assim não funciona.

Espero que ajude.

nov03

Magento: dados do cliente

$customer_id = 1; 
 
$customer_data = Mage::getModel('customer/customer')->load($customer_id);
 
var_dump($customer_data);

out24

Linux: histórico de comandos

Às vezes eu preciso saber um comando que executei há algum tempo num terminal. Para isso existe o comando “history”.
Uso:

 history

Também pode ser usado com o auxílio do poderos “grep”:

 history | grep Zend

set23

Magento: Métodos de pagamento ativos

public function getActivPaymentMethods()
{
       $payments = Mage::getSingleton('payment/config')->getActiveMethods();
 
       $methods = array(array('value'=>'', 'label'=>Mage::helper('adminhtml')->__('--Please Select--')));
 
       foreach ($payments as $paymentCode=>$paymentModel) {
            $paymentTitle = Mage::getStoreConfig('payment/'.$paymentCode.'/title');
            $methods[$paymentCode] = array(
                'label'   => $paymentTitle,
                'value' => $paymentCode,
            );
        }
 
        return $methods;
}

Fonte:
http://inchoo.net/ecommerce/magento/magento-how-to-get-all-active-payment-modules/

set20

Magento: exibindo SQL de collection

Para exibir o sql utilizado em uma classe de Collection no Magento você pode escolher uma das opções abaixo:

 var_dump((string)$collection->getSelect());

ou:

 var_dump($collection->getSelect()->assemble());

Créditos ao Willam Comnisky: http://blog.will.eti.br/2011/magento-exibindo-sql-de-collection/

set12

Snippet salva vidas

 for arquivo in 'cat lista.txt';do cp -R --parents $arquivo /tmp/arquivos-modificados/;
echo 'Movendo $arquivo';
done;
 

set09

Remover arquivos .svn

Para remover os arquivos .svn existentes na sua working copy (no Linux)

find . -iname .svn | xargs rm -fr

Sempre muito útil.

set01

Magento: Mensagens de Erro e Sucesso.

Para adicionar mensagens de sucesso ou erro na sessão é simples:

Mage::getSingleton('trabalheconosco/session')->addSuccess(
    $this->__('Mensagem de sucesso.')
);
Mage::getSingleton('trabalheconosco/session')->addError(
    $this->__('Mensagem de erro.')
);

jun28