Magento : ajouter le mail des clients dans le grid des commandes de l’admin

Copiez le fichier : /app/code/core/Mage/Adminhtml/Block/Sales/Grid.php dans le répertoire local.

Modifier la méthode _prepareCollection() de la manière suivante :

$collection = Mage::getResourceModel($this->_getCollectionClass());
        $collection->getSelect()
                ->join(
                ‘mag_customer_entity’,
                ‘main_table.customer_id = mag_customer_entity.entity_id’, array(‘customer_mail’ => ‘email’));
        $this->setCollection($collection);
        return parent::_prepareCollection();

Puis ajoutez la colonne dans la fonction _prepareColumns()

$this->addColumn(‘thumbnail’, array(
                ‘header’    => Mage::helper(‘Sales’)->__(‘Email’),
                ‘width’     => ’100px’,
                ‘index’     => ‘customer_name’,
                ‘type’        => ‘text’,
            ));

Magento 1.6.2 problème « groupe d’attribut »

Mais où est donc passé les « groupes d’attributs » dans la version de magento 1.6.2 avec le back-office traduit en français ?

Et bien n’ayez crainte il suffit de corriger la ligne 618 dans le fichier ./app/locale/fr_FR/Mage_Catalog.csv :

Vous ne pouvez pas le retirer de ce jeu d\’attributs.

par :

 Vous ne pouvez pas le retirer de ce jeu d’attributs.

 

Templavoila : problème avec le nom d’un Object Path

Avec un TYPO3 4.5.6 et un Templavoila 1.5.5 nous avons eut un problème avec un ‘Typoscript Object Path’.

En effet ce dernier devait s’appeler ‘lib.field_titre_variante’ et il nous a été impossible de lui assigner un simple texte.

Par contre en changeant ce nom en ‘lib.titre_variante’ il était alors possible de faire ce que nous voulions avec ce champ.

Il semblerait qu’il n’est pas possible d’avoir des noms avec deux uderscore, à moins que ça ne soit un problème de longueur du nom du champ.

TYPO3 : problème de session los de l’installation

Selon la configuration du serveur il nous arrive parfois à avoir du mal à installer TYPO3.

C’est lorsque le système nous demande d’entrer un password que le site tourne parfois en boucle même si nous avons entré le bon password.

Pour controuner le problème modifiez la fonction ‘isAuthorized’ du fichier ‘./typo3/sysext/install/mod/class.tx_install_session.php’ en la forçant à retourner ‘true’.

ATTENTION il est impératif de remodifier immédiatement cette fonction dès que l’install est terminé.

TYPO3 : capter le contenu d’une page en Ajax

Il est très simple à l’aide de TYPO3 de créer des menus ou de liens pointant vers une autre page. Mais parfois nous avons simplement envie de récupérer le contenu de cette page et de l’afficher en Ajax, sans être obligé de faire rafraichir toute la page de l’internaute.

Le principe est simple :

  • Appeler en Ajax la page du plugin avec l’id de la page souhaitée (http://vorte_site.com?eid=ajaxContent&id=5).
  • Votre plugin reçoit la requête en POST ou GET et va chercher la page en question.
  • Le problème à ce moment est que vous avez tout le design de la page, vous pouvez alors l’épurer à l’aide d’une expression régulière.

Voici un exemple de fonction permettant le renvoie du contenu d’une page. Bien sur il faut en plus de cet exemple créer une petite extension, intégrer la page contenant le code ci-dessous au système Ajax de TYPO3 et réaliser la function Ajax en Javascript.

//on va chercher la page en question à l'aide de l'id passé en post ou get
$returned_content = get_data($_SERVER['SERVER_NAME'].'/index.php?id='.$_REQUEST['id']);

//ici il est aussi possible de chercher des valeurs créer par exemple par templavoila et dans les retourné dans un tableau json

$array['html'] = $returned_content;

echo json_encode($array) ;

//cette fonction fait un curl et épure le code de retour pour n’avoir que le contenu qui nous intéresse
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
//ce preg_match doit être remplacé ou modifié en fonction de votre design
preg_match(‘/\(.*?)\/s’, $data, $content);
return $content[1];
}
?>