Fin de page
Nov 23

Dans cet article, je vous propose de voir comment coder une nouvelle extension WordPress, en partant de rien…

Cette extension pourra elle-même servir de base pour la création de nouvelles extensions. Elle met en œuvre les fonctionnalités suivantes :

  • Détection d’un mot-clé dans un article afin de le remplacer par une valeur choisie
  • Interface multilingue
  • Utilisation d’options spécifiques à l’extension
  • Interface pour le réglage de ces options
  • Ajout d’un sous-menu pour accéder à la page de réglages
  • Ajout d’une nouvelle action pour l’extension dans la page des extensions installées pour également accéder à la page des réglages
  • Utilisation de JavaScript

Concrètement, coté utilisateur final, le tag utilisé sera remplacé par un nombre aléatoire… Libre à vous d’imaginer des extensions pouvant faire des traitements bien plus conséquents. ;)

Cet exemple est fonctionnel, à partir des version 2.7 (j’utilise des options qui n’existaient pas avant) de WordPress. Il fonctionne également avec WordPress MU.

On commence par créer l’arborescence :

  1. Dans le répertoire des extensions (<WP>/wp-content/plugins/), création d’un répertoire qui hébergera notre extension : random_number_generator
  2. Création d’un sous-répertoire qui hébergera nos fichiers de traduction : languages

Puis on crée les premiers fichiers qui nous seront nécessaires :
Dans le répertoire de notre extension :

<WP>/wp-content/plugins/random_number_generator/

  1. création d’un fichier texte dans lequel on va coder notre extension :
    random_number_generator.php
    (!!) Assurez-vous de ne pas laisser l’extension .txt
  2. création d’un fichier texte dans lequel on mettra du JavaScript :
    random_number_generator.js

On a donc ceci :

+---plugins
|   |
|   [...]
|   |
|   +---random_number_generator
|   |   |    random_number_generator.js
|   |   |    random_number_generator.php
|   |   |
|   |   \---languages
|   |
|   [...]

Il ne reste plus qu’à coder toutes les fonctionnalités précédemment citées…

Share
Oct 19

MaxMind fournit des bases de données de géolocalisationW, dont GeoLite City, qui est gratuit et permet de localiser géographiquement une adresse IP.
Cette base de données est actualisée tous les mois.

Une API pour Delphi est disponible, mais celle-ci, au jour d’aujourd’hui, n’a pas encore été portée sous Delphi 2009W, la première version UnicodeW qui introduit des nouveaux types de chaînes de caractères dans ce langage, et engendre une erreur avec l’API telle qu’elle est fournie.

Je suis donc parti de l'APIW fournie, et j’ai changé quelques types, casté quelques variables, et supprimé ainsi tous les warnings que j’obtenais… je ne suis pas un expert Delphi, loin de là, mais si cela vous interresse de récupérer un code qui compile, voici un exemple qui fonctionne. Vous aurez besoin de la base de géolocalisation, disponible à cette adresse pour pouvoir exécuter cette application : http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

Je me suis également inspiré de l’extension installée sur ce blog pour la localisation sur la planisphère et l’ajout des régions en toutes lettres…

Ces noms de régions viennent en plus de l’API standard… Les pays et régions sont soit en français, soit en anglais.
Lire la suite »

Share

Pages : 1 2 3

Lien permanent vers Exemple GeoLite City avec Delphi Rédigé par Whiler \\ Tags : , , , , , , , , ,

Oct 03

Histoire de garder une trace de la date…

  • J’ai effectué aujourd’hui la mise à jour de la galerie photos en la passant en version 2.0.4. J’en ai profité pour remettre d’aplomb les divers encodagesW en uniformisant le tout en UTF-8W, tant les pages web que les tables et les données de la base.
  • J’ai également changé la version de ce blog, en passant en version 3.3.1… Celle-ci est assez fastidieuse et j’ai complètement changé le thème… Je rencontre toujours des problèmes de compatibilité entre le plugin Lightbox et la barre d’outils de b2evolution… FirebugW m’aide mais je galère tout de même…
Share

Lien permanent vers Mises à jour Rédigé par Whiler \\ Tags : , , , ,

Début de la page