Si tu lis ceci c’est que le titre ne t’a pas découragé, bravo!

Aujourd’hui donc, un article qui va te piquer les yeux.

Ayant récemment eu besoin (en PHP) d’afficher le contenu d’une variable tableau sous forme de treeview, je me suis rendu compte que les bouts de code permettant une telle opération étaient plus que rares sur la toile, et que ceux disponibles étaient compliqués voire complètement pourris. Tu noteras que je tiens en très haute estime certains de mes compatriotes développeurs.

N’étant jamais mieux servi que par soi-même je me suis lancé dans le codage d’une fonction récursive, le résultat s’est avéré être beaucoup plus simple que prévu.

Bref, voici le code miraculeux fait maison, basique et efficace, parce que c’est tout ce qu’on lui demande.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Fonction de dessin basique d'un "array" PHP sous forme de treeview
// 10.05.2011 - gael@memepasmal.ch - http://www.memepasmal.ch/2011/05/10/php-array-treeview/
function drawTree($myarray, $level = 0)
{

    // Boucle sur chaque élément du tableau
    foreach($myarray as $key => $value)
    {
   
        // En cas d'objet on convertit en tableau
        if (is_object($value)) $value = (array)$value;
       
        // Si l'élément est un tableau
        if (is_array($value)) {
       
            // On l'affiche en tant que noeud
            echo '<div style="padding-left: ' . ($level * 20) . 'px">[' . $key . ']</div>';
           
            // Puis on affiche son arborescence, à un niveau supérieur
            drawTree($value, $level + 1);
           
        } else {
       
            // C'est une valeur, on l'affiche
            echo '<div style="padding-left: ' . ($level * 20) . 'px">' . $key . ' = <b>' . $value . '</b></div>';
           
        }
       
    }

}


Tu copies ça quelque part dans ton code PHP, tu appelles la fonction « drawTree » en passant ta variable array en paramètre, et puis tu admires le splendide résultat en sirotant ta bière.

Merci de ton attention, tu peux maintenant reprendre une vie normale.    Imprimer Imprimer   
Grâce à mes conseils technologiques de la veille tu pouvais faire tomber la magie enneigée de nouyelle sur ton blog, je vais aujourd’hui te montrer comment améliorer cette féerie ambiante.

Le problème du tutoriel d’hier est qu’il te faut modifier ton fichier « header.php » pour y inclure le code JavaScript chaque début décembre et le re-modifier à la fin de l’hiver pour retirer le script, au risque de voir tomber des flocons sur ton blog en plein mois d’août. On n’a pas tous la patience nécessaire de l’exercice, et demander des modifications à son webmaster trop souvent risque fort de finir par l’énerver profondément.

Voici donc un petit bout de code PHP fait maison qui permet de limiter magiquement automatiquement l’exécution du script des flocons entre décembre et janvier compris.

Dans ton fichier « header.php » tu remplaces donc la ligne que je t’ai suggérée hier.

1
<script type="text/javascript" src="/snowstorm.js"></script>


Par celles-ci.

1
2
3
4
5
6
<?php
    // Limite l'intégration du script de tempête de neige entre décembre et janvier compris
    if ((date("n") == 12) || (date("n") == 1)) {
        echo '<script type="text/javascript" src="/snowstorm.js"></script>';
    }
?>


Et ainsi, chaque année cette saleté de magie s’opérera toute seule.

J’en profite pour te souhaiter un noyeux Joël, que les jolis flocons et le cholestérol te soient propices en cette fin d’année! , ,    Imprimer Imprimer   
Que sommes-nous, nous autres citoyens du bas-peuple face à la puissance de nos dirigeants? Nous sommes faibles, nos moyens d'actions sont limités et l'on se sent souvent impuissant lorsqu'éclate une crise diplomatique menant à une situation injuste.

Ce fût récemment le cas lors du conflit entre la Suisse et la Libye, on peut annoncer sans grand doute que la majorité des citoyens de ce pays auraient aimé passer quelques minutes dans une cave avec un certain colonel menotté à un des pilliers de soutien.

Au lieu de cela on rumine, on marmonne, on gueule sur nos blogs sans que cela n'aie aucune influence sur l'affaire en question. Ce billet sera d'ailleurs le dernier sur le sujet.

Alors qu'au fond l'union fait la force, et nous autres petites gens avons un certain pouvoir, une certaine capacité d'action selon nos compétences respectives. Mon domaine de prédilection est l'informatique, plus précisément le développement. Ne pouvant rester les bras croisés je vais aujourd'hui te montrer comme devenir ce que l'on appelle un "cyber-dissident" , qui est en gros un dissident politique n'ayant juste pas les balles nécessaires pour aller protester en personne.

Concrètement, je vais te montrer comment bloquer l'accès à tous les visiteurs libyens sur ton site. Tu noteras l'existence d'un plugin pour WordPress qui fait la même chose, j'en avais déjà parlé, c'est juste que tout le monde n'a pas WordPress et que c'est beaucoup plus marrant de le faire à la main.

Bref, tu l'auras deviné, ce billet s'adresse à toi, honorable webmistress ou webmaster helvétique, lorsqu'un bédouin sous sa tente tapera ton URL dans son navigateur il tombera bêtement sur une belle erreur "403 - Forbidden" .

La condition sine qua non est d'avoir un serveur web qui supporte PHP, il te suffit ensuite d'y installer ce superbe outil du ouebe two point zero :



Pour la mise en œuvre c'est très simple, tu télécharges le kit en faisant un clic droit sur l'image du dessus, puis tu choisis "Enregistrer la cible du lien sous..." .

Le fichier ZIP que tu télécharges contient quatre fichiers : "geoip.inc" , "geoip.php" , "GeoIP.dat" et la photo d'un chaton adorable. Tu vas envoyer les trois premiers fichiers dans la racine de ton site web via ton client FTP favori, je te conseille FileZilla. Tu fais ensuite suivre la photo du chaton à tous tes amis en disant qu'il est trop mignon. La base de donnée permettant la géolocalisation est gratuite et distribuée sous license GPL, elle provient de l'excellent site MaxMind.

Dans la racine de ton site web tu devrais avoir un fichier nommé "index.php" , voire "default.php" dans de très rares cas. Tu vas l'ouvrir, deux cas de figures peuvent se présenter.

Si ton fichier d'index commence immédiatement par la balise d'ouverture de code PHP (à savoir "<?php" ), il te suffit d'ajouter le code suivant juste à la ligne du dessous.

1
include("geoip.php");


Si ton fichier commence par du code HTML, c'est ce code que tu dois insérer en tout début de fichier, avant ledit code HTML.

1
2
3
<?php
    include("geoip.php");
?>


Attention, dans les deux cas il est très important qu'aucun caractère ne se trouve avant la balise d'ouverture PHP ("<?php" pour rappel), pas même un simple espace ou un retour à la ligne! Ce point est crucial pour une raison intrinsèque au protocole HTTP, en l'occurrence l'envoi des headers avant tout code HTML.

Une fois que ton fichier "index.php" est modifié alors ton site est immédiatement protégé, te voilà maintenant officiellement devenu protestataire! Tu peux même télécharger la mini-bannière et l'afficher fièrement sur ton site.



Pour résumer les opérations : Téléchargement du fichier ZIP, décompression du fichier ZIP, envoi des trois fichiers à la racine de ton site web, édition du fichier "index.php" . Je te passe l'étape du chaton.

Tu pourras peut-être constater sur place l'efficacité de ce script le jour où toi aussi tu seras injustement enfermé dans une geôle libyenne, à condition d'avoir un accès à Internet bien entendu. ,    Imprimer Imprimer   
Diffuser de la publicité sur son blog sans emmerder ses visiteurs réguliers n’est pas une tâche facile. Il existe actuellement plusieurs solutions, comme par exemple celle qui consiste à afficher les bandeaux publicitaires uniquement aux visiteurs qui proviennent des moteurs de recherches.

En plus ou à la place de cette solution, on peut ajouter une autre technique qui consiste à afficher lesdites publicités (ou tout autre code HTML) uniquement sur les vieux billets, ceux qui ont plus d’un certain nombre de jours.

La solution existe en tant que plugin pour WordPress, mais c’est beaucoup moins drôle que le hack que je vais te présenter aujourd’hui.

Pour commencer tu vas éditer le fichier « single.php » qui se trouve dans le répertoire de ton thème, normalement quelque chose comme « /wp-content/themes/ton_theme ». Tu places ensuite le code PHP suivant à l’endroit où tu veux que ta bannière s’affiche, n’oublie pas de l’encadrer par les balises PHP.

1
2
3
4
5
6
7
8
9
10
// Age du billet (en jours)
$nbjours = round((strtotime(date('Y-m-d')) - strtotime(get_the_time('Y-m-d')))/(60*60*24)-1);

// Si le billet date de plus de 60 jours
if ($nbjours > 60) {

    // Intégration du code de la bannière situé dans le fichier externe
    include("adsense.php");

}


Par exemple, si tu veux que ta bannière s’affiche avant ton billet, tu places le code précité juste après la ligne suivante.

1
<div id="main">


Tu noteras que dans cet exemple le code de la bannière publicitaire se trouve dans le fichier « adsense.php », à toi de le créer et de le placer dans le répertoire de ton thème. Sinon, rien ne t’empêche d’afficher directement le code avec une ou plusieurs instructions « echo ».

Tu peux même aller faire un tour sur mes vieux billets pour voir ce que ça donne, le menu « Archives » dans la barre latérale de droite te sera utile.
, , ,    Imprimer Imprimer   

N’ayant à ce jour pas trouvé de plugin pour WordPress permettant l’ajout de vidéos sur mon blog selon mes besoins précis, je me suis lancé dans le codage d’un petit hack qui a finalement répondu à mes attentes. Pour suivre cette manipulation il suffit d’avoir une légère maitrise de PHP, du XHTML ainsi que savoir se servir d’un client FTP.

Je n’utilise pas d’espace de stockage public tels que Youtube ou Dailymotion pour mes vidéos, tout est enregistré sur mon serveur web. J’utilise depuis longtemps le lecteur vidéo JW Player de chez Longtail, il peut être téléchargé gratuitement pour une utilisation non commerciale. Il est écrit en Flash et reconnait la plupart des formats du web (flv, mp4, etc.).

Intégrer une vidéo dans un billet en utilisant ce lecteur est une sinécure, le code HTML est énorme et rébarbatif, d’où l’idée d’utiliser les shortcodes de WordPress pour simplifier à l’extrême. Au final, l’insertion d’une vidéo dans un article se résume ainsi en une simple ligne écrite directement dans le texte du billet.

1
[flv file="mavideo.flv" image="image.jpg" width="300" height="200"]

Ce shortcode « flv » permet au moyen des attributs de spécifier la vidéo, l’image facultative qui sera utilisée en attendant la lecture, la largeur et la hauteur. Il est important de noter que toutes les vidéos et toutes les images d’attente sont stockées dans un répertoire particulier et envoyées sur le serveur au moyen d’un client FTP, donc pas de belle interface dans le tableau de bord, tout est fait à la main. Dans l’exemple qui suit, le répertoire contenant ces fichiers est le répertoire « /bin ».


, , , ,    Imprimer Imprimer   
Je me rends compte avec amertume que certains blogs de qualité ne reçoivent que peu de visiteurs si on les compare aux nombreux skyblogs (le terme est entré dans les mœurs) qui abondent sur la toile. Se mettre à niveau n’est franchement pas simple, surtout si ça tend franchement vers le bas.

Ainsi donc, n’arrivant décemment pas à gerber -volontairement- une faute d’orthographe, j’ai mis à profit mes immenses qualités de développeur PHP pour vous pondre le, *roulements de tambours* Kikoololisateur de site!

Attention c’est pas facile à prononcer.

Basé sur le célèbre proxy web Zelune (complètement détourné pour l’occasion), adapté à la sauce geek, douze jours de travail sans dormir, ni manger, ni aller aux toilettes, sauf pour me torcher avec des publicités racistes.

Bon, c’est encore une version bêta (mais ça ne veut pas dire qu’elle est conne), donc des fois ça merdoie et il faut recharger la page. Et puis ça fonctionne pas pour tous les sites, les CSS intégrés et les commentaires dans les commentaires c’est parfois galère à gérer pour un pauvre petit script amateur.

Bref.

Quelques exemples de blogs : Pour ainsi dire, les virgules de l’Arpenteur, Sugus, le Gnolu, Bon pour ton poil et quand même l’incontournable même pô mal.

Quelques sites politiques devenus enfin intéressants : UDC Genève, le PEV, le PDC

Quelques sites de lecture : Le Matin, la Tribune de Genève

Si ton site est pas dans la liste c’est pas que je t’aime pas, c’est que le kikoololisateur ne fonctionne pas encore très bien.

Enjoy.

lol. , , , , ,    Imprimer Imprimer