herve

Serveur Dédiés : Surveillez vos logs avec Logwatch

En complément d’outils de suivi comme munin, il est possible de suivre l’état de votre serveur en analysant ses logs.

Pour cela il existe un outil de reporting très pratique : Logwatch.
Celui-ci va parcourir et analyser les fichiers de log des différents services, et vous enverra un rapport quotidien par courriel.

Pour l’installer c’est très simple :

sudo apt-get install logwatch

Pour le configurer ouvrez le fichier /usr/share/logwatch/default.conf/logwatch.conf

Rechercher la ligne :

MailTo = root

Et remplacer root par votre adresse email.

En conservant les options par défaut vous aurez à présent un email quotidien sur l’état de votre serveur 🙂…

Serveur Dédiés : Surveillez vos logs avec Logwatch Lire la suite »

Prestashop : Ajouter des champs au formulaire de contact

C’est une demande assez régulière , comment ajouter facilement des nouveaux champs sur le formulaire de contact prestashop ?
Avec le code de base il n’est pas évident de rajouter des champs car il n’existe aucun hook particulier qui permets d’utiliser un module sur cette page.

J’ai donc réalisé un nouveau module qui va permettre de rajouter des éléments de manière plus simple.
Ces nouveaux champs seront ensuite envoyés dans l’email récapitulatif au marchand.
( C’est une version basique de preuve de concept qui peut encore grandement évoluer 🙂 , testé uniquement sur la dernière version 1.6.1.4)

Vous pouvez le télécharger depuis github : https://github.com/nenes25/prestashop_contactformfields

Cependant il est pour l’instant nécessaire de comprendre son fonctionnement, et d’éditer du code pour pouvoir ajouter les nouveaux champs.

Avant d’installer le module , il faut éditer le fichier contact-form.tpl de votre thème.
Rajouter le code suivant à l’endroit ou vous souhaitez que les nouveaux champs apparaissent

{* Nouveaux champs pour le formulaire de contact : ce code créé un nouveau hook pour les modules *}
{hook h='contactFormAdditionnalFields'}

Vous pouvez à présent installer le module et sur la page du formulaire de contact vous devez avoir le visuel suivant :

Nouveaux champs

Ajout visuel des nouveaux champs

Le visuel et les noms des nouveaux champs sont éditables dans le fichier

contactformfields/views/templates/hook/hookContactFormAdditionnalFields.tpl…

Prestashop : Ajouter des champs au formulaire de contact Lire la suite »

Magento 2 : Mise en place d’un environnement de développement local

L’année 2016 devrait marquer la montée en puissance de la plateforme Magento2.
Voici comment mettre en place rapidement un environnement de développement local pour Magento 2
Nous allons passer par la création d’une machine virtuelle qui utilisera Vagrant et virtualbox.
Je suppose donc que vous savez vous servir de ces technologies.

Installation du serveur et récupération des fichiers

  • Faites un clone du github :https://github.com/IamSwap/MageBox  ( Cette image est un stack lamp avec Mysql 5.6 obligatoire pour magento 2
  • Exécutez la commande vagrant « vagrant up » pour lancer la vm
  • Télécharger ensuite l’archive de Magento 2 depuis la page des download Magento et placer la dans le dossier « public »
  • (Optionnel ) Ajouter un nom de domaine local vers l’adresse ip : 192.168.20.10 , ( ex : www.magento2.dev )

Une fois tous ces éléments effectués, les conditions sont en place pour passer à l’installation de Magento 2

Installation de Magento2

Pour procéder rapidement nous allons l’installer via la ligne de commande.…

Magento 2 : Mise en place d’un environnement de développement local Lire la suite »

Magento : Envoyer un email de confirmation au client qui utilise le formulaire de contact

Voici un petit article qui vous permettra d’ajouter simplement une fonctionnalité toute bête mais qui peut être très pratique.
L’envoi d’un message de confirmation à l’utilisateur qui vient d’envoyer un message via le formulaire de contact.

Pour cet exemple, je me suis fixé les contraintes suivantes :

  • Cet envoi doit être lié via un module spécifique
  • Ne pas réaliser de surcharge du module « Contacts » existant
  • Le contenu de l’email doit pouvoir être géré depuis les emails transactionnels.

C’est parti, pour cela on va donc créer un module qu’on va appeler Hhennes_Contacts.
Avec le fichier de configuration suivant : ( Hhennes_Contacts/etc/config.xml )

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Hhennes_Contacts>
            <version>0.1.0</version>
        </Hhennes_Contacts>
    </modules>
    <global>
        <models>
            <hhennes_contacts>
                <class>Hhennes_Contacts_Model</class>
            </hhennes_contacts>
        </models>
        <!-- Configuration de l'email transactionnel -->
        <template>
            <email>
                <contacts_email_recipient_email_template translate="label" module="hhennes_contacts">
                    <label>Formulaire de contact destinataire</label>
                    <file>contact_form_recipient.html

Magento : Envoyer un email de confirmation au client qui utilise le formulaire de contact Lire la suite »

Magento : Attributs global pas mis à jour sur tous les stores.

J’ai dernièrement rencontré un problème avec un attribut d’une portée globale, qui n’était pas mis à jour sur un store en particulier.
Le comportement rencontré était le suivant :

  • Le changement de la valeur de l’attribut dans le store global est bien pris en compte
  • La valeur de l’attribut n’est pas mise à jour dans le store spécifié
  • Changer la valeur de l’attribut sur le store spécifié ne modifie pas sa valeur.

Dans la majorité des cas ce problème est lié à un changement de portée de l’attribut, alors que des données avait déjà été renseignées.
Dans mon cas la portée initiale de l’attribut était par store, et elle a été passé au global.

Le problème est lié au fait que les données de l’attribut spécifiques au store n’ont pas été supprimées, malgré le changement de statut.
Il faut donc les supprimer manuellement via une requête du type :
sur les tables :

  • catalog_product_entity_datetime
  • catalog_product_entity_decimal
  • catalog_product_entity_int
  • catalog_product_entity_varchar

Pour supprimer tous les attributs :

DELETE FROM `catalog_product_entity_varchar` 
WHERE
   store_id <> 0 AND
   attribute_id IN (
           SELECT attribute_id 
           FROM catalog_eav_attribute 
           WHERE is_global = 1
 
   )

Ou pour un seul attribut :

DELETE FROM `catalog_product_entity_varchar` 
WHERE
   store_id <> 0 AND
   attribute_id  = xxx

Et pour finir visitez le site de rencontre sérieuse gratuite Oulfa.fr…

Magento : Attributs global pas mis à jour sur tous les stores. Lire la suite »

Magento : Événements création de compte client

Un petit tip rapide, si vous souhaitez réaliser des actions lors de la création d’un compte client sous Magento, il va falloir se baser sur 2 événements :

customer_register_success : Lancé lors de la création de compte depuis le formulaire standard.

checkout_submit_all_after : Lancé à la fin du passage d’une commande.
Dans cet événement il faudra également mettre la condition suivante :

if ($observer->getQuote()->getData('checkout_method') == Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER) {
 
//Votre code ici
 
}

Magento : Événements création de compte client Lire la suite »

Batch : Ajouter des entrées dans le fichier host

Voici un petit script batch qui vous permettra d’ajouter facilement des entrées dans votre fichier host :

:: Script d insertion de lignes dans un fichier batch
:: Herve-hennes - 2015
:: version 0.1.0
 
::Ne pas écrire les commandes exécutées
@echo off
::Couleurs d affichage de la fenetre
color 0A
::Titre de la fenêtre
title Ajouter une entree dans le fichier host
 
::Ce script doit etre execute en administrateur
:: Cf. https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights#11995662
net session >null 2>1&
if %errorLevel% GTR 0) (
 goto erreur_droits
)
 
::Saisie du nom de domaine a ajouter au host
set /p host=Entrer le nom de domaine a ajouter au fichier host :
 
::Saisie du host par defaut
set /p ip=Entrer l ip vers laquelle doit pointer le host (defaut: 127.0.0.1) :
 
::Attribution de la valeur par defaut si pas d ip renseignee
if "%ip%"=="" (
  set ip=127.0.0.1
 )
 
 ::Ecriture de la ligne dans le fichier de host
 :: @ToDo Il faut verifier que l entree n existe pas
 echo %ip% %host% >> %SystemRoot%\system32\drivers\etc\hosts
 
 echo Nouvelle ligne inseree dans le fichier host
 
 ::Permet de ne fermer la fenête que lorsque l utilisateur appuie sur une touche
 pause > null
 exit
 
 :: Texte affiche si les droits d execution du fichier ne sont pas suffisants
 :erreur_droits
  echo Ce script doit etre lance en administrateur pour fonctionner
 
::Permet de ne fermer la fenêtre que lorsque l utilisateur appuie sur une touche
:: mettre pause > null pour ne pas afficher le message
pause

Batch : Ajouter des entrées dans le fichier host Lire la suite »

Serveur dédiés : Ajouter du swap

Voici un petit post rapide pour expliquer comment mettre en place du swap sur votre serveur dédié ( ou sur votre vm ) tournant sous linux.

Ceci vous permettra d’éviter toutes les problèmes du type :

  • ‘proc_open(): fork failed – Cannot allocate memory’ avec composer
  • lancements de tests phpunit

C’est parti pour le code.
Je pars du principe que vous avez assez de place sur votre filesystem /
Nous allons créer un fichier de swap « swapfile » d’une taille de 2 go
( vous pouvez le remplacer par la valeur de votre choix, sous réserve de disposer d’un espace suffisant )

#creation du fichier de swap
sudo fallocate -l 2G /swapfile
#mise a jour des droits du fichier
sudo chmod 600 /swapfile
#declaration du fichier swap
sudo mkswap /swapfile
#activation du fichier swap
sudo swapon /swapfile

Vous pouvez ensuite vérifier que tout a bien fonctionné en lançant la commande suivante :

sudo swapon -s

Serveur dédiés : Ajouter du swap Lire la suite »

Magento : Ajouter des nouveaux attributs aux formulaires de création de compte

Une mise à jour de cet article pour Magento 2 est disponible : Magento 2 : Ajouter des nouveaux attributs aux formulaires de création de compte
Dans cet article nous allons voir ensemble comment ajouter proprement un nouvel attribut client qui sera affiché dans les formulaires suivants

  • Création de compte ( normal )
  • Création de compte ( checkout )
  • Création de compte ( admin )

Pour l’exemple nous allons créer un attribut « website_know », qui permettra de demander au client via quel source il a connu le site.

Le tout va être géré via un module nommé « Hhennes_Customer ».
Je ne détaillerais pas toutes les étapes de création du module mais uniquement les points particuliers.

Partie Code :

Pour commencer voici le fichier de configuration de notre module.

 <?xml version="1.0"?>
 
<config>
 
    <!-- Configuration de base du Module -->
    <modules>
        <Hhennes_Customer>
            <version>0.1.0</version>    
        </Hhennes_Customer>
    </modules>
 
    <!-- Configuration globale -->
    <global>
        <helpers>
            <hhennes_customer>
                <class>Hhennes_Customer_Helper</class>    
            </hhennes_customer>
        </helpers>
       <!--

Magento : Ajouter des nouveaux attributs aux formulaires de création de compte Lire la suite »

Prestashop : Ajouter automatiquement les clients à un groupe lors de l’inscription

Afin de segmenter vos clients dans prestashop, il est utile de les ranger dans des groupes clients spécifique.
Ce nouveau module Prestashop, vous permettra d’assigner automatiquement les clients aux groupes souhaités dès leur inscription en fonction de paramètres prédéfinis.

Pour l’installation, comme pour tous mes modules hébergés sur github, l’installation par zip ne fonctionne pas.
Il est nécessaire de déposer le dossier « customerautogroups » , dans le dossier « modules » de votre site via FTP.

Une fois le module installé, un nouvel onglet est disponible dans l’administration, dans « client/ Customer Auto Groups »

Autogroups menu

Vous pouvez ensuite accéder à la liste des règles et créer vos nouvelles règles.

Liste règles auto groupes

 

Les règles sont cumulables et priorisables.

Voici par exemple le formulaire d’édition d’une règle, qui ajouter automatiquement tous les client  qui sont des hommes ( çad dont le champ Client « id_gender » = 1 ) dans un groupe client « Hommes »

customerautogroups

Les conditions possibles sont liées à tous les champs des classes Customer et Address.…

Prestashop : Ajouter automatiquement les clients à un groupe lors de l’inscription Lire la suite »