Envoyer des notifications SMS gratuitement grâce à Free Mobile

free-mobileBien que ce ne soit plus une nouveauté au jour d’aujourd’hui, il y a quelques semaines, Free Mobile mettait à disposition une API permettant d’envoyer des notifications SMS directement sur son téléphone lié à son compte Free Mobile.

Je me suis dit que ce serait sympa à intégrer au logiciel d’alerte Leboncoin que je maintient sur GitHub. C’est chose faite avec la version 2.4 qui permet maintenant d’envoyer les alertes par SMS grâce à la nouvelle API de Free Mobile.

Pour l’occasion, j’ai écris une petite classe pour prendre en charge l’envoi des SMS. Je vous partage donc le code (c’est simple, mais peut toujours servir) :
Lire la suite

Howto: PHP-FFMPEG avec un PHP custom.

Il y a quelques temps, j’ai cherché à installer PHP-FFMPEG au coté d’une version personnalisée de PHP, mais ce fut un échec. L’idée était de pouvoir utiliser une version PHP beaucoup plus récente que celle fourni par défaut dans la distribution (Ubuntu 8.04 et PHP 5.2.4 à l’époque).

Aujourd’hui, sous Ubuntu 12.04, j’ai à ma disposition PHP 5.3.10. Or la dernière version stable à ce jour est la 5.5.7. L’objectif n’est pas de courir après la dernière version sortie, mais d’utiliser une version pas trop vieille, et surtout encore maintenue. Il y a encore pas mal de version 5.2 qui traîne alors qu’elle n’est plus maintenue.
Lire la suite

Comment améliorer les performances d’importation dans Prestashop ?

Je me suis pris la tête dernièrement sur le module interne d’importation de produit de Prestashop (version > 1.5). Vous trouverez l’histoire sur le forum d’OVH.

Le problème

L’importation d’environ 1400 produits (sans photo) prenait plus d’une heure à se faire. Oui oui, c’est extrêmement long. Je ne vous parle même pas du temps de l’importation des déclinaisons …

La solution

Lire la suite

Comment reprendre le téléchargement d’un fichier en PHP

Dans un précédent article, nous avons vu comment forcer le téléchargement de fichier en PHP. Vous pourrez trouver, sur plein de sites différents, des codes sources plus ou moins similaires l’un à l’autre, mais il est très rare de trouver un code de téléchargement de fichier permettant la gestion de la reprise de téléchargement. Le code de mon précédent article ne permet pas, lui non plus, de gérer la reprise du transfert (je l’avais précisé en fin d’article). Mais c’était voulu, chaque chose en son temps.

Voici quelques raisons d’implémenter cette fonctionnalité :

  • pouvoir mettre en pause afin d’effectuer une autre tâche (ex: un autre téléchargement plus important).
  • coupure imprévue (problème réseau, électricité, le chat qui passe sur la prise électrique, etc).
  • économiser de la bande passante. Quand on télécharge 30Mo sur 50Mo et qu’il faut recommencer, ça consomme de la bande inutilement.
  • pour le streaming, cela permet de naviguer dans la lecture sans attendre le téléchargement entier du fichier.
  • tout simplement parce que c’est possible, alors on le fait 😉

Je vais essayer de vous montrer comment reprendre le transfert d’un fichier en expliquant au mieux chaque étape de l’implémentation. Si toutefois, vous ne souhaitez pas avoir toutes une série d’explications avant d’avoir votre sésame, vous pouvez vous rendre immédiatement en bas de l’article récupérer le code entier.
Lire la suite

Comment forcer le téléchargement d’un fichier en PHP ?

Forcer le téléchargement d’un fichier consiste à forcer le navigateur à enregistrer le fichier sur votre machine au lieu de l’afficher directement dans une fenêtre (image, PDF, etc.).

En outre, ce fonctionnement permet de restreindre, si nécessaire, le téléchargement des fichiers à certains utilisateurs, suivant leur niveau d’accès par exemple.

Je vais donc vous expliquer comment gérer le téléchargement de fichier via PHP.
Lire la suite

Piwik : nouvelle version 1.5 et erreur de session.

PiwikPiwik vient de sortir officiellement dans sa version 1.5.

Nouveautés

La liste des nouveautés est alléchante. Outre les corrections habituelles de bug, on retrouve une nouvelle fonctionnalité de tracking spécialisé dans le e-commerce. Nous pourrons alors effectuer des statistiques sur le achats effectués, les paniers abandonnés, etc. Ce sont des statistiques orientées produit, et non plus visiteur.

Un autre point très important (pour moi en tout cas) est l’abandon de Flash pour l’utilisation de la balise canvas et de jQuery. Bien que je n’aprécie pas jQuery (je préfère de loin Mootools), je trouve que c’est un choix important qu’ils viennent de faire. Ça tend à prouver que Flash devient de moins en moins indispensable dans le domaine du graphisme (dans le sens graphe, etc. et non pas design de site).

Pour plus d’informations sur les autres nouveautés, vous pouvez visiter le blog de Piwik.

Lire la suite

GPosition : aide à la SEO.

Édit : page des dernières modifications.

Nouveau : 11/10/2011 – le script prend maintenant en charge Bing.

Présentation

GPosition va vous permettre de faire des analyses sur la position de votre site sur certain mot clé dans le moteur de recherche Google. Je l’ai créé à la base pour rechercher où se situait mon site dans le SERP (Search engine results page) de Google sur une certaine recherche. Ça, c’était dans sa première version. Aujourd’hui, je lance la version 1.2, qui permet plus de possibilités. Mais lisez la suite pour en savoir plus.

Lire la suite

Mise en forme : passer des tableaux (table) aux blocs (div)

Cet article est inspiré d’une conversation sur WebRankInfo.

Introduction

Aujourd’hui, la conception des sites web se fait de plus en plus en respectant les recommandations de la W3C (il y a encore des irréductibles). Il est maintenant recommandé de séparer la mise en forme de la structure HTML. Pour cela, on externalise cette mise en forme dans des fichiers CSS.

Ce principe permet de rendre l’application plus flexible en permettant de modifier la mise en forme d’un site sans remanier le HTML. En outre, en configurant correctement le cache du navigateur, vous épargnez à vos visiteurs un chargement plus long. Grâce au cache, les fichiers CSS seront téléchargés une et seulement une seule fois. Résultat :

  • moins de requête
  • moins de bande passante utilisée (ça va vite).
  • économie de serveur : au lieu de rendre toujours le même fichier, il peut s’occuper d’autre chose.

Ce sont les gros points.

Maintenant, il reste un gros point noir. En effet, certain utilise encore les tableaux pour mettre en forme leur site web. Hors, cela va à l’encontre du rôle des tableaux, conçut pour afficher des données tabulaires (comme dans un tableur). C’était bien pratique il y a 10 ans (voir plus), mais maintenant, il est temps de revenir sur la bonne route.
Lire la suite

Plusieurs boutons « submit » dans un formulaire

Dans quel cas aurions-nous besoin d’envoyer un formulaire via deux boutons « submit » différents ?

L’exemple typique est de définir une action « prévisualiser » et une action « envoyer » dans un formulaire de message d’un forum (ou un commentaire, etc.).

En effet, il est utile pour l’utilisateur de pouvoir prévisualiser son message avant de l’envoyer aux yeux de son public ce qui lui permet de voir le rendu de son message après traitement (BBcode, mot banni, etc.).

Il y a deux solutions, l’une utilisant JavaScript, l’autre en pur HTML. Par principe, nous préfèrerons utiliser la seconde solution, bien évidemment 😉

Lire la suite

Comment créer un « Lire la suite » avec TinyMCE

Pourquoi « lire la suite » ?

Récemment, j’ai eu besoin d’intégrer un système d’actualité pour mon application d’alerte mail leboncoin.fr. Le problème provient des actualités avec un long contenu. Une actualité peut effectivement occuper une grande place sur la page. Si bien que les autres passent un peu inaperçues.

La solution est donc de tronquer l’actualité afin de la rendre d’une taille raisonnable, linéarisant ainsi la page. En outre, cette technique permet d’éviter d’avoir du contenu dupliqué dans votre site web. Ce qui sera apprécié pour un bon référencement.

Pour la rédaction des articles, j’utilise TinyMCE. Je souhaite donc ajouter un bouton permettant d’insérer un élément séparateur indiquant l’endroit où l’article sera tronqué.
Lire la suite