Nouvelle version de jQuery Mosaic Gallery Plugin (0.3)

La version 0.3 du plugin jQuery Mosaic Gallery est disponible et corrige plusieurs problèmes. Plus d’info ICI.
Publié dans Fait maison | Laisser un commentaire

Suppression de tous les index MySQL avec PHP

Voici une petit code PHP pour supprimer tous les index d’une base MySQL, appliqué au framework Symfony, il supprime tous les clés étrangères créées et les index correspondants.

<?php

// Changez votre config ici
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_BASE', 'db');

// Connection à la base
$c = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_BASE);

// Désactivation de la vérification d'intégrité des clés
mysql_query("SET foreign_key_checks=0;");

// DROP des clés étrangères qui commencent par "FK_"
$resFk = mysql_query("SELECT DISTINCT table_name, constraint_name"
  . " FROM information_schema.key_column_usage"
  . " WHERE constraint_schema = '".DB_BASE."'"
  . " AND referenced_table_name IS NOT NULL"
  . " AND constraint_name LIKE 'FK_%'");
while($row = mysql_fetch_assoc($resFk))
{
	mysql_query("ALTER TABLE `".$row[table_name]."` DROP FOREIGN KEY `".$row[constraint_name]."`") or die(mysql_error());
}
mysql_free_result($resFk);

// On parcours la liste des tables
$resTables = mysql_query("SHOW TABLES;");
while ($table = mysql_fetch_row($resTables))
{
	// On parcours la liste des index de la table, dans cet exemple, qui commencent par "IDX_" (nommage de Symfony)
	$resIndexes = mysql_query("SHOW INDEX FROM `".$table[0]."` WHERE `Key_name` LIKE 'IDX_%';");
	while ($row = mysql_fetch_object($resIndexes))
	{
		// Enfin on drop l'index
		mysql_query("DROP INDEX `".$row->Key_name."` ON `".$row->Table."`;") or die(mysql_error());
	}
	mysql_free_result($resIndexes);
}
mysql_free_result($resTables);

// Réactivation de la vérification d'intégrité des clés
mysql_query("SET foreign_key_checks=1;");

mysql_close();
Publié dans Tip | Marqué avec , | Laisser un commentaire

Nouvelle version de Quick Localizable 1.2.2

Bonjour,

Quick Localizable 1.2.2 est désormais disponible sur le Mac App Store et apporte des corrections dans la recherche de chaînes à l’export CSV.

 

Publié dans Fait maison | Laisser un commentaire

Exemple de module Prestashop 1.5

Afin de comprendre comment se structure correctement un module sous Prestashop 1.5, j’ai fait un petit module qui vous montre quelques nouveautés orientées développeur sur la création et l’organisation d’un module sur Prestashop 1.5.

Il permet de gérer un flux (d’actu par exemple), donc ajouter/modifier/supprimer des éléments du flux. Un hook vous permettra d’afficher les derniers éléments dans un bloc à gauche et une page dédiée affiche la liste complète des éléments. Enfin, la configuration du module permettra de choisir le titre de la page, le nombre d’éléments et leur tri.

Il utilise entre autres :

  • La classe ModuleFrontController pour afficher la page du flux
  • La classe AdminController pour l’affichage de l’onglet d’administration et le CRUD de l’ObjectModel lié
  • La nouvelle structure des fichiers du module

Ca se passe sur GitHub.

Ce module n’est pas (encore ?) compatible avec Prestashop 1.4.x.

Publié dans Fait maison, Tutorial | Marqué avec , | Un commentaire

Liste des categories de module de Prestashop

Voici pour memo la liste des catégories de module. Le champs Key est à insérer dans la définition de votre constructeur de classe.

class MyModule extends Module 
{
   public function __construct()
   {
      $this->name = 'MyModule';
      $this->tab = '<Key>';
      //...
   }
}


KEY Nom PS 1.4.x PS 1.5.x
administration Administration Oui Oui
advertising_marketing Advertising & Marketing Oui Oui
analytics_stats Analytics & Stats Oui Oui
billing_invoicing Billing & Invoicing Oui Oui
checkout Checkout Oui Oui
content_management Content Management Oui Oui
export Export Oui Oui
emailing E-mailing Non Oui
front_office_features Front Office Features Oui Oui
i18n_localization Internationalization & Localization Oui Oui
merchandizing Merchandizing Oui Oui
migration_tools Migration Tools Oui Oui
payments_gateways Payments & Gateways Oui Oui
payment_security Payment Security Oui Oui
pricing_promotion Pricing & Promotion Oui Oui
quick_bulk_update Quick / Bulk update Oui Oui
search_filter Search & Filter Oui Oui
seo SEO Oui Oui
shipping_logistics Shipping & Logistics Oui Oui
slideshows Slideshows Oui Oui
smart_shopping Smart Shopping Oui Oui
market_place Marketplace Oui Oui
social_networks Social Networks Oui Oui
others Other Modules Oui Oui
mobile Mobile Oui Oui
Publié dans Memo | Marqué avec , | Laisser un commentaire

Trier avec les valeurs NULL a la fin dans une requete Doctrine

Si vous êtes comme moi et que souhaitez trier sur un champ, disons `dueDate`, mais avec la particularité que le tri place les valeur NULL de ce champ en fin de liste, cet article vous sera utile. MySQL tri par défaut les valeur NULL en début de liste, ce qui est gênant par exemple si vous voulez trier par date croissante avec les lignes dont la date est nulle en fin de liste.

Continuer la lecture

Publié dans Tip | Marqué avec , , | Laisser un commentaire

Nouveau plugin jQuery : Remote Select

Pour un petit plugin simple qui permet de remplir vos SELECT avec du JSON, viendez par là!

Publié dans Fait maison | Marqué avec , , | Laisser un commentaire

Quick Localizable 1.2 disponible

Bonjour,

Quick Localizable 1.2 est désormais disponible sur le Mac App Store et apporte la récursivité dans la recherche de chaînes à l’export CSV.

 

Publié dans Non classé | Marqué avec | Laisser un commentaire

Envoi de mail automatique apres un commit SVN

Tout d’abord, il faut installer les outils de subversion
Exemple sous Debian  :

apt-get install subversion-tools

Il faut ensuite activer le hook (script appelé par certains événements comme un commit) qui permettra d’envoyer notre mail lors de chaque commit.

Rendez-dans le dossier de votre dépôt.

cd /var/svn/mon_depot/hooks

Activer le hook en dupliquant le template

sudo cp post-commit.tmpl post-commit

Le rendre exécutable.

sudo chmod +x post-commit

Enfin voici les ligne à ajouter dans le post-commit pour indiquer l’envoi du mail

# Récupération du nom de dépôt depuis le contexte
REPOS="$1"
# Récupération du numéro de révision depuis le contexte
REV="$2"
# Récupération du nom de l'utilisateur qui a commité 
AUTHOR=$(svnlook author --revision $REV $REPOS)
# On envoie le mail
/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" -s "$AUTHOR |" email1@mondomaine.com, email2@mondomaine.com, liste@mondomaine.com


Pour information, les options de commit-email.pl sont les suivantes

  • -m regex
    Regular expression to match committed path
  • --from email_address
    Addresse email de l’expéditeur. Ecrase l’option -h
  • -h hostname
    Domaine de l’adresse email de l’expéditeur
  • -l logfile
    Ajoute le contenu du mail envoyé au fichier de lof spécifié par logfile
  • -r email_address
    Addresse email de réponse
  • -s subject_prefix
    Chaîne ajoutée en préfixe du sujet
  • --summary
    Affiche la première ligne de log dans le sujet (dans notre cas le message passé lors du commit)
  • --diff y|n
    Si égal a y le diff des fichiers commités est inclus dans le mail. Par défaut : y
  • --stdout
    Affiche en sortie le contenu du mail au format mbox
Publié dans Tip | Marqué avec | 2 commentaires

Convertir un timestamp Cocoa vers un timestamp Unix

Cocoa Core Data enregistre les timestamp sous une forme décimale.

Exemple pour le 2011-12-02 15:11:40, le timestamp de Core Date sera 344445101.716708 et le timestamp Unix sera 1322838700.

Pour le convertir il faut simplement ajouter 978393599 à 344445101.716708 (timestamp Cocoa)

Exemple de requête SQLLite pour obtenir un format DateTime YYYY-MM-DD HH:MM:SS :

SELECT DATETIME(datefield+978393599, 'unixepoch') FROM ztable

Publié dans Tip | Marqué avec , | Laisser un commentaire