herve

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')->load($customerId);
if ($customer->getId()) {
$this->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 »

Trucs et astuce : Emuler pour mieux intégrer

Une petite astuce rapide qui m’a servi récemment.

Lors de l’intégration d’un site internet, le rendu est souvent différent en fonction des ordinateurs et navigateurs.

Pour débugguer sous Internet Explorer, il existe certes les modes de compatibilités, cependant le rendu n’est pas toujours conforme à ce qui est réellement visualisé par l’utilisateur. La meilleure solution consiste donc à émuler des ordinateurs virtuels reprenant différentes configurations.

Pour faire cela, rien de plus facile, pour une fois microsoft à pensé à tout, et de manière gratuite de plus !

Dans mon cas, je souhaitais visualiser un site sous Windows XP et Internet Explorer 7.

Pour commencer il faut télécharger le logiciel « Virtual Pc » depuis l’adresse suivante : http://www.microsoft.com/windows/virtual-pc/

Télécharger ensuite le fichier « Windows XP Mode » depuis le même site.

Installer ensuite ces 2 logiciels, et le tour est joué ! Vous avez un joli pc virtuel entièrement fonctionnel sous Windows XP.

Libre à vous ensuite d’installer les navigateurs que vous souhaitez ( Cette image intègre encore Internet Explorer 6…)

Vous trouverez également des images des systèmes d’exploitation Vista et Seven depuis l’adresse suivante :

http://www.microsoft.com/download/en/details.aspx?id=11575

Trucs et astuce : Emuler pour mieux intégrer Lire la suite »

Magento : créer une sauvegarde des versions de pages cms

Un petit tip utile pour ce vendredi sur la plateforme Magento.
Par défaut, la version community ne comporte pas de sauvegarde des modifications des pages CMS.
Cette fonction peut cependant être très utile en cas d’une erreur ou d’une suppression intempestive d’un contenu.

Voici donc un petit tips pour remédier à tout cela rapidement ( sans interface d’administration pour l’instant…, juste une sauvegarde de la base de données).

Nous allons commencer par créer un module magento que nous allons nommer « CmsVersionning ».
Pour cet article celui-ci sera situé dans l’arborescence « app/local/Hhennes/CmsVersionning/ » (à adapter selon vos préférences)

Nous commençons par le fichier xml de configuration du module à placer dans app/etc/modules

 <?xml version="1.0"?>
<config>
    <modules>
        <Hhennes_CmsVersionning>
            <active>true</active>
            <codePool>local</codePool>
        </Hhennes_CmsVersionning>
    </modules>
</config>

Passons à présent au processus de création de ce module :

Pour commencer nous allons créer le fichier de configuration.…

Magento : créer une sauvegarde des versions de pages cms Lire la suite »