Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : Web

Des URL propres avec Dotclear 2

Mehdi Bahri

Les adresses générées par Dotclear 2 sont par défaut assez complexes et difficiles à lire, dans ce billet, nous verrons comment obtenir de belles URL lisibles et optimisées pour le référencement tout en évitant les liens morts.

Note au lecteur : Dans cet article, on suppose que le serveur web installé est Apache, dans le cas ou vous utiliseriez un autre logiciel, il faudra adapter les directives d'url rewriting si nécessaire.

Changer le format des URL générées

Par défaut, Dotclear 2 utilise le format QUERY_STRING pour générer ses URL, ce qui produit des adresses de la forme http://www.monsite.com/index.php?path_vers_l_article. Ce format d'URL est moins lisible pour les utilisateurs et les moteurs de recherche et on lui préfèrera le format PATH_INFO qui ressemble plutôt à http://www.monsite.com/path/vers/l_article.

Pour cela, il suffit de changer le paramètre correspondant dans l'interface d'administration du blog, section Paramètres du blog.

Capture_d__ecran_de_2013-10-03_21_45_34.png

ATTENTION : si vous faites cela sur un blog ayant dejà des articles vous aurez des liens morts, mais c'est corrigé facilement dans le .htaccess.

Utiliser la réécriture d'URL (URL-Rewriting) pour obtenir de belles URL

Le but est ici d'éviter les liens morts liés au passage de QUERY_STRING à PATH_INFO et en même temps d'obtenir des URL plus lisibles pour l'utilisateur et les moteurs de recherche. Le .htaccess suivant est efficace pour ces deux tâches :

RewriteEngine On
RewriteBase /

# Rewrite old QUERY_STRING urls RewriteCond %{QUERY_STRING} !^$ RewriteRule ^index.php$ %{QUERY_STRING}? [R=301,L]
# Get nice URLs with DotClear 2 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php/$1 RewriteRule ^index.php$ index.php/ [L]

Changer les URL des articles sans casser les liens existants

Je vous renvoie pour cela à mon article traitant du plugin Meuh (modifié par mes soins pour utiliser une redirection permanente et éviter la duplication de contenu !)

Obtenir les URL les plus propres possibles

La réécriture d'URL par défaut ne suffit en général pas à obtenir les meilleures URL possibles pour vos articles.

Changer le format des URL des nouveaux billets dans les paramètres du blog

J'ai personnellement choisi "titre" pour éliminer les informations de date qui sont rarement pertinentes pour l'utilisateur et les moteurs de recherche. Si vous craignez que plusieurs articles aient le même nom, Dotclear est capable de faire précéder le titre de l'identificateur du billet, ce qui sera toujours mieux qu'une URL à rallonge du type année/mois/titre.

Capture_d__ecran_de_2013-10-03_21_44_57.png

Il est également possible de faire précéder l'adresse générée par Dotclear de la catégorie du billet, le plugin Catinurls

.

Tweakurls

Maintenant que le format des URL des nouveaux billets est correctement réglé, il faudra modifier les URL déjà existantes et c'est ici que l'on voit tout l'intérêt du plugin Meuh qui évitera que les liens vers votre blog déjà présents sur internet ne soient cassés ce qui serait littéralement catastrophique en terme de SEO.

Afin de vous faciliter la tâche, installez le plugin Tweakurls. Celui-ci ajoute une entrée à la page Paramètres de votre blog qui propose d'améliorer encore le format des URL.

La présence de caractères spéciaux, d'un mélange de majuscules et de minuscules, de lettres accentuées, est gênante pour le référencement et diminue la lisibilité des adresses. Réglez le format des URL et des catégories sur "Encore plus propre" et enregistrez vos réglages. Tweakurls va modifier les URL des articles du blog et les nettoyer, tandis que Meuh s'occupera de faire la correspondance avec les anciennes adresses !

Capture_d__ecran_de_2013-10-03_21_44_15.png

Peaufiner à la main

Parfois vous trouverez encore l'URL d'un article inadaptée, trop longue ou peu représentative du contenu. Une bonne chose est de faire en sorte que les titres des articles contiennent des mots clés relatifs au contenu, et que ces mots clés apparaissent bien dans l'URL.

Pour cela, Dotclear offre la possibilité de modifier manuellement l'URL d'un article :

Capture_d__ecran_de_2013-10-03_22_18_13.png

Encore une fois on remerciera le plugin Meuh :)" class="smiley

Faire en sorte que Firefox propose à nouveau d'enregistrer les onglets à la fermeture

Mehdi Bahri

Le comportement par défaut sous Firefox 3.6 était de proposer à l'utilisateur d'enregistrer les onglets ouverts pour les rouvrir automatiquement au prochain lancement lorsqu'on fermait la dernière fenêtre ouverte. Depuis Firefox 4 ce comportement a disparu et, malgré les nouvelles options semblables, nombreux sont ceux qui regrettent ce changement.

Cet article n'est pas réservé aux utilisateurs de GNU/Linux et autres UNIX, les lecteurs sous Microsoft Windows ou Mac OS X peuvent également en profiter ;)" class="smiley

Solution

Il faut d'abord ouvrir la page de configuration avancée en tapant dans la barre d'adresse about:config et confirmer en cliquant sur le bouton "Je ferai attention, promis !"

Attention : A partir de cette étape, ne modifiez que les paramètres que je m'aprête à vous énoncer, il est très facile d'obtenir des comportements non voulus en modifiant le mauvais paramètre !

Recherchez successivement les quatre paramètres suivants et vérifiez qu'ils valent tous true, dans le cas contraire, changez leur valeur en true en double cliquant dessus :

  1. browser.tabs.warnOnClose
  2. browser.warnOnQuit
  3. browser.warnOnRestart
  4. browser.showQuitWarning

Dorénavant, Firefox vous proposera de nouveau d'enregistrer vos onglets actifs à la fermeture pour une réouverture prochaine !

Dotclear 2 : Redirection permanente avec le plugin "meuh"

Mehdi Bahri

Le plugin Dotclear meuh permet de changer l'adresse d'un billet en évitant les liens morts. Il garde en mémoire l'historique des URL d'un billet et s'assure qu'elles redirigent toutes vers l'adresse correcte.

Ce plugin est très pratique lorsque l'on cherche à améliorer les URL de Dotclear tout en conservant les liens extérieurs. Cependant, j'ai remarqué quelque chose de frustrant, il arrive en effet qu'on se retrouve avec des résultats en double dans les moteurs de recherche :

Résultats en double dans Google avec Meuh

Pour comprendre, il faut aller regarder les en-têtes HTTP renvoyés par Apache lorsque l'on cherche à accéder à l'ancienne URL (celle avec des majuscules et des caractères spéciaux) :

Redirection 302 par défaut avec Meuh

On voit donc que le code HTTP renvoyé est 302, ce qui signifie que Meuh indique que la redirection est temporaire, et c'est mal !

Pourquoi est-ce mal ?

C'est mal par ce que cela indique au navigateur et aux robots des moteurs de recherche que l'ancienne URL est à garder et sera de nouveau la bonne prochainement, ce qui est très mauvais pour le référencement et rend possible l'apparition de doublons.

C'est mal parce que cela porte à confusion. Sur votre blog, tous les liens menant à l'article dont vous avez changé l'URL le font suivant la nouvelle, l'ancienne URL ne devrait être là qu'à titre conservatif, pour éviter les liens morts. Là, en présence d'éventuels doublons dans les résultats de recherche, que doit penser le lecteur ? En tant que rédacteur du blog, vous ne voulez plus de l'ancienne URL, seule la nouvelle est bonne, vous avez définitivement déplacé le post à la nouvelle adresse.

Comment régler ça

La solution consiste à changer de code de redirection pour 301, qui correspond à une redirection permanente. Malheureusement ceci n'est pas possible via l'interface d'administration du blog, ni par un fichier de configuration. Il va falloir changer le code de Meuh.

Pour cela, nous allons modifier le fichier /plugins/meuh/_public.php (présent dans l'archive zip du plugin ou à récupérer directement sur votre serveur) comme suit :


  1. <?php
  2. # -- BEGIN LICENSE BLOCK ----------------------------------
  3. #
  4. # This file is part of Meuh,
  5. # a plugin for DotClear2.
  6. #
  7. # Copyright (c) 2010 Bruno Hondelatte and contributors
  8. # Update : 25/08/2012 permanent redirection added by Mehdi BAHRI - http://www.end-of-file.eu/
  9. #
  10. # Licensed under the GPL version 2.0 license.
  11. # See LICENSE file or
  12. # http://www.gnu.org/licenses/gpl-2.0.txt
  13. #
  14. # -- END LICENSE BLOCK ------------------------------------
  15. if (!defined('DC_RC_PATH')) { return; }
  16.  
  17. $core->url->registerError(array('meuhPublicBehaviors','redirect'));
  18.  
  19. class meuhPublicBehaviors
  20. {
  21. public static function redirect($args,$type,$e) {
  22. if ($e->getCode() == 404) {
  23. $core=$GLOBALS['core'];
  24. $dcMeuh = new dcMeuh($core);
  25. $post_url = $dcMeuh->getPostUrl($type,$args);
  26. if ($post_url == null)
  27. return;
  28. $params=array('post_type' => $type, 'post_url' => $post_url);
  29. $rs = $core->blog->getPosts($params);
  30. if ($rs->fetch()) {
  31. $dcMeuh->updateAlias($type,$args);
  32. header("HTTP/1.1 301 Moved Permanently");
  33. header('Location: '.$rs->getURL());
  34. $core->callBehavior('publicAfterDocument',$core);
  35. return true;
  36. }
  37. }
  38. }
  39. }
  40. ?>

La partie importante est :


  1. header("HTTP/1.1 301 Moved Permanently");

Ceci demande à PHP d'envoyer un code de redirection 301 avant de procéder à la redirection elle même en changeant l'en-tête Location.

Résultat :

Redirection 301 une fois la modification faite

La redirection est dorénavant signalée comme permanente.

Télécharger l'archive zip de meuh 0.2 modifié

Apache : réserver l'accès à un dossier à certaines IP choisies

Mehdi Bahri

Lorsqu'un souhaite protéger un dossier sur un serveur HTTP, la solution la plus évidente est la protection par mot de passe. Cependant, il peut être intéressant de se passer de mot de passe en réservant l'accès à certaines IP (ex : votre IP fixe).

J'utilise ce type de protection et dernièrement on (*tousse* Casper *tousse*) m'a demandé comment j'avais fait. Dans le cas du serveur HTTP Apache, il suffit de placer un fichier .htaccess dans le dossier à protéger contenant :

AuthName "NOM"
AuthType Basic
<Limit GET POST>
order deny,allow
deny from all
allow from IP_1
allow from IP_2
...
allow from IP_n
</Limit>

Explications :

  1. On donne un nom à l'authentification
  2. On règle le type d'authentification sur "Basic"
  3. On choisit de limiter l'accès par les requêtes HTTP GET et POST
  4. On donne l'ordre dans lequel les directives seront évaluées
  5. On interdit l'accès à tout le monde
  6. On autorise ensuite certaines IP à accéder au dossier

Dorénavant, tout hôte dont l'IP n'est pas explicitement autorisée dans le .htaccess recevra une jolie erreur 403.

Attention : comme toute protection, elle n'est pas inviolable !

Un nouveau domaine !

Mehdi Bahri

J'ai finalement sauté le pas ! J'ai acheté ce soir même un "vrai" nom de domaine, chez OVH : end-of-file.eu.

Vous pourrez donc désormais me suivre à l'adresse : http://www.end-of-file.eu/.

L'ancien domaine http://mehdinux.co.cc/ reste actif (il est gratuit de toute façon) afin de ne pas casser de liens, mais une redirection va être mise en place.

Bonne lecture !

Déployer Dotclear sur votre Fedora

Jonathan Mercier

Bonjour cher lecteur,

Récemment j'ai souhaité installé dotclear sur ma fedora et mal-grès une documentation présente. J'ai bloqué sur quelques points non discuté dans cette dernière. Pour cela je vais lister les étapes effectué.

Je n'entre pas dans les détaille mais j'explique de façon itérative et concise la manière de parvenir à un déploiement dotclear fonctionnel .

Objectif

Nous allons déployer dotclear avec postgresql et apache.

Dépendances

Pour installer les outils nécessaires au bon fonctionnement il suffit de faire la commande toute prête pour vous

$ su -c 'yum install httpd-manual php-cli php postgresql postgresql-server php-pgsql pgadmin3 php-mbstring php-xml'

Vous voilà prêt pour passer à l'étape déploiement de postrgesql.

Déploiement de postrgesql

Modifier /var/lib/pgsql/data/pg_hba.conf afin d'avoir ceci

# "local" is for Unix domain socket connections only
local   all             all                                 md5
# IPv4 local connections:
host    all             all             127.0.0.1/32        md5
# IPv6 local connections:
host    all             all             ::1/128             md5

Dans le fichier /var/lib/pgsql/data/postgresql.conf changer la valeur attribuer à listen_addresses

listen_addresses = '*'

Démarrage de postgres

# systemctl start postgresql.service

Connection à l'utilisateur postgres

$ su -c "su - postgres"

Création d'un utilisateur nommé dotclear

$ createuser -A -D -P dotclear
Saisir le mot de passe pour le nouveau rôle : 
Le saisir de nouveau : 
Le nouveau rôle est-il autorisé à créer de nouveaux rôles ? (o/n) n
Mot de passe : 

Création d'une base de donnée nommé dotclear

$ createdb -O  dotclear dotclear
Mot de passe : 

Vérification que l'on peut accéder à la base dotclear avec l'utilisateur dotclear

$ psql -d dotclear -U dotclear
Mot de passe : 
psql (9.1.4)

Configurer Apache

Créer le fichier /etc/httpd/conf.d/messites.conf .Vous pouvez bien évidement donner un autre nom au fichier de configuration ;-)" class="smiley . Il a pour contenu

# Valeur PHP par défaut
php_admin_value memory_limit 128M
php_flag register_globals off
php_flag display_errors Off

# activation des hôtes virtuels
NameVirtualHost *:80

# Hôte virtuel par défaut
<VirtualHost *:80>
        # home du site : URL = http://dotclear/
        ServerName   dotclear
        DocumentRoot /var/www/dotclear/

        # Cette vieille application nécessite cette horreur !
        php_flag register_globals on

        <Directory /var/www/dotclear/>
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                AllowOverride AuthConfig
        </Directory>
</VirtualHost>

Créer un nom de domaine pour son blog

Afin de pouvoir accéder simplement au blog en tapant dotclear dans la barre d'adresse j'ajoute ce nom dans /etc/hosts somme ci-dessous

127.0.0.1   dotclear localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Déployer Dotclear

$ wget http://download.dotclear.net/latest.tar.gz
$ tar xvf latest.tar.gz dotclear/
$ su -m
# cp -r dotclear /var/www/ 
# chown -R apache:apache /var/www/dotclear/

Configurer SeLinux

$ su -
# restorecon -R -v /var/www/html
# setsebool -P  httpd_can_network_connect_db on
# setsebool -P  httpd_can_network_connect on
# semanage fcontext -a -t httpd_sys_rw_content_t /var/www/dotclear/cache
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/dotclear/themes(/.*)?'
# restorecon -v /var/www/dotclear/cache
# restorecon -v  /var/www/dotclear/themes/

Démarrage de la procédure d'installation

$ su -
# systemctl restart postgresql.service
# systemctl restart httpd.service

Ouvrir votre navigateur et rendez vous à l'adresse http://dotclear/admin/install/ où bien via la console

$ xdg-open http://dotclear/admin/install/

Suivez le formulaire et commencez vos premier billet.

Autre lecture sur le même sujet

Mise à jour vers Dotclear 2.4

Mehdi Bahri

Mise à jour vers la dernière version de Dotclear effectuée ;)" class="smiley

Bon réveillon à tous !

Galette : la cuisine continue !

Johan Cwiklinski

Tout est dans le titre. Merci de m'avoir lu.

Non, mais je plaisante ; je vais développer un peu tout de même ;-)" class="smiley
Je ne sais trop par où commencer...

cooking_galette.jpg

Design

Le design de Galette a pas mal changé depuis que je suis aux commandes ; et je me suis décidé récemment à laisser tomber le rendu XHTML (et les nombreux problèmes qu'il a pu engendrer sur Galette) pour HTML5. J'ai ainsi pu utiliser les nouveautés de HTML5, notamment en ce qui concerne la gestion des formulaires (champs requis, ...).

Pour vous donner une idée, voici un aperçu avant (0.63.3)/après (0.7) des pages d'authentification et d'enregistrement : Login Galette 0.63.3 vs 0.7

Enregistrement Galette 0.63.3 vs 0.7

Vous pouvez souhaiter voir la comparaison complète pour la page d'enregistrement.

L'actuel thème de Galette est compatible avec la majorité des navigateurs récents (Firefox, Chromium, Epiphany, Internet Explorer 9, ...).

Fonctionnalités

L'un des ajouts les plus récents concerne la mise en place d'un historique des E-Mailings envoyés aux adhérents, et la possibilité de les réutiliser comme modèle :-)" class="smiley Le travail est encore en cours, il n'est actuellement pas encore possible de modifier les destinataires par exemple... Pas très pratique me direz-vous, et vous aurez raison ; mais c'est en bonne voie ;-)" class="smiley

Une autre modification relativement importante concerne la gestion des transactions. Il est désormais possible, depuis une transaction, d'adjoindre une contribution existante (en profitant pleinement des possibilités de la liste des contributions) ou d'en créer une nouvelle. Jusque maintenant, on pouvait uniquement créer une nouvelle contribution juste après la saisie d'une nouvelle transaction, sans ajouts ultérieur possibles.

Documentation

Outre quelques ajustements du côté de la documentation d'installation, deux choses à noter :

  • le début de rédaction d'une documentation utilisateur (sont traités les champs dynamiques, la traduction de libellés, et le textes des courriels envoyés),
  • la refonte de la page d'accueil pour la rendre un peu plus sympathique :-p

Nouvelle page d'accueil de la documentation Galette

Base de données

Courant juillet, je me suis rendu compte que le framework de bases de données que j'avais choisi il y a quelques années, MDB2, n'était plus vraiment actif. En effet, la dernière version stable (2.4.1) date de 2007 ; et la dernière version de développement (2.5beta) de 2010. MDB2-2.4.1 n'est pas compatible PHP 5.3, je me suis donc décidé à passer en 2.5.0b3 (beta). Oui mais voilà : toutes les requêtes préparées de Galette échouaient, et silencieusement ; ce qui a rapidement causé des bogues très difficiles à tracer et à résoudre..

La coupe était pleine !

Ayant récemment découvert le fait que la partie Db du Zend Framework était utilisable sans avoir recours à l'intégralité du framework lui-même ; mon choix était fait. Une branche a été créée pour effectuer la migration. 2 semaines et demie et environ 180 commits plus tard ; la branche était mergée avec le trunk : Galette est désormais gérée par Zend.

J'ai profité de cette migration pour définitivement exclure les bouts de code qui utilisaient encore et toujours Adodb ; et aussi pour passer certains aspects du logiciel en POO.

Il s'agit d'une modification fort importante, qui a nécessité de récrire une grande partie du code existant ; bien qu'invisible pour l'utilisateur final.

Tester !

Si vous souhaitez tester Galette, j'ai récemment mis en place une archive mise à jour quotidiennement depuis le dépôt SVN :
http://download.tuxfamily.org/galette/galette-0.7-dev.tar.bz2

Cette fois, je peux vous dire merci de m'avoir lu, sans avoir à me reprendre :-p

Bon appétit !

Galette : version de développement et documentation

Johan Cwiklinski

Depuis quelques années, je suis le mainteneur de Galette, un logiciel libre de gestion d'adhérents et de cotisations en ligne à destination des associations.

Beaucoup de travail a été effectué sur le logiciel, mais de gros chantiers ont été entamés, et pas mal de péripéties (pas forcément en rapport) ont fait que les versions stables du projet n'avancent pas des masses (j'avais notamment cessé tout développement sur le projet pendant 15 mois, pour ne reprendre que récemment) :-(" class="smiley

Version de développement de Galette

De nombreuses fonctionnalités ont dores et déjà été ajoutées, notamment un système de plugins qui devrait à terme permettre de proposer de nouveau une version de Galette pour les associations sportives, ou encore les associations automobiles !

Cette version de développement devrait être aujourd'hui relativement utilisable, j'ai récemment corrigé pas mal de bogues qui ont été mis en évidence par les tests qu' a effectués Roland, un gentil utilisateur de Galette... Seulement voilà, la seule solution pour tester la version de développement de Galette, c'est de la récupérer via le dépôt SVN... Je dis « relativement utilisable », car je n'ai pas l'occasion de tester l'intégralité des fonctionnalités régulièrement, et il m'est impossible de savoir ce que ça peut donner chez divers hébergeurs ; des bogues peuvent donc subsister.

J'ai donc mis en place récemment un système de « nigthly » ; qui met à disposition quotidiennement (à 0h30) cette version de développement sous forme d'archive à télécharger ; disponible à l'adresse :
http://download.tuxfamily.org/galette/galette-0.7-dev.tar.bz2

Pour les utilisateurs de Fedora, j'ai également mis à disposition un RPM de Galette 0.7 via mon dépôt personnel que je vous conseille d'utiliser au lieu de l'archive quotidienne, les problématiques de droits et de contextes SELinux étant intégrées directement dans le RPM ;-)" class="smiley

Les RPM sont disponibles pour Fedora 14 et Fedora 15 actuellement, je n'ai pas prévu pour le moment de fournir des paquets pour RHEL/CentOS.

Notez qu'il y a une petite modification à apporter au fichier de configuration apache fournit par le paquet ; il s'agit de déclarer votre fuseau horaire. Pour ce faire, dans le fichier /etc/httpd/conf.d/galette.conf, ajoutez simplement la directive php_value date.timezone Europe/Paris (où Europe/Paris correspond à votre fuseau horaire) dans la section Directory /usr/share/galette :

<Directory /usr/share/galette>
    Options None
    AllowOverride Limit Options FileInfo

    Order Deny,Allow
    Allow from all

    php_value date.timezone Europe/Paris
</Directory>

Nouvelle documentation

Une toute nouvelle documentation a également vu le jour :
http://galette.tuxfamily.org/documentation/

Cette nouvelle mouture de la documentation ne concerne que Galette 0.7, et n'est disponible (pour le moment) qu'en français. Cette documentation est axée sur trois grandes parties :

Actuellement, le manuel de l'utilisateur est très peu avancé, c'est une tâche qui demande elle aussi beaucoup de temps, et je n'en ai que trop peu... À votre bon coeur ! :-)" class="smiley

Cette documentation est rédigée avec Sphinx (le système de documentation utilisant reStructuredText et utilisé -entre autres - pour la documentation du projet Python), elle est hébergée sur un dépôt GIT chez Tuxfamily. Pour en savoir plus sur la nouvelle documentation de Galette... ;)" class="smiley

HTML5 et CSS3 pour le blog de Zia

Johan Cwiklinski

Voilà un peu plus de 3 ans maintenant que le blog de Zia est en ligne, le thème datait de la même époque.

J'ai récemment fait l'acquisition de l'excellent ouvrage CSS avancées vers HTML5 et CSS3 de Raphaël Goetter) - ouvrage que je vous recommande vivement.

J'avais déjà revu mon site personnel suite un article paru sur Alsacréations (du même auteur, d'ailleurs ; et avec un s à Alsacréations ;-)) ; j'ai décidé de tester de nouveau les possibilités de CSS3 pour effectuer une refonte complète du blog de ma fille.

Thème Zia (0.0.2) Thème Zia (0.0.3)

Ce résultat est valide HTML5, probablement pas CSS (grâce notamment à l'utilisation des préfixes -moz et -webkit :-p), et est certainement perfectible... Un petit « bémol » pour Dotclear : la zone de recherche ne peut pas être modifiée via le système de templates, il faut visiblement ouvrir le capot pour ce faire :'(
J'ai également constaté une chose qui m'a paru étrange : le texte alternatif des images n'est pas affiché sur les navigateurs Webkit il semblerait. J'ai pu observer ce comportement avec les navigateurs Epiphany et Midori...

Côté compatibilité navigateurs, le site fonctionne de façon équivalente sous Epiphany (et autres navigateurs à base Webkit) et IE9. Sous Firefox 4, on obtient en prime un dégradé sur le menu principal :-)" class="smiley Le site est lisible sous IE8, mais la perte des arrondis et couleurs transparentes se fait cruellement sentir. J'ai décidé d'abandonner complètement le support IE7 et IE6 pour ce thème ; laissons les vieilleries mourir en paix ;-)" class="smiley Pas de version mobiles pour le moment, je n'ai pas encore lu ce chapitre :-D" class="smiley

Merci à Pingou, Remi, number81, MrTom et ma petite femme pour leur aide et leurs conseils :-)" class="smiley

Petite note complémentaire : c'est la première fois que j'utilise la toute nouvelle interface d'administration apportée par Dotclear 2.3.0 ; ça change et c'est agréable :)" class="smiley Bravo !

Mise à jour de Dotclear

Mehdi Bahri

Bonsoir à tous

Certains l'ont peut être remarqué, le blog était down ces derniers jours. Je pense que c'est lié à la version de Dotclear qui posait problème probablement à la suite des récentes mises à jour des serveurs de servhome.org. Honteusement je l'avoue, je n'avais pas mis à jour Dotclear depuis quelques temps, c'est maintenant chose faite et le blog tourne sous la dernière version disponible de Dotclear à la date de la rédaction de ce billet.

Etant à l'internat et non chez moi, je n'ai pas pu le faire plus tôt dans la semaine, études obligent. Par ailleurs, j'en profite pour vous conseiller, si vous ne connaissez pas déjà, un outil extrêmement pratique lorsque le FTP classique est bloqué : net2ftp.com, c'est un client FTP web avec des fonctionnalités pratiques telles que l'upload groupé de fichiers sous forme d'archives etc.

Sur ce je vous souhaite une bonne nuit, mon accès internet coupe à 23h ;)" class="smiley

Mise à jour de Dotclear

Mehdi Bahri

Bonsoir à tous

Certains l'ont peut être remarqué, le blog était down ces derniers jours. Je pense que c'est lié à la version de Dotclear qui posait problème probablement à la suite des récentes mises à jour des serveurs de servhome.org. Honteusement je l'avoue, je n'avais pas mis à jour Dotclear depuis quelques temps, c'est maintenant chose faite et le blog tourne sous la dernière version disponible de Dotclear à la date de la rédaction de ce billet.

Etant à l'internat et non chez moi, je n'ai pas pu le faire plus tôt dans la semaine, études obligent. Par ailleurs, j'en profite pour vous conseiller, si vous ne connaissez pas déjà, un outil extrêmement pratique lorsque le FTP classique est bloqué : net2ftp.com, c'est un client FTP web avec des fonctionnalités pratiques telles que l'upload groupé de fichiers sous forme d'archives etc.

Sur ce je vous souhaite une bonne nuit, mon accès internet coupe à 23h ;)" class="smiley

Mise à jour de Dotclear

Mehdi Bahri

Bonsoir à tous

Certains l'ont peut être remarqué, le blog était down ces derniers jours. Je pense que c'est lié à la version de Dotclear qui posait problème probablement à la suite des récentes mises à jour des serveurs de servhome.org. Honteusement je l'avoue, je n'avais pas mis à jour Dotclear depuis quelques temps, c'est maintenant chose faite et le blog tourne sous la dernière version disponible de Dotclear à la date de la rédaction de ce billet.

Etant à l'internat et non chez moi, je n'ai pas pu le faire plus tôt dans la semaine, études obligent. Par ailleurs, j'en profite pour vous conseiller, si vous ne connaissez pas déjà, un outil extrêmement pratique lorsque le FTP classique est bloqué : net2ftp.com, c'est un client FTP web avec des fonctionnalités pratiques telles que l'upload groupé de fichiers sous forme d'archives etc.

Sur ce je vous souhaite une bonne nuit, mon accès internet coupe à 23h ;)" class="smiley

Mise à jour de Dotclear

Mehdi Bahri

Bonsoir à tous

Certains l'ont peut être remarqué, le blog était down ces derniers jours. Je pense que c'est lié à la version de Dotclear qui posait problème probablement à la suite des récentes mises à jour des serveurs de servhome.org. Honteusement je l'avoue, je n'avais pas mis à jour Dotclear depuis quelques temps, c'est maintenant chose faite et le blog tourne sous la dernière version disponible de Dotclear à la date de la rédaction de ce billet.

Etant à l'internat et non chez moi, je n'ai pas pu le faire plus tôt dans la semaine, études obligent. Par ailleurs, j'en profite pour vous conseiller, si vous ne connaissez pas déjà, un outil extrêmement pratique lorsque le FTP classique est bloqué : net2ftp.com, c'est un client FTP web avec des fonctionnalités pratiques telles que l'upload groupé de fichiers sous forme d'archives etc.

Sur ce je vous souhaite une bonne nuit, mon accès internet coupe à 23h ;)" class="smiley

Le rat quitte le navire

Mehdi Bahri

Et au pas de course !

Après s'être improvisé défenseur des droits de l'Homme et de la liberté, après avoir promis de quitter le pouvoir en 2014, voilà la fuite précipitée en dissolvant le gouvernement. Partir comme le voleur qu'il est, c'est donc là que l'auront mené ces 23 ans de pillage, d'exploitation du pays, de meurtre et de pressions liberticides. Fuir, la peur au ventre, sans même oser lever les yeux et regarder le peuple en face. Se cacher, honteux et humilié devant l'échec de la répression par la force, se terrer dans un trou de souris, se faire le plus petit possible pour ne pas attirer le chat qui rôde. Mais le chat a faim, ses crocs sont affutés, le sang coûlé l'a mis en appetit et ce ne sont pas les mille-et-uns drapeaux à l'effigie de sa seigneurie qui vont le tromper. Qu'est-ce qu'on dit ? YAHYA BEN ALI !

Enfin, le lâché prise est-il crédible quand on sait où sont placés les membres de sa famille ? Qu'il soit jugé, lui et toute sa clique, et puisse une véritable démocratie s'installer !

Le rat quitte le navire

Mehdi Bahri

Et au pas de course !

Après s'être improvisé défenseur des droits de l'Homme et de la liberté, après avoir promis de quitter le pouvoir en 2014, voilà la fuite précipitée en dissolvant le gouvernement. Partir comme le voleur qu'il est, c'est donc là que l'auront mené ces 23 ans de pillage, d'exploitation du pays, de meurtre et de pressions liberticides. Fuir, la peur au ventre, sans même oser lever les yeux et regarder le peuple en face. Se cacher, honteux et humilié devant l'échec de la répression par la force, se terrer dans un trou de souris, se faire le plus petit possible pour ne pas attirer le chat qui rôde. Mais le chat a faim, ses crocs sont affutés, le sang coûlé l'a mis en appetit et ce ne sont pas les mille-et-uns drapeaux à l'effigie de sa seigneurie qui vont le tromper. Qu'est-ce qu'on dit ? YAHYA BEN ALI !

Enfin, le lâché prise est-il crédible quand on sait où sont placés les membres de sa famille ? Qu'il soit jugé, lui et toute sa clique, et puisse une véritable démocratie s'installer !

dcSocialize, AddThis, Facebook & Twitter pour votre Dotclear (Sur DotAddict)

Guillaume Kulakowski

J'ai profité de ma migration sous Dotclear 2.2 pour fusionner mes précédentes extensions sociales (à savoir : dcWidgetAddThis, dcWidgetFacebook et dcWidgetTwitter) au sein d'un seul et unique plugin : dcSocialize. Au programme des réjouissances de cette pré-version (dcSocialize 0.9) :

Tous ces widgets sont bien évidement visibles sur mon blog.

Le plugin et disponible sur le site du projet mais également sur DotAddict, vous pouvez donc installer dcSocialize directement depuis l'interface d'administration de votre blog.

phpBB3 - redimensionner automatiquement les images trop grandes

Mehdi Bahri

Comme vous l'aurez surement remarqué si vous maintenez un forum phpbb3, le forum n'effectue par défaut aucun redimensionnement des images insérées dans les posts, ce qui peut mener à des résultats à la fois très inesthétiques et nuisibles à la lisibilité du forum pour peu que l'utilisateur insert une image trop grande.

Je propose ici une modification rapide et simple permettant de redimensionner à l'affichage les images trop grandes tout en proposant un lien vers la version pleine taille (il suffit de cliquer sur l'image). NB : Le redimensionnement se fait côté client et n'alourdit pas la charge du serveur, mais il n'est effectif qu'une fois l'image entièrement chargée.

Ouvrez le fichier includes/bbcode.php et recherchez la fonction bbcode_tpl ligne 407, vous devriez avoir à l'intérieure de la fonction l'array suivant :

$bbcode_hardtpl = array(
        'b_open'        => '<span style="font-weight: bold">',
        'b_close'       => '</span>',
        [...]
        'email' => '<a href="mailto:$1">$2</a>'
);

Modifiez la ligne correspondant au tag img comme suit :

'img' => '<a href="http://www.end-of-file.eu/post/$1" title="Image en pleine taille"><img src="http://www.end-of-file.eu/post/$1" alt="' . $user->lang'IMAGE' . '" onload="javascript:if(this.width > 640){ this.height = Math.round(((640)/this.width)*this.height); this.width = (640); }"/></a>'

Explication du code :

  • Je passe sur la balise a, en précisant juste que $1 est remplacé par l'adresse de l'image placée entre les balises.
  • On fait appel à l'attribut onload pour exécuter un code javascript, l'attribut onload d'un objet permet de gérer les actions liées à l'évènement "l'objet est chargé".

Le javascript :

  • On a une première condition if portant sur la valeur de l'image, this.width est un exemple d'utilisation de la POO en javascript (très basique je l'admet), this fait référence à l'objet dont la fonction en cours est une méthode. On accède ensuite à la propriété publique width qui n'est autre que la largeur de l'objet qu'on compare avec la valeur maximale fixée par vos soins en fonction de votre forum.
  • Ensuite, on calcule la nouvelle auteur de l'image redimensionnée, en prenant pour largeur la largeur maximale fixée et en conservant le rapport Hauteur/Largeur original (on évite ainsi de déformer l'image) que l'on donne à l'image via this.height.

Il est possible également d'intégrer une LightBox à l'aide de jQuery et du plugin qui va avec, cependant j'ai testé chez moi avec un template non officiel personnalisé par mes soins et je n'ai pas pu la faire marcher même en bidouillant et en refaisant la manip plusieurs fois à me référant à la doc. Le problème étant que l'image s'ouvre toujours dans une nouvelle fenêtre/un nouvel onglet en plus de l'effet lightbox et le tout passe très mal sous IE (lightbox affichée en permanence, problème d'icones etc.), bref j'ai laissé tomber. Si vous avez des idées là dessus par contre je suis preneur ! :)" class="smiley

phpBB3 - redimensionner automatiquement les images trop grandes

Mehdi Bahri

Comme vous l'aurez surement remarqué si vous maintenez un forum phpbb3, le forum n'effectue par défaut aucun redimensionnement des images insérées dans les posts, ce qui peut mener à des résultats à la fois très inesthétiques et nuisibles à la lisibilité du forum pour peu que l'utilisateur insert une image trop grande.

Je propose ici une modification rapide et simple permettant de redimensionner à l'affichage les images trop grandes tout en proposant un lien vers la version pleine taille (il suffit de cliquer sur l'image). NB : Le redimensionnement se fait côté client et n'alourdit pas la charge du serveur, mais il n'est effectif qu'une fois l'image entièrement chargée.

Ouvrez le fichier includes/bbcode.php et recherchez la fonction bbcode_tpl ligne 407, vous devriez avoir à l'intérieure de la fonction l'array suivant :

$bbcode_hardtpl = array(
        'b_open'        => '<span style="font-weight: bold">',
        'b_close'       => '</span>',
        [...]
        'email' => '<a href="mailto:$1">$2</a>'
);

Modifiez la ligne correspondant au tag img comme suit :

'img' => '<a href="http://www.end-of-file.eu/post/$1" title="Image en pleine taille"><img src="http://www.end-of-file.eu/post/$1" alt="' . $user->lang'IMAGE' . '" onload="javascript:if(this.width > 640){ this.height = Math.round(((640)/this.width)*this.height); this.width = (640); }"/></a>'

Explication du code :

  • Je passe sur la balise a, en précisant juste que $1 est remplacé par l'adresse de l'image placée entre les balises.
  • On fait appel à l'attribut onload pour exécuter un code javascript, l'attribut onload d'un objet permet de gérer les actions liées à l'évènement "l'objet est chargé".

Le javascript :

  • On a une première condition if portant sur la valeur de l'image, this.width est un exemple d'utilisation de la POO en javascript (très basique je l'admet), this fait référence à l'objet dont la fonction en cours est une méthode. On accède ensuite à la propriété publique width qui n'est autre que la largeur de l'objet qu'on compare avec la valeur maximale fixée par vos soins en fonction de votre forum.
  • Ensuite, on calcule la nouvelle auteur de l'image redimensionnée, en prenant pour largeur la largeur maximale fixée et en conservant le rapport Hauteur/Largeur original (on évite ainsi de déformer l'image) que l'on donne à l'image via this.height.

Il est possible également d'intégrer une LightBox à l'aide de jQuery et du plugin qui va avec, cependant j'ai testé chez moi avec un template non officiel personnalisé par mes soins et je n'ai pas pu la faire marcher même en bidouillant et en refaisant la manip plusieurs fois à me référant à la doc. Le problème étant que l'image s'ouvre toujours dans une nouvelle fenêtre/un nouvel onglet en plus de l'effet lightbox et le tout passe très mal sous IE (lightbox affichée en permanence, problème d'icones etc.), bref j'ai laissé tomber. Si vous avez des idées là dessus par contre je suis preneur ! :)" class="smiley

phpBB3 - redimensionner automatiquement les images trop grandes

Mehdi Bahri

Comme vous l'aurez surement remarqué si vous maintenez un forum phpbb3, le forum n'effectue par défaut aucun redimensionnement des images insérées dans les posts, ce qui peut mener à des résultats à la fois très inesthétiques et nuisibles à la lisibilité du forum pour peu que l'utilisateur insert une image trop grande.

Je propose ici une modification rapide et simple permettant de redimensionner à l'affichage les images trop grandes tout en proposant un lien vers la version pleine taille (il suffit de cliquer sur l'image). NB : Le redimensionnement se fait côté client et n'alourdit pas la charge du serveur, mais il n'est effectif qu'une fois l'image entièrement chargée.

Ouvrez le fichier includes/bbcode.php et recherchez la fonction bbcode_tpl ligne 407, vous devriez avoir à l'intérieure de la fonction l'array suivant :

$bbcode_hardtpl = array(
        'b_open'        => '<span style="font-weight: bold">',
        'b_close'       => '</span>',
        [...]
        'email' => '<a href="mailto:$1">$2</a>'
);

Modifiez la ligne correspondant au tag img comme suit :

'img' => '<a href="http://mehdinux.co.cc/index.php?post/2010/06/02/$1" title="Image en pleine taille"><img src="http://mehdinux.co.cc/index.php?post/2010/06/02/$1" alt="' . $user->lang'IMAGE' . '" onload="javascript:if(this.width > 640){ this.height = Math.round(((640)/this.width)*this.height); this.width = (640); }"/></a>'

Explication du code :

  • Je passe sur la balise a, en précisant juste que $1 est remplacé par l'adresse de l'image placée entre les balises.
  • On fait appel à l'attribut onload pour exécuter un code javascript, l'attribut onload d'un objet permet de gérer les actions liées à l'évènement "l'objet est chargé".

Le javascript :

  • On a une première condition if portant sur la valeur de l'image, this.width est un exemple d'utilisation de la POO en javascript (très basique je l'admet), this fait référence à l'objet dont la fonction en cours est une méthode. On accède ensuite à la propriété publique width qui n'est autre que la largeur de l'objet qu'on compare avec la valeur maximale fixée par vos soins en fonction de votre forum.
  • Ensuite, on calcule la nouvelle auteur de l'image redimensionnée, en prenant pour largeur la largeur maximale fixée et en conservant le rapport Hauteur/Largeur original (on évite ainsi de déformer l'image) que l'on donne à l'image via this.height.

Il est possible également d'intégrer une LightBox à l'aide de jQuery et du plugin qui va avec, cependant j'ai testé chez moi avec un template non officiel personnalisé par mes soins et je n'ai pas pu la faire marcher même en bidouillant et en refaisant la manip plusieurs fois à me référant à la doc. Le problème étant que l'image s'ouvre toujours dans une nouvelle fenêtre/un nouvel onglet en plus de l'effet lightbox et le tout passe très mal sous IE (lightbox affichée en permanence, problème d'icones etc.), bref j'ai laissé tomber. Si vous avez des idées là dessus par contre je suis preneur ! :)" class="smiley