Archives pour la catégorie ‘ Trucs et astuces’

Alternative a wampserver : Vagrant

Si comme moi, vous développez sous Windows, et que vous utilisez wampserver pour faire tourner vos sites locaux, vous avez sans doutes déjà été agacé par les installations d’outils spécifiques sous windows ( composer , npm , phpunit ect… )

Voici donc une alternative simple et rapide à mettre en place.
Cela prendra un peu plus de temps que d’installer wamp mais une fois votre plateforme en place, vous aurez à votre disposition un linux en local.

Pour mettre l’infrastructure en place, voici les étapes à réaliser

Une fois les logiciels installés, vous pouvez maintenant installer des centaines de machines virtuelles préconfigurées en fonction de vos usages, celles-ci sont acessibles sur la plateforme https://atlas.hashicorp.com/boxes/search

Pour du développement local, je me suis basé sur l’image « Scotch Box » : https://box.scotch.io/ qui dispose entre autre des fonctionnalités suivantes :

Serveur : ( MySQL, PHP 5.5, Ruby, Git,Composer,Apache … )
Front End : (NPM, Grunt, Bower… )

Pour l’installer, il suffit de cloner le projet github

git clone https://github.com
Pas de commentaires

Mise en place d’une plateforme d’intégration continue ( Partie 2 )

Une fois l’ensemble des éléments nécessaires à nos tests fonctionnels ( Installation des éléments nécessaires aux tests fonctionnels ) en place, passons à la partie suivante.
L’installation et la configuration de jenkins pour l’exécution des tests fonctionnels.

Installation de jenkins

Pour installer jenkins saisissez les commandes suivantes

wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

Il faut ensuite le lancer jenkins via la commande suivante

sudo service jenkins start

Jenkins est ensuite accessible sur le port 8080 de votre serveur via l’url : http://ip-de-votre-serveur:8080

Configuration et sécurisation de Jenkins

Pour commencer mettez à jour les plugins de jenkins via les liens :
– Administrer Jenkins
– Gestion des plugins
– Dans l’onglet mises à jour sélectionner tout les plugins à mettre à jour
– Cliquer sur « Télécharger maintenant et installer après redémarrage »
Gestion des plugin Jenkins

Sécuriser Jenkins :

Par défaut jenkins est accessible en accès complet et sans authentification, nous allons donc mettre en place des restrictions.…

Pas de commentaires

Magento : conditionner l’insertion d’une ressource dans un layout xml

Un petit rappel pratique si comme moi vous souhaitez ajouter un fichier css ou js d’un de vos modules sur une page magento via les layout xml, mais que celui-ci doit être conditionné à un paramètre de votre module ( actif ou non )

Voici comment procéder.
Par exemple pour ajouter un fichier css et un fichier js dans la page onepage_index, uniquement si le parametre mymodule/display/onepage/ est actif
Dans le fichier de layout de votre module dans « app/design/frontend/default/theme/layout/yourmodulelayout.xml »
Il faut rajouter la condition ifconfig= »mymodule/display/onepage/ »

<checkout_onepage_index>
<reference name="head">
<action method="addCss" ifconfig="mymodule/display/onepage/">
<stylesheet>namespace/module/css/ui-lightness/jquery-ui-1.8.14.custom.css</stylesheet>
</action>
<action method="addItem" ifconfig="mymodule/display/onepage/">
<type>skin_js</type>
<name>namespace/module/js/jquery-ui-1.8.14.custom.min.js</name>
</action>
</reference>
</checkout_onepage_index>
Pas de commentaires

Mise en place d’une plateforme d’intégration continue ( Partie 1 )

Afin de suivre le bon déroulement de vos projets, il est important de pouvoir tester de manière régulière que votre applications fonctionne bien.
Ceci peut être réalisé via la mise en place de tests unitaires et fonctionnels, d’analyse de code etc…

Pour suivre cela de manière optimale, la mise en place d’une plateforme d’intégration continue est la suite logique de l’évolution de votre projet dès lors qu’il atteint une taille importante, ou qu’il comporte de nombreuses fonctionnalités spécifiques.

Il existe plusieurs plateforme pour réaliser cela, mais je vais me baser sur la plus connue : Jenkins (ex Hudson )

L’objectif à la fin de ce guide est d’avoir une plateforme de tests fonctionnels opérationnelle.
Celle ci-sera basée sur phpunit et selenium et firefox en mode headless
La procédure étant assez longue, ce sujet va être séparé en 2 articles :

– Installation des éléments nécessaires aux tests fonctionnels
– Installation et configuration de jenkins pour l’exécution des tests fonctionnels

Installation des éléments nécessaires aux tests fonctionnels.

Pas de commentaires

Motorola Moto G : Plus de smileys

Sur mon téléphone motorola Moto G suite à l’insertion d’une nouvelle carte sim ( en mode double sim) , les smileys des messages ne fonctionnaient plus.
Pour corriger ce comportement la manipulation est toute simple ( Avec Android Kitkat 4.4.4 )

Cliquer sur l’icone en haut à droite , puis « Paramètres »

config-android

 

Dans les options « Messages texte (SMS) »

config-android-2

 

Choisissez le mode de codage « Automatique »

config-android-3

De mon côté cela à résolu ce problème de smiley…

2 commentaires

Créer un utilisateur mysql avec PhpMyAdmin

( Cet article suppose que vous avez phpmyadmin d’installé sur le serveur, et les accès pour vous identifier en root a PhpMyAdmin, si PhpMyAdmin n’est pas installé vous pouvez consulter le tutoriel suivant : installer phpmyadmin

– Par défaut lors de l’installation de votre serveur, seul un utilisateur root avec des accès complets est créé.
Si vous souhaitez installer de multiples sites sur votre serveur, il n’est donc pas sécurisé d’utiliser le compte root par défaut pour tous vos sites.

Nous allons donc voir comment créer un utilisateur supplémentaire avec uniquement les droits nécessaires au bon fonctionnement d’un site web via l’interface PhpMyadmin

Connectez vous à PhpMyAdmin avec l’utilisateur root

Puis rendez-vous dans l’onglet « Utilisateurs »
phpmyadmin-utilisateur

Cliquer ensuite le bouton « Ajouter un utilisateur »

phpmyadmin-utilisateur-2

Le formulaire de création de compte apparait :

phpmyadmin-utilisateur-3

Renseignez :

  • nom d’utilisateur
  • mot de passe
  • confirmation mot de passe
  • client : local ( pour des raisons de sécurité, n’authorise que les connexions depuis le serveur lui-même )

Au niveau des droits d’accès, comme nous souhaitons une utilisation web :

  • Tous les droits sur la section « Données « 
  • Les droits suivants sur la section « Structure » : CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES
  • Aucun droits sur la section « administration »

Concernant les limites de ressources, libre à vous de les configurer en fonction de l’utilisation de votre serveur.…

3 commentaires

Bonnes pratiques : Mise en place d’un environnement de développement normalisé avec NetBeans

Avec leur multiples contributeurs, la maintenabilité des solutions open-source est relativement complexe.
C’est pourquoi celles-ci instaurent des normes de développement qui garantissent la qualité et l’apparence du code.
Ces normes peuvent avoir pour nom « PSR-1 », « PSR-2 » etc..

Je vais vous détailler comment mettre en place un environnement de développement qui vous permettra de suivre au mieux ces normes.
Selon les développeurs, l’éditeur peut varier, pour ma part j’utilise NetBeans au quotidien et j’en suis vraiment très satisfait.

Je vais donc vous détailler comment procéder pour tout configurer avec cet éditeur 🙂 sous Windows
( Certains points sont communs à l’ensemble des éditeurs // Cette méthode ne prétends pas être la meilleure mais détaille l’ensemble des étapes nécessaires à la mise en place)

Installation de Wampserver

Télécharger le fichier d’installation en 32 ou 64 bits en fonction de votre ordinateur depuis le site : http://www.wampserver.com/
Procéder à l’installation standard de Wampserver dans sa dernière version.
( Nous partirons du postulat que Wamp sera installé dans le dossier c:/wamp/ )

Une fois l’installation de wampserver effectuée, il faut se connecter à la console Windows ( Touches Windows + R / puis cmd )
Puis il faudra se rendre dans le dossier c:/wamp/bin/php/php.x.x.x

Pas de commentaires

Prestashop 1.4 : Afficher le prix produit sans l’écotaxe

Par défaut l’affichage du prix des produits sous Prestashop ( version 1.4 ) inclus l’écotaxe dans son montant.
Si pour différentes raison il vous est nécessaire de modifier cet affichage voici comment l’afficher sans l’écotaxe.

Pour commencer il est nécessaire de surcharger la classe Product dans le fichier override/classes/Product.php
Dans cette classe nous allons ajouter 2 fonctions qui vont récupérer les prix sans l’écotaxe.

<?php
 
/**
 * Surcharge de la classe produits
 *
 */
class Product extends ProductCore {
 
 
    /**
     * Reprise de la fonction getPrice mais en appellant la fonction getProductPriceStatic avec le paramètre ecotaxe à false
     *
     * @param boolean $tax With taxes or not (optional)
     * @param integer $id_product_attribute Product attribute id (optional)
     * @param integer $decimals Number of decimals (optional)
     * @param integer $divisor Util when paying many time without fees (optional)
     * @return float Product price in euros
     */
    public function getPriceWithoutEcotax($tax = true, $id_product_attribute = NULL, $decimals = 6, $divisor = NULL, $only_reduc = false, $usereduc = true, $quantity = 1) {
        return Product::getPriceStatic((int) ($this->id), $tax, $id_product_attribute, $decimals, $divisor, $only_reduc, $usereduc, $quantity,false, NULL, NULL, NULL, $this ,false);
    }
    
    /**
     * Reprise de la fonction getPrice mais en appellant la fonction getProductPriceStatic avec le paramètre ecotaxe à false
     *
     * @param boolean $notax
     * @param intege $id_product_attribute
     * @return float Product price in euros
     */
    public function getPriceWithoutReductWithoutEcotax($notax = false, $id_product_attribute = false)
    {
        return Product::getPriceStatic((int)($this->id), !
2 commentaires

Prestashop 1.4 : Créer un controller Front Office pour un module

Dans sa version 1.4, la gestion des controllers front office des modules n’est pas aussi optimisée que sur les versions suivantes.
Malgré tout cette version reste encore assez utilisée sur des anciennes boutiques.

Voici donc comment créer « proprement » un module qui disposera d’un controller front office.
Par proprement j’entends un module qui déposera les fichiers nécessaires aux bons emplacements, et qui peut être désinstallé sans laisser de traces 🙂

Le nom du module sera « sample » et sa structure sera la suivante :

Structure du module sample

Les contenus des fichiers css,js et tpl n’ayant pas d’importance je ne détaillerais pas leur contenu. ( il s’appelleront respectivement sample.css , sample.js et sample.tpl )

Voici le contenu du fichier de gestion du module « sample.php »
C’est dans ce fichier via les fonction _installModuleController et _uninstallModuleController que le controller Front office du module est bien installé ou supprimé

<?php
 
if (!defined('_PS_VERSION_'))
exit;
 
class Sample extends Module {
 
/** Nom de la page Front Office du module */
private $_module_page_name = 'sample_front_office_page';
 
 
public function __construct() {
 
$this->name = "sample";
$this->tab = "others";
$this->version = '0.1.0';
$this->author = "Hennes Herve";
$this->need_instance = 0;
 
parent::__construct();
$this->displayName = $this->l("Sample Module");
$this->description = $this->l("Sample module with front controller");
}
 
/**
* Installation du module
*/
public function install() {
 
//Installation Standard du module
if (!
5 commentaires

Magento : Importer / Exporter les produits complémentaire ( upsell , crossell , related ) via les profils avancés

Suivant la même méthodologie que l’import export des commentaires clients, nous allons voir à présent comment importer/ exporter les produits complémentaires.

Nous partons du postulat que nous créons un nouveau module « Module_Dataflow »
( les étapes de création du module ne seront pas détaillées )

Cette méthode fonctionne pour les éléments suivants :

  • Produits apparentés
  • Ventes incitatives
  • Ventes croisées

 

Voici le xml pour l’export des produits complémentaires

<action type="mymodule_dataflow/convert_parser_LinkedProducts" method="unparse">
<!-- Filtrage par produit <var name="product_id" >157</var> -->
<!-- Filtrage par type export ( upsell|crossel|related) defaut : upsell ) <var name="type">upsell</var> -->
</action>
<action type="dataflow/convert_mapper_column" method="map">
</action>
<action type="dataflow/convert_parser_csv" method="unparse">
<var name="delimiter"><![CDATA[;]]></var>
<var name="enclose"><![CDATA["]]></var>
<var name="fieldnames">true</var>
</action>
<action type="dataflow/convert_adapter_io" method="save">
<var name="type">file</var>
<var name="path">var/export</var>
<var name="filename"><![CDATA[exports-produits-complementaires.csv]]>
3 commentaires


Archives

Compte Github