DigitalSpirit / Blog

Écriture dans les fichiers Tomtom Ov2 et Garmin Asc

Pour faire suite au billet précédent concernant la lecture de fichiers au format Tomtom Ov2 et Garmin Asc, voici la même librairie avec en plus le support de l'écriture.

Voici un petit exemple du fonctionnement :

<?php
/* Ov2 and Asc reader / writer
hugo arobase digitalspirit dot org
c.rincheval, 2007
*/

require 'geo.class.php';

$content = array(0 => array(
'lon' => -3.22,
'lat' => 49.19,
'label' => 'poi 0'
),
1 => array(
'lon' => -5.45,
'lat' => 52.12,
'label' => 'poi 1'
)
);

$file = 'test.ov2';

$format = 'ov2'; // 'asc';

// Writing data to file !
geo::writeData($file, $format, $content);

// Read file
$data = geo::getData($file, $format);

print_r($data);

?>

L'exemple ci dessus se contente d'écrire dans un fichier (test.ov2) les 2 poi du tableau et ainsi la fonctione getData lit ce fichier et l'affiche.

Ouvrir l'article

Hyla 0.8.2

Hyla 09 novembre 2007 par hugo

Une version de maintenance est disponible depuis ce soir, il s'agit de la version 0.8.2 qui corrige 3 bugs :

  • Correction dans l'installeur des chemins css et js qui étaient erronés
  • Correction d'un problème d'affichage de l'icône racine dans la liste des commentaires et pour les dossiers ayant une icône spéciale
  • Correction d'un bug empêchant l'utilisation correcte des plugins flv, mp3, swf
  • Ajout d'un test sur la provenance des fichiers avant upload

Afin de vous simplifier la mise à jour, voici, ci dessous, les fichiers qui ont été modifiés, contentez-vous de remplacer les anciens par ces derniers :

  • /install.php
  • /src/upload.php
  • /src/act.php
  • /src/inc/define.php
  • /src/inc/obj.class.php
  • /src/inc/plugin.class.php

La page de téléchargement

Ouvrir l'article

Lecture de fichiers Tomtom Ov2 et Garmin Asc

Pour les besoins de Hyla 0.8.1 et, plus particulièrement, de son plugin Géo, j'ai créé une librairie d'accès aux fichiers Ov2 de Tomtom et Asc de Garmin, ces derniers contiennent des informations géographiques, et notamment, des POI.

Cette librairie vous permet d'extraire les données contenues dans les fichiers sus-cités sous forme de tableaux directement exploitables dans votre application.

Voici le contenu du fichier test fourni qui se contente de lire un fichier au format Ov2 et fait un "dump" du contenu du tableau renvoyé :

<?php
/*  Ov2 and Asc reader
    hugo arobase digitalspirit dot org
    c.rincheval, 2007
 */

require 'geo.class.php';

$data = geo::getData('FON_FR.ov2', 'ov2');

print_r($data);

?>

Comme vous le voyez, l'utilisation est très simple...

En annexe, une archive contenant la classe, un fichier de test et un fichier au format ov2.

Ouvrir l'article

Librairie Php simple pour l'Api Flickr

J'ai écrit une librairie pour accéder à l'API Flickr (pour ceux qui sorte du fin fond de la jungle et qui n'en ont jamais entendu parler, je vous laisse y jeter un oeil) qui vous permettra d'accéder à l'ensemble des fonctionnalités distantes qu'offre le service.

Certain me diront qu'ils en existent une multitude sur le net et ils auront raison, enfin, presque, car, aucune de celles que j'ai trouvée ne me convenaient, bien trop complexe pour certaines, plutôt sales pour d'autres, j'ai donc décidé d'écrire la mienne avec comme seules contraintes, faire quelque chose de simple et qui fonctionne...proprement.

L'archive contient un fichier test.php, en voici le contenu :

<?php

/* Minimalist class for accessing Flickr web services
hugo arobase digitalspirit dot org
c.rincheval, 2007
*/

require 'flickr.class.php';

define('FLICKR_KEY', 'YOUR_FLICKR_KEY');
define('FLICKR_SECRET', 'YOUR_FLICKR_SECRET');

$flk = new flickr(FLICKR_KEY, FLICKR_SECRET);

$args = array();
$rsp = $flk->request('flickr.photos.getRecent', $args);

if ($rsp['stat'] == 'ok') {
$url_img = 'http://farm%s.static.flickr.com/%s/%s_%s%s.jpg';
foreach ($rsp['photos']['photo'] as $photo) {
echo '<img src="'.sprintf($url_img, $photo['farm'], $photo['server'], $photo['id'], $photo['secret'], '_s').'" alt="" />';
}
}

?>

Cet exemple va chercher sur le site de Flickr les photos les plus récentes et les affichent directement sur la page.

Comme vous pouvez le voir, c'est relativement simple et vous pouvez, comme je l'ai fait, étendre ces fonctionnalités en dérivant de cette classe.

Vous trouverez ci-joint l'archive contenant les sources de la classe, le fichier d'exemple et le fichier de license GNU/GPL.

Ouvrir l'article

Sortie de Hyla 0.8.1

Je suis heureux de vous annoncer la sortie de Hyla 0.8.1 qui apporte son lot de nouveautés et quelques corrections de bugs, dont, voici, ci dessous la liste :

Nouveautés

Plugins

  • Refonte globale du système de plugins
  • Ajout du plugin geshi (affichage du code source d'énormément de formats de fichiers, voici les extensions prisent en compte : as, a, ada, adb, ads, conf, ash, asm, asp, sh, c, h, cdfg, cpp, hpp, css, dpk, dpr, html, htm, java, js, lisp, lua, pas, pl, pm, php, php3, php4, php5, phtml, phps, py, bi, sas, bas, xml)
  • Ajout du plugin geo qui permet d'afficher sur une map (Google Maps) les fichiers au format KML, les fichiers OV2 de TomTom et les fichiers ASC de Garmin
  • Modification des fichiers info.xml dans les plugins et ajout de l'attribut enabled permettant de désactiver un plugin
  • Introduction des plugin d'url qui permettent de générer des url de toute sorte et ajout du plugin d'url pathinfo
  • Le fichier de configuration général des plugins (/conf/plugins.ini) est remplacé par un fichier (conf.ini) directement dans le dossier des plugins en nécessitant

Fontionnalités

  • Possibilité de spécifier le format voulu lors du téléchargement d'un dossier, d'un fichier ou d'une archive (tar, gz, tgz, zip)
  • Il est dorénanant possible pour chaque utilisateur de changer son mot de passe lui même
  • Ajout d'un système permettant à un utilisateur de créer son compte de lui même (basé sur la contribution de KaZaad sur le forum)
  • Ajout du choix concernant la création des comptes par les utilisateurs dans l'interface d'administration
  • L'export du contenu des plugins permet d'afficher le contenu d'un plugin directement dans un billet sur son blog ou sur un forum, il existe actuellement en export iframe et javascript, voir explication dédié à l'exportation
  • La possibilité de spécifier une limite (download_dir_max_filesize) indiquant à partir de quelle taille il ne faut plus sauvegarder le cache d'un dossier archivé

Apparence

  • Création de la feuille de style "Flat Dark"
  • Ajout du plugin jQuery tablesorter permettant de trier les éléments des tableaux
  • Les css et js des modèles sont placés respectivement dans les dossiers css et js des modèles

Pour les développeurs

  • Ajout d'une méthode permettant d'ajouter des entêtes quelconque dans le "head" d'une page (utile pour les plugins ayant besoin d'ajouter des scripts js)
  • Les plugins possèdent maintenant, dans leurs fichiers info.xml, une balise (minversion) permettant de définir la version minimale de Hyla

La documentation à bien sûr été mise à jour et je vous invite à la consulter !

Liens

  Merci à TuxFamily pour l'hébergement du projet !

Ouvrir l'article

Le futur de Hyla

Hyla 30 août 2007 par hugo

Une toute nouvelle version de maintenance qui apporte quelques nouveautés est en cours de bêta test actuellement, elle est d'ailleurs passé en Release Candidate et devrait sortir très prochainement, promis !

Par la suite, Hyla va subir de gros changements lui apportant de nouvelles fonctionnalités qui lui manque actuellement...

Voici la liste des fonctionnalités actuellement prévues pour la future version, par ordre d'importance :

Majeures :

  • Sélection multiple : permettre de déplacer un ensemble de fichiers / dossiers d'un coup
  • Ajout des Web Services : pouvoir commander Hyla à distance, ajouter de l'Ajax...etc...
  • Tags : Tagger n'importe quel contenu et générer un nuage de tag, être en mesure de faire des recherches sur les tags
  • Passer les actions en plugins : Simplifier la maintenance et la logique
  • Système de panier
  • Plugin db : ajouter un système de plugin database permettant de choisir le type de base (mysql, sqlite, postgres...)
  • Plugin admin : Faire en sorte de passer l'administration sous forme de plugin (plugin user, group...)
  • Système de logging permettant d'enregistrer toutes les actions

Mineures :

  • Permettre de spécifier un courriel pour chaque utilisateur

Pas sûr ?

  • Permettre de spécifier plusieurs FOLDER_ROOT
  • Ajouter l'édition dans les plugins
  • Pouvoir spécifier une licence (ou disclaimer) pour un fichier
  • ...

Voilà, si vous aussi, avez des idées pour l'avenir de Hyla, n'hésitez pas !

Web Services :

Afin de pouvoir ajouter des fonctionnalités Web 2.0 (sans pour autant perdre en accessibilité, pas d'inquiétude), Hyla vas se voir doter d'un système de services web permettant d'interroger Hyla à distance, par exemple, en Ajax...

Le principe de fonctionnement retenu pour faire fonctionner ces derniers sera celui de Flickr.

Voici une liste non exhaustive des points d'entrées des web services qui seront présent :

Objets :
  • hyla.obj.getInfo
  • hyla.obj.search
  • hyla.file.getContent
  • hyla.obj.attribute.get
  • hyla.obj.attribute.set
  • hyla.dir.getList
Action :
  • hyla.obj.action.copy
  • hyla.obj.action.move
  • hyla.obj.action.delete
  • hyla.obj.action.mkdir
  • hyla.obj.action.rename
Permissions :
  • hyla.dir.perms.get
  • hyla.dir.perms.set
  • hyla.dir.perms.del
Tags :
  • hyla.obj.tag.add
  • hyla.obj.tag.set
  • hyla.obj.tag.getList
  • hyla.obj.tag.remove
Commentaires :
  • hyla.obj.comment.add
  • hyla.obj.comment.edit
  • hyla.obj.comment.delete
  • hyla.obj.comment.getList
Utilisateurs :
  • hyla.user.add
  • hyla.user.delete
  • hyla.user.getList
  • hyla.user.getInfo
  • hyla.user.auth
  • hyla.user.logout
  • hyla.user.setType
  • hyla.user.setPassword
  • hyla.user.testLogin
Groupes :
  • hyla.group.add
  • hyla.group.rename
  • hyla.group.delete
  • hyla.group.getList
  • hyla.group.user.add
  • hyla.group.user.del
  • hyla.group.user.getList
Logs :
  • hyla.log.add
  • hyla.log.getList
  • hyla.log.clear
Test :
  • hyla.test.echo
Ouvrir l'article

Hyla - Exportation dans blog, forum, wiki...

Voici une nouveauté que vous retrouverez dans la toute prochaine version de Hyla, elle vous permet d'exporter le contenu de n'importe quel plugin Hyla oû vous le souhaitez...en l'occurence, ici, directement dans ce billet...

Quelques exemples valent mieux que de longs discours :

Export de fichier Flv

Exportation de fichier source

Exportation d'archive

Exportation de fichier csv, tsv

Tous les plugins sont bien sûr exportables...

Deux modes d'exportation sont disponibles :

  • iframe : À l'aide d'une iframe, le contenu du plugin Hyla sera alors inséré.
  • javascript : Un bout de code javascript va écrire directement dans votre page le contenu du plugin.

Voilà, vous en savez un peu plus sur les toutes dernières nouveautés de la toute prochaine version de Hyla qui devrait sortir prochainement...

Ouvrir l'article