herve

Prestashop : Utiliser la liste des catégories produits dans un module

Si vous souhaitez utiliser la liste des catégories de produits Prestashop dans votre module voici comment procéder.

Prestashop 1.5

$categoryTree = new Helper();
	/**
	 *
	 * @param array $root array with the name and ID of the tree root category, if null the Shop's root category will be used
	 * @param type $selected_cat array of selected categories
	 *					Format
	 *						Array
	 * 					(
	 *							 [0] => 1
	 *						 [1] => 2
	 *					)
	 * 					OR
	 *					Array
	 *					(
	 *						 [1] => Array
	 *							  (
	 *									[id_category] => 1
	 *									[name] => Home page
	 *							  )
	 *					)
	 * @param string $input_name name of input
	 * @param bool $use_radio use radio tree or checkbox tree
	 * @param bool $use_search display a find category search box
	 * @param array $disabled_categories
	 * @param bool $use_in_popup
	 * @param bool $use_shop_context
	 * @return string
	 */
echo $categoryTree->renderCategoryTree(null,array(),'id-category-for-insert');

Prestashop 1.6

$categoryTree = new HelperTreeCategories('categories-tree', $this->l('Check the category to display the link'));
echo $categoryTree->setAttribute()
->setInputName('id-category')
->render();

Par contre ces helpers ne fonctionnent malheureusement qu’en back office.…

Prestashop : Utiliser la liste des catégories produits dans un module Lire la suite »

Mantis Bugtracker : Plugin auto suggestion des noms des bugs et des utilisateurs

Voici un nouveau plugin pour mantis Bugtracker : AutoSuggestion.

Le principe de celui-ci est relativement simple et part du problème suivant avec mantis bugtracker :

Lorsqu’on souhaite associer un bug à un autre il est souvent fastidieux de mémoriser l’identifiant que l’on souhaite saisir dans le champ « Relations »
Même problème lorsqu’on souhaite ajouter un utilisateur au suivi d’un bug.

Ce plugin va donc permettre une auto complétion de ces champs comme vous pouvez le voir sur les captures suivantes :

Auto Suggestion bug

Auto Suggestion utilisateur

Auto Suggestion top

Pour télécharger ce plugin c’est par ici : Télécharger mantisbg_autosuggest

Pour toute suggestion ou contribution n’hésitez pas à soumettre vos idées sur github : https://github.com/nenes25/mantisbt_autosuggest

Mantis Bugtracker : Plugin auto suggestion des noms des bugs et des utilisateurs Lire la suite »

Sécuriser l’accès à jenkins

Cet article fait suite à l’article suivant : Mise en place d’une plateforme d’intégration continue ( partie 2)

Une fois jenkins installé, celui-ci est disponible pour tout le monde et par défaut via l’ip de votre serveur sur le port 8080
En tapant http://ip-de-votre-serveur:8080 , n’importe qui visualisera donc les projets jenkins.

Pour sécuriser cela, nous allons mettre en place un reverse-proxy apache, qui communiquera avec le serveur jenkins.
Nous pourrons ainsi mettre en place une authentification basique htaccess / htpassword pour limiter les accès.
( Cela nécessite donc l’installation d’apache au préalable)

Dans mon exemple, je souhaite que le sous-domaine http://ci.example.com renvoie vers jenkins.
(Il faut donc au préalable faire pointer ce sous-domaine sur votre serveur )

Configuration du proxy

Pour commencer il faut activer le mode proxy et proxy_http d’apache, en saisissant les commandes suivantes

sudo a2enmod proxy
sudo a2enmod proxy_http

Passons ensuite à la création du fichier de notre vhost dans /etc/apache2/sites-availables/ créons un fichier jenkins.conf…

Sécuriser l’accès à jenkins Lire la suite »

Mantis Bugtracker : Télécharger plusieurs pièces jointes à la fois

Dans la continuité de mes plugins précédent concernant la gestion des pièces jointes pour Mantis Bugtracker ( qui n’est pas très pratique de base ), voici un nouveau plugin qui pour optimiser cette gestion.

En partant du constat suivant, pour télécharger les pièces jointes d’un bug, il est nécessaire de cliquer sur chaque élément, puis de les télécharger un par un.
Ceci reste pratique tant qu’il y’en a peu, mais devient vite long dès lors qu’on dépasse les 3 pièces jointes.

Ce plugin vous permettra donc de télécharger en une seule fois toutes les pièces jointes souhaitées :

dl-attachments

Il suffit de cocher les pièces jointes à télécharger dans la liste, puis de cliquer sur le bouton « Télécharger ».
Un fichier zip contenant l’ensemble des pièces demandées et ensuite généré.

Télécharger le module : mantisbt_MultipleFileDownload

Si vous souhaitez améliorer la gestion des pièces jointes sur votre application mantis, vous pouvez également consulter les liens suivants :

Mantis Bugtracker : Télécharger plusieurs pièces jointes à la fois Lire la suite »

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.…

Mise en place d’une plateforme d’intégration continue ( Partie 2 ) Lire la suite »

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>

Magento : conditionner l’insertion d’une ressource dans un layout xml Lire la suite »

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.

Mise en place d’une plateforme d’intégration continue ( Partie 1 ) Lire la suite »

Mantis bugtracker : Nouvelle version du plugin Reminder

Une nouvelle version du plugin Mantis Reminder vient d’être lancée.
( Le plugin a été créé en 2013 : https://www.h-hennes.fr/blog/2013/07/24/mantis-bugtracker-plugin-denvoi-dun-recapitulatif-hebdomadaire-des-bugs/ )

Ce plugin a été  optimisé, et il permets à présent de configurer le nombre des jours suivant l’envoi ,durant lesquels les bugs doivent être envoyés.
Ceci permets donc d’être notifié des dates d’échéances des bugs  2,3 semaines ou plus avant leur date de livraison
Il a également été traduit pour permettre de l’utiliser en plusieurs langues.

configuration-reminder

Au passage le plugin a été rendu disponible sur github : https://github.com/nenes25/mantisbt_reminder
Si vous souhaitez des nouvelles optimisations n’hésitez pas à les proposer directement sur cette plateforme.…

Mantis bugtracker : Nouvelle version du plugin Reminder Lire la suite »

Munin : Ajouter des plugins complémentaires

Après avoir installé munin, il y’a quelques semaines et afin d’optimiser le monitoring de mon serveur, j’ai souhaité installer des modules complémentaires.

Voici donc comment procéder pour installer des plugins sur munin.

Pour voir la liste des modules complémentaires de munin, entrez la commande suivante :

sudo munin-node-configure

Pour ma part j’ai activé le modules suivants : ( lié aux programmes fai2ban, postfix et à mysql )
– fail2ban
– postfix_mailqueue
– postfix_mailstats
– postfix_mailvolume
– mysql_queries
– mysql_slowqueries
– mysql_threads

Voici comment les activer

Fail2ban :

sudo  ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/fail2ban

Postfix :

sudo  ln -s /usr/share/munin/plugins/postfix_mailqueue /etc/munin/plugins/postfix_mailqueue
sudo  ln -s /usr/share/munin/plugins/postfix_mailvolume /etc/munin/plugins/postfix_mailvolume
sudo  ln -s /usr/share/munin/plugins/postfix_mailstats /etc/munin/plugins/postfix_mailstats

Pour Mysql il est nécessaire d’installer des packets complémentaires de cache via la commande suivante

sudo apt-get install libcache-{perl,cache-perl}

Puis

sudo  ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
sudo  ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
sudo  ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads

Editez ensuite le fichier /etc/munin/plugin-conf.d/munin-node…

Munin : Ajouter des plugins complémentaires Lire la suite »

Mantis Bugtracker : Personnaliser la page de visualisation d’un bug

A la suite de mon précédent article présentant comment personnaliser la page de soumission d’un bug , voici comment faire pour personnaliser la page d’affichage d’un bug avec Mantis Bugtracker
(Ceci fonctionne avec les versions supérieures à mantis 1.2 )

Note : La procédure à suivre pour modifier le formulaire d’édition d’un bug est exactement la même, mais il faut remplacer l’option de configuration par bug_update_page_fields

Voici l’affichage par défaut, sur lequel j’ai encadré en rouge les champs que je souhaite supprimer :

Afficher bug Mantis

Je souhaite donc supprimer les champs :

  • Impact
  • Plateforme
  • OS
  • Version

Avec mantis, les champs affichés sur cette page sont géré par l’option de configuration bug_view_page_fields

Il existe plusieurs options pour personnaliser cela

Via l’administration

Mantis bugtracker configurer view page

Rendez-vous dans « Administration/ Gérer la configuration ».
Choisissez ensuite l’utilisateur et le projet concerné.
Saisir l’option de configuration : bug_view_page_fields
Et le type « Complex »

Dans la configuration saissez la commande suivante
array (
0=> ‘id’,
1=>’project’,
2=>’category_id’,
3=>’view_state’,
4=>’date_submitted’,
5=>’last_updated’,
6=>’reporter’,
7=>’handler’,
8=>’priority’,
9=>’status’,
10=>’resolution’,
11=>’summary’,
12=>’description’,
13 =>’additional_info’,
14 =>’steps_to_reproduce’,
15 =>’attachments’,
16 =>’due_date’,
)

Via le fichier de configuration

Dans le fichier config_inc.php…

Mantis Bugtracker : Personnaliser la page de visualisation d’un bug Lire la suite »