herve

Prestashop : Ajouter un editeur wysiwyg sur la description des catégories

Voici un code pratique et rapide à mettre en place afin de pouvoir afficher du texte html dans la description des catégories sur la plateforme ecommerce Prestashop ( version 1.4.xx )

Edit : Si vous souhaitez réaliser cette action sur prestashop 1.5 vous pouvez consulter l’article suivant : Ajouter un editeur wysiwyg sur la description des catégories (prestashop 1.5 )

Comme nous allons toucher à des fichiers de l’administration cette modification nécessite de toucher au code du coeur de prestashop.
En effet l’override de cette partie n’est pas encore géré dans cette version.

Pour commencer nous allons afficher l’éditeur TinyMce sur le block description de la catégorie

Dans le fichier /admin/tabs/AdminCategories.php  (ligne 138 sur ma version ) rajouter la classe « class=rte » sur le textearea de la description.

foreach ($this->_languages AS $language)
echo '
<div style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;">
<textarea class="rte" name="description_'.

Prestashop : Ajouter un editeur wysiwyg sur la description des catégories Lire la suite »

Magento : Ajouter un attribut produit via un module

Petit script pratique aujourd’hui pour ajouter rapidement un attribut produit via un module personnalisé.
Dans notre cas nous allons également créer un groupe d’attribut spécifique qui sera ajouté à tous les jeux d’attributs produits.
Puis pour finir nous ajouterons l’attribut directement dans ce groupe d’attributs.

Le code suivant est à placer dans le fichier d’install ou d’upgrade de votre module.

 

$installer = $this;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
 
/**
 * Création du nouvel Attribut produit "product_picto"
 * Creation of the new product attribute "product_picto"
 */
$setup->addAttribute('catalog_product', 'product_picto', array(
    'label' => 'product_picto',
    'type' => 'varchar',
    'input' => 'select',
    'backend' => '',
    'frontend' => '',
    'global' => 0,
    'visible' => true,
    'required' => false,
    'user_defined' => 1,
    'option' => array(
        'value' => array(
            'none' => array('none'),
            'exclu-web' => array('exclu-web'),
            'nouveaute' => array('nouveaute'),
            'top-ventes' => array('top-ventes'),
        )
    ),
    'used_in_product_listing' => 1,
    'default' => 'none',
));
 
 
/**
 * Création d'un groupe d'attribut "V2" et ajout du nouvel attribut "product_picto" dans ce groupe pour tous les jeux d'attributs
 * Creation of an attribute group "V2" and add of the new attribute "product_picto" in this attribute group  for all attributes sets
 */
$attributesSetIds = $setup->getAllAttributeSetIds('catalog_product');
 
foreach ($attributesSetIds as $attributesSetId) {
 
    $setup->addAttributeGroup('catalog_product', $attributesSetId, 'V2');
    $setup->addAttributeToGroup('catalog_product', $attributesSetId, 'V2', 'product_picto');
 
}
 
$installer->endSetup();

Après l’installation ou la mise à jour de votre module voici le résultat obtenu 🙂

Magento : Ajouter un attribut produit via un module Lire la suite »

Subversion : Gestion des droits des utilisateurs par dossier

En complément de mes précédents articles sur l’utilisation de subversion sur l’hébergement mutualisé d’ovh.
Voici comment gérer de manière plus avancée les droits des utilisateurs sur les différents dossiers de votre svn.

Je pars du principe que les précédentes étapes ( Installation du dépot svn et configuration des utilisateurs ) sont déjà réalisées.

A présent il faut vous connecter à votre hébergement via ftp.
Rendez-vous dans le dossier « svn/test/conf/ » (test correspondant au nom de votre projet)

Récupérer le fichier svnserve.conf pour activer la gestion de authentification.
Décommenter la  ligne anon-access = read
Et remplacer ‘read’ par ‘none’

Décommentez également la ligne authz-db = authz

Dans mon cas le contenu de mon fichier est actuellement le suivant :

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
 
### Visit http://subversion.tigris.org/

Subversion : Gestion des droits des utilisateurs par dossier Lire la suite »

Magento : Possibilité de s’identifier comme n’importe quel client sur le front office.

J’ai récemment été confronté à la problématique d’afficher des informations de clients non visibles depuis le back office.
Pour les voir il était donc nécessaire de se connecter comme ce client sur le front office du site avec la restriction de ne pas disposer du mot de passe client.

Après quelques recherche dans les classes Magento, j’ai trouvé une fonction qui correspondait parfaitement à mon besoin dans le fichier app/code/core/Mage/Customer/Model/Session.php
Cette fonction est la suivante :

/**
* Authorization customer by identifier
*
* @param   int $customerId
* @return  bool
*/
public function loginById($customerId)
{
$customer = Mage::getModel('customer/customer')-&gt;load($customerId);
if ($customer-&gt;getId()) {
$this-&gt;setCustomerAsLoggedIn($customer);
return true;
}
return false;
}

Elle permets de se connecter en tant que client en disposant uniquement de l’id client.…

Magento : Possibilité de s’identifier comme n’importe quel client sur le front office. Lire la suite »

Magento : Erreurs dans les rapports Multisites / Multidevises

J’ai récemment été confronté à un problème dans les rapports Magento pour une boutique  comportant plusieurs sites.
Pour le site Anglais utilisant la livre sterling (£) les montants des rapports étaient toujours égal à 0, comme vous pouvez le voir sur la capture suivante.
( Aucun problème pour les autres sites, car la monnaie par défaut est l’Euro (€) )

Erreur Export Magento Montant 0

Après pas mal de recherches j’ai trouvé que le problème était lié au fait que les taux de devises n’étaient pas définis dans « Système / Gestion des taux des devises », comme vous pouvez le voir sur la capture ci-dessous :

Gestion des taux de devises Magento

Pour que les données des prochaines commandes soient correctes, il faut renseigner un taux entre ces 2 devises.
Dans mon cas je vais partir du postulat 1€ = 1£ et renseigner les champs en conséquence.

A présent il va falloir régler le cas de toutes les commandes déjà passées.
Pour réaliser ses rapports, magento utilise le champ « base_to_global_rate » dans la table « sales_flat_order ».…

Magento : Erreurs dans les rapports Multisites / Multidevises Lire la suite »

Magento : Utiliser l’éditeur wysiwyg sur un champ d’administration personnalisé

Si lors de la création d’un nouveau module, vous souhaitez utiliser l’éditeur wysiwyg de magento sur un champ personnalisé dans l’administration, voici un code rapide et pratique à mettre en place.

Dans le controller qui éxecute le formulaire d’ajout/édition de votre module rajouter la ligne suivante :

if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
$this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
}

Dans la configuration de votre formulaire adaptez le code suivant :

$fieldset->addField('page_content', '<strong>editor</strong>', array(
'label' => Mage::helper('etatpur_cms')->__('content'),
'required' => true,
'name' => 'page_content',
'style' => 'height:36em;',
'wysiwyg' => true,
'config' => Mage::getSingleton('cms/wysiwyg_config')->getConfig(),
));

Et voila vous avez à présent un bel éditeur wysiwyg sur votre champ 🙂

Editeur wysiwyg sur champ personnalisé magento

Attention :
J’ai rencontré des problèmes dans le cas ou le champ sur lequel je souhaitais appliquer l’éditeur était intitulé content , dans ce cas l’éditeur était appliqué sur le mauvais champ, ce qui rendait l’édition impossible.…

Magento : Utiliser l’éditeur wysiwyg sur un champ d’administration personnalisé Lire la suite »

Utilisation des svn keywords

Petite astuce pratique aujourd’hui dans l’utilisation de subversion avec Toirtoise Svn.

Si comme moi vous vous êtes déjà demandé à quoi correspondait ce type d’information dans les entêtes d’un fichier php

/**
 * $Revision: 309 $
 * Last-Modified : $Date: 2012-07-24 10:53:07 +0200 (mar., 24 juil. 2012) $
 * Id : $Id: list.phtml 309 2012-07-24 08:53:07Z herve $
 */

Ces infos correspondent aux keywords svn et sont automatiquement remplacées par les bonnes valeurs pour les fichiers modifiés lors d’un commit des modifications.

Pour bénéficier de ces informations voici comment procéder avec Toirtoise Svn :

Pour commencer faites un clic droit sur le répertoire racine de votre dépôt.
Puis dans les options « Toirtoise SVN » cliquer sur « Properties ».

La fenêtre suivante est ensuite affichée :

Svn Properties

Cliquer sur « New ».
Dans property name sélectionner « svn:keywords ».

Les options disponibles sont les suivantes :

  • URL,Head url : Url de base du projet
  • Author,LastChangedBy : Auteur de la dernière modification du fichier
  • Date,LastChangedDate : Date et heure de la dernière modification du fichier
  • Rev,LastChangedRevision : Dernière révision  ou le fichier a été modifié
  • Id : Résumé des 4 mots-clé précédents.

Utilisation des svn keywords Lire la suite »

Mantis bugtracker : changer le projet d’un bug depuis le formulaire de modification.

Petite astuce rapide, mais relativement pratique lorsque l’on travaille avec plusieurs projets avec mantis bugtracker, il est courant de saisir un bug dans le mauvais projet.
Pour corriger cela, il n’existe qu’un seul moyen, éditer directement ces informations dans la base de données…
Pas très pratique vous en conviendrez !

Pour faciliter cela quelques modifications suffisent :

Pour commencer nous allons éditer le fichier bug_update_advanced_page.php situé à la racine du dossier.

A la ligne 120 ( Avant le début du formulaire d’édition), rajoutez le code suivant :

#  Formulaire pour changer le projet d'un bug
echo '<form action="bug_update_change_project_page.php" name="form_bug_update_change_project" method="post" >
<input type="hidden" name="bug_id" value="',$f_bug_id,'" />
<input type="hidden" name="new_project_id" id="new_project_id" value="0" />
</form>';
# Fin Formulaire

Remplacez ensuite les lignes suivantes :

# Project Name
echo '<td>', $tpl_project_name, '</td>';

par

#Possibilité de changer le projet du bug
echo '<td>', $tpl_project_name,'<br />',
lang_get('change_project'),'&nbsp;
<select id="select_change_project_id" onchange="document.getElementById(\'new_project_id\').value

Mantis bugtracker : changer le projet d’un bug depuis le formulaire de modification. Lire la suite »

Magento : Configurer un montant maximum de commande

Edit 2015 :
Cette solution est datée, et n’est pas la plus pratique.
Préférez plutôt la solution proposée par le lien suivant : http://inchoo.net/magento/magento-maximum-allowed-order-amount/

Si pour une raison x ou y vous souhaitez limiter le montant maximum des commandes réalisées sur votre site ecommerce magentento, voici une solution rapide pour réaliser cette action.
( cette modification a été mise en place sur une version 1.4.1.1 de magento )

Pour réaliser cette action, nous allons ajouter une vérification du montant du panier, avant l’ajout de nouveaux éléments à celui-ci.
Ce comportement est géré dans le modèle du panier situé dans le fichier suivant app/code/core/Mage/Checkout/Model/Cart.php.

Pour commencer et avant toute modification, faites une copie de ce fichier dans le dossier app/code/local/Mage/Checkout/Model/Cart.php

Passons à présent au code , nous allons mettre en place une nouvelle variable qui contiendra le montant maximum du panier au format numérique.

/**
* Montant maximum de la commande
*/
protected $_CartMaxAmount = '400';

Nous créons ensuite une fonction qui sera chargée de vérifier que le montant du panier est bien inférieur au montant défini dans notre variable précédente.…

Magento : Configurer un montant maximum de commande Lire la suite »

Mantis bugtracker : ajouter un statut personnalisée sur la page « Mon affichage »

En complément de mon précédent article qui présentait comment ajouter une étape dans le workflow de mantis, voici une nouvelle astuce dans l’utilisation du bugtracker mantis.

Nous allons voir  comment ajouter notre nouveau statut personnalisé dans les blocs situés dans la page « Mon affichage » (my_view_page.php).
Dans cet exemple nous souhaitons rajouter un bloc qui affichera l’ensemble des bugs qui sont en attente de mise en production. (cf article précédent)

Pour commencer nous allons mettre en place les nouveaux éléments nécessaires dans le fichier de configuration config_inc.php :

nous rajoutons la ligne suivante :

$g_bug_waiting_for_prod_status_threshold = 70;

le 70 correspond au numéro de workflow du statut de bug « En attente de mise en production »
c’est déjà fini pour le fichier de configuration 🙂

Passons ensuite au fichier custom_strings_inc.php dans lequel nous allons ajouter la ligne suivante :

$s_my_view_title_waiting_for_prod = "En attente de mise en production"

Pour personnaliser cette chaine avec votre statut, utilisez la racine « $s_my_view_title_ » suivi du nom de votre statut.…

Mantis bugtracker : ajouter un statut personnalisée sur la page « Mon affichage » Lire la suite »