Fatal error: Method Varien_Object::__tostring() cannot take arguments


Le message d’erreur suivant : « Fatal error: Method Varien_Object::__tostring() cannot take arguments » s’affiche en général lorsque l’on essaye d’installer un Magento 1.3 sur un serveur PHP en 5.3. Normalement la version 1.3 n’est pas compatible avec la version PHP 5.3

Voici un tuto afin de pouvoir faire marcher la version 1.3 sur un PHP 5.3 Continuer à lire … « Fatal error: Method Varien_Object::__tostring() cannot take arguments »

Could not determine temp directory, please specify a cache_dir manually


Un message d’erreur assez connu que j’ai rencontré récement  : « Could not determine temp directory, please specify a cache_dir manually ».

Ce message m’ai apparu en admin après avoir changé de version PHP sur mon serveur, passage de 5.2 à 5.3.

Pour corriger cela, il faut modifier un certain fichier « File.php » situé dans :
–  lib/Zend/Cache/Backend/ pour les versions 1.4.1.0 et au dessus
– app/code/core/Zend/Cache/Backend/ pour les versions antérieurs à 1.4.1.0

Rechercher dans ce fichier le code suivant :

protected $_options = array(
'cache_dir' => 'null',

et le modifier de cette facon :

protected $_options = array(
'cache_dir' => 'tmp/',

Créer ensuite un dossier nommé « tmp » à la racine de votre site magento et lui octroyer les droits en 777 sur votre serveur (très important).

Une fois cette manipulation effectuée, le problème est résolu.

Testé et validé sur magento 1.3 à 1.7

Fatal error : call to undefined function mcrypt module open


Un vilain message d’erreur s’est affiché sur mon Magento aujourd’hui :

Fatal error : callto undefined function mcrypt module open

Ce message d’erreur fait référence à l’extension mcrypt de PHP qui serait manquante dans la configuration PHP du serveur web.

Pour corriger cela, regarder dans le PHP.ini pour contrôler si l’extension ne serait pas désactivée (c’était mon cas). Normalement elle est installée de base sur wamp / mamp en local et sur tous les serveurs web chez les hébergeurs.

Liste de pages CMS


Afficher la liste des pages CMS Magento peut toujours servir pour les afficher d’un seul bloc dans le footer au lieu de les coder à la main et en dur.

Voici une méthode pour les afficher dynamiquement :

<ul>
<?php
// listing des pages CMS
$cms_pages = Mage::getModel('cms/page')->getCollection()->addOrder('title', 'ASC');
foreach($cms_pages as $_page)
{
$data = $_page->getData();
echo '<li><a href="'.$data['identifier'].'"><span>'.$data['title'].'</span></a></li>'."\n";
}
?>
</ul>

Je rajoute un script pour ne pas afficher la page 404 (qui porte l’ID 1) dans cette liste :

<ul>
 <?php
 // listing des pages CMS
 $cms_pages = Mage::getModel('cms/page')->getCollection()->addOrder('title', 'ASC')->addFieldToFilter('page_id', array('neq'=>'1')));
 foreach($cms_pages as $_page)
 {
 $data = $_page->getData();
 echo '<li><a href="'.$data['identifier'].'"><span>'.$data['title'].'</span></a></li>'."\n";
 }
 ?>
 </ul>

Code testé et valide sur les versions 1.3 à 1.7

Afficher la valeur d’un attribut


Parfois, dans la liste des produits ou la fiche produit Magento, nous avons besoin d’afficher la valeur d’un attribut.

Pour cela deux méthodes :

$product->getmyattribute();
 $product->getAttributeText('myattribute');

Testez les deux en général si la première ne retourne rien, la seconde passe !

Testé et fonctionnel sur Magento 1.3 à 1.7