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 le billet Imprimer le billet   
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 le billet Imprimer le billet   
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 » .

La première étape consiste à récupérer le lecteur vidéo JW Player depuis le site de l’éditeur. Attention à bien décocher la case « Include Viral, a video sharing plugin » avant de cliquer sur « Download » , sinon tu vas te retrouver avec un lecteur contenant le plugin « Viral » qui est extrêmement lourd, il t’affichera une page très soulante après chaque lecture.

Une fois le téléchargement de l’archive terminé, tu la décompresses où bon te semble. Tu n’auras besoin que de deux fichiers, « swfobject.js » et « player.swf » , tu les envoies dans la racine de ton site web via ton client FTP favori. Si tu as le fichier « player-viral.swf » à la place c’est que tu as téléchargé le lecteur contenant le plugin « Viral » , tu viendras pas te plaindre.

La seconde étape est la mise en place du hack. Tu vas aller ouvrir le fichier « functions.php » qui se trouve dans le répertoire de ton thème WordPress. Normalement le chemin est « /wp-content/themes/ton_theme » . Tu y ajoute le code suivant, bien entendu entre les balises PHP.

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
32
33
34
35
36
37
38
// Shortcode FLV function
// Author : http://www.memepasmal.ch
function flv_func($atts) {

    // Répertoire des vidéos, change-le si tu veux
    $repmedia = "/bin/";

    // L'ID du DIV doit être unique
    $div = "media" . rand(0,999999);

    // Extraction des attributs
    extract(shortcode_atts(array(
            'file' => '',
            'image' => '',
            'width' => '320',
            'height' => '240',
        ), $atts));

    // Construction du code HTML
    $html = "";
    $html .= "<div style='text-align:center;' id='" . $div . "'></div>\n";
    $html .= "<script type='text/javascript'>\n";
    $html .= "  var so = new SWFObject('/player.swf','single','" . $atts["width"] . "','" . $atts["height"] . "','0');\n";
    $html .= "  so.addParam('allowfullscreen','true');\n";
    $html .= "  so.addParam('allowscriptaccess','always');\n";
    $html .= "  so.addParam('wmode','opaque');\n";
    $html .= "  so.addParam('autostart','false');\n";
    $html .= "  so.addParam('controlbar','bottom');\n";
    $html .= "  so.addVariable('file','" . $repmedia . $atts["file"] . "');\n";
    if ($atts["image"] != "") {
        $html .= "  so.addVariable('image','" . $repmedia . $atts["image"] . "');\n";
    }
    $html .= "  so.write('" . $div . "');\n";
    $html .= "</script>\n";

    return $html;

}


Cette fonction PHP sera utilisée par notre futur shortcode. Tu noteras la présence de la ligne permettant d’indiquer le répertoire des fichiers vidéos.

1
$repmedia = "/bin/";


Tu peux modifier « /bin/ » avec le nom de ton répertoire qui contient tes médias. Attention à bien terminer par un slash.

Juste après l’accolade finale de cette fonction, toujours dans le fichier « functions.php » tu ajoutes la ligne suivante qui a pour but la création du shortcode « flv » .

1
2
// Ajout du shortcode
add_shortcode('flv', 'flv_func');


La dernière étape consiste à intégrer le code JavaScript qui permet au lecteur de fonctionner. Tu vas donc aller ouvrir le fichier « header.php » qui se trouve dans le répertoire de ton thème, et tu vas ajouter la ligne suivante à la suite des balises HTML. Attention à l’emplacement, normalement ce code devrait se trouver entre les balises « <head> » et « </head>.

1
<script type='text/javascript' src='/swfobject.js'></script>


Tu envoies les deux fichiers « functions.php » et « header.php » modifiés sur ton serveur et le tour est joué, tu peux maintenant utiliser le shortcode nommé « flv » pour intégrer facilement des vidéos dans tes billets.

Par exemple, pour jouer le fichier vidéo « mpm.flv » de 320 pixels par 240, avec comme image d’attente « mpm.jpg » .

1
[flv file="mpm.flv" image="mpm.jpg" width="320" height="240"]


Ce code affichera le résultat suivant aux visiteurs.



L’attribut « image » est optionnel. Voici le code pour jouer ce même fichier vidéo, mais sans image d’attente.

1
[flv file="mpm.flv" width="320" height="240"]


Une petite astuce pour terminer, si malgré tous mes avertissements tu as téléchargé le lecteur incluant le plugin Viral et que tu as la flemme de télécharger une version sans cette lourdeur supplémentaire, il te suffit d’ajouter ces quelques lignes à la fonction PHP (au milieu de celles qui se ressemblent) pour désactiver cet horrible message de partage en fin de vidéo.

1
2
3
    $html .= "  so.addVariable('viral.allowmenu','false');\n";
    $html .= "  so.addVariable('viral.onpause','false');\n";
    $html .= "  so.addVariable('viral.oncomplete','false');\n";


C’est à toi de jouer maintenant.
, , , ,    Imprimer le billet Imprimer le billet   
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 le billet Imprimer le billet