The Wayback Machine - https://web.archive.org/all/20061205200229/http://www.dotclear.net:80/planet/

DotClear

mardi 5 décembre 2006

Vignettes des liens externes

J'ai découvert sur le blog de Romuald une petite fonction assez sympathique. En effet lorsque vous survolez un lien avec la souris, une petite vignette s'affiche avec une copie d'écran du site en question. J'ai aussitôt regardé ça de plus près et il s'agit en fait d'un service gratuit fourni par le site Snap.

Exemple de vignette affichée au survol d'un lien

Comment ça marche ? Simplement. Il s'agit d'un appel à un script javascript qu'il faut insérer dans l'entête (entre les balises <head> et </head>) une fois que vous vous êtes enregistré chez eux. Seuls les liens externes seront concernés (bien qu'on puisse désactiver cette limitation) et, chose importante, le script ne remet pas en cause la validité du site où il est installé. Pas de soucis non plus si le visiteur n'a pas activé javascript sur son navigateur, ça reste transparent. Le seul bémol est que ce script est hébergé sur un serveur externe avec les aléas associés.

Vous trouvez ça comment ? Superflu, indispensable, très web 2.0 ?

PS : Je viens de m'apercevoir que c'est aussi un moyen indirect de différencier les URL externes des URL interne[1]. Ce qui est une des bonnes pratiques recommendées par Opquast.

Notes

[1] A l'exception près qu'il faut avoir le javascript activé !

Billet original sur Carnet :: Franck Paul

lundi 4 décembre 2006

Vivons heureux. Vivons cachés ?

Depuis le temps que j'utilise PHP, mes seules tentatives de dopage serveur s'étaient limitées à des périodes d'utilisation de Zend Optimizer sur mes machines de développement.

Ce week end, j'ai franchi un cap : je me suis dit qu'il était temps de jeter un oeil à APC. J'ai donc opté pour installer le bouzin sur la dedibox qui abrite ce blog, en espérant que ça n'affolera pas la mule[1]...

Et puisqu'on parle de cache, mais niveau HTTP cette fois, j'en profite pour signaler qu'une petite amélioration a été apportée au mécanisme de cache HTTP de Dotclear 2, via le support des conditions HTTP-IF-NONE-MATCH[2].

Notes

[1] Donc, si le serveur tombe ou que des bizarreries apparaissent, vous saurez d'où ça vient ... ;-)

[2] Je profiterai peut-être de l'occasion pour offrir une suite au billet Trafic HTTP : distribution de coups de pied au cul en abordant le système de cache HTTP dans la famille Dotclear.

Billet original sur just call me pep - dotclear

vendredi 1 décembre 2006

Thème Connections et plugin Galerie

Depuis que le thème Connections est disponible, certains rencontrent des difficultés à y intégrer de manière harmonieuse le plugin Galerie. Je vais vous indiquer rapidement comment j'ai fait ici.

Préalables

Je pars du principe que vous avez installé le thème Connections et le plugin Galerie, mais pas encore modifié les fichiers comme indiqué sur la page d'installation du plugin. Je considère également que vous êtes capables de modifier des fichiers situés sur votre espace d'hébergement, soit grâce au plugin Gestionnaire de fichiers, soit grâce à votre client FTP et votre éditeur de texte favori.

Mise en place du code nécessaire

Comme indiqué sur la page d'installation du plugin, il s'agit d'insérer quelques lignes dans le fichier template.php situé dans le répertoire du thème Connections (/themes/connections/).

Tout d'abord, ce qu'il faut pour afficher la liste des galeries dans la sidebar. Les lignjes 153 à 156 du fichier contiennent ces lignes :

<div id="categories">
   <h2>Cat&eacute;gories</h2>
   <?php dcCatList(); ?>
</div>

Juste après (ligne 157), insérez ces lignes :

<div id="galleries">
   <h2><a href="http://franck.paul.free.fr/dotclear/<?php dcGallery::HomeURL(); ?>">Galeries</a></h2>
   <ul>
   <?php dcGallery::galleryList('<li>%s','<ul class=\'children\'>%s</ul></li>','<li>%s</li>'); ?>
   </ul>
</div>

Ensuite il faut ajouter le code qui permettra au plugin d'afficher la liste des galeries, les galeries sous forme de vignettes et les images proprement dites. Les lignes 70 à 72 du fichier template.php contiennent ceci :

<?php if ($err_msg != '') : /* Si on a une quelconque erreur, on l'affiche */?>
   <div class="error"><strong>Erreur : </strong>
   <?php echo $err_msg; ?></div>

Juste après (ligne 73), insérez ces 6 lignes :

<?php elseif ($mode == 'galleryCat') : ?>
   <?php include dcGallery::includeCat(); ?>
<?php elseif ($mode == 'galleryGal') : ?>
   <?php include dcGallery::includeGal(); ?>
<?php elseif ($mode == 'galleryImage') : ?>
   <?php include dcGallery::includeImage(); ?>

Enfin, il faut ajouter un lien vers la feuille de style utilisée par le plugin dans l'entête. La ligne 46 et 47 du fichier contiennent ceci :

<link rel="stylesheet" type="text/css" href="http://franck.paul.free.fr/dotclear/<?php dcInfo('theme'); ?>/style.css" media="screen" />
<?php dcPostTrackbackAutoDiscovery(); ?>

Entre ces deux lignes, insérez la ligne suivante :

<link rel="stylesheet" type="text/css" href="http://franck.paul.free.fr/dotclear/<?php dcGallery::includeCSS(); ?>" media="screen" />

Voilà, c'est tout pour le fichier template.php. Enregistrez-le et envoyez le si nécessaire sur votre espace d'hébergement.

Le style utilisé pour l'affichage des galeries (listes, vignettes et images)

Toutes mes galeries utilisent le thème connections qui est dérivé du thème default fourni avec le plugin galerie. Il vous suffit de télécharger l'archive jointe à ce billet et de la décompacter sur votre disque dur puis d'en téléverser le contenu dans un nouveau répertoire nommé /share/gallery/themes/connections/. Ensuite il faudra préciser pour chacune des catégories et des galeries que vous souhaitez utiliser le thème connections.

Personnellement, j'ai choisi une autre approche qui m'évite de changer le thème des catégories et des galeries. J'ai fait une copie du thème défault (on ne sait jamais), et j'ai remplacé le contenu par ma version. Comme ça, c'est pris en compte directement.

Voili, voilà.

Billet original sur Carnet :: Franck Paul

mercredi 29 novembre 2006

Aveu

Il y a des moments, comme ce soir par exemple, où je hais ce type ...

Vraiment ! :-p

Billet original sur just call me pep - dotclear

mardi 28 novembre 2006

Le menu de Freshy - Compléments

Je vous avais parlé des possibilités de personnalisation de la barre de menu du thème Freshy dans ce billet de fin septembre dernier. Depuis, plusieurs d'entre vous ont posé des questions ici, sur le forum de DotClear ou encore par mail, essentiellement sur la manière de de mettre en évidence le menu sélectionné en fonction du mode courant.

Je rappelle que le but du jeu est de positionner une classe current_page_item sur la balise <li> (en plus de la classe existante page_item ou last_menu qu'il faut préciser quoiqu'il arrive). Le code de base est le suivant :

<li class="page_item <?php echo (test) ? 'current_page_item' : ''; ?>">…</li>

Voilà l'aspect normal d'un élément du menu :

Élément de menu normal

Et voilà maintenant à quoi il ressemble lorsqu'on ajoute la classe current_page_item à la balise <li> :

Élément de menu en cours

Attention si vous avez le plugin pagination installé et actif car il intercepte le mode courant et le remplace par le sien. Dans ce cas il faudra tester une autre variable ($dc_orig_mode) dans laquelle le plugin sauvegarde le mode standard avant de le modifier. D'ailleurs, par soucis de simplicité, nous pouvons mettre la ligne suivante, juste avant la définition de la barre de menu, y compris si vous n'avez le plugin installé chez vous :

<?php if ($mode != 'pagination') $dc_orig_mode = $mode; ?>

Nous allons maintenant voir comment spécifier le test en fonction des cas.

Cas de la page d'accueil

Dans ce cas, il suffit d'utiliser le test $dc_orig_mode == 'home'.

Cas des catégories

Le test ($dc_orig_mode == 'cat') && ($news->f('cat_id') == xx) permettra de tester si la catégorie possédant l'identificateur numérique xx est active. L'identificateur numérique est facilement récupérable sur la page de gestion des catégories. Vous y trouverez la liste de toutes vos catégories et pour chacune, en glissant la souris sur leurs noms vous verrez une URL qui se termine par &cat_id=xx. Notez le xx, c'est lui dont il s'agit.

Si vous souhaitez que l'item de menu reste éclairé y compris lorsque vous affichez un billet de cette catégorie, il suffit d'utiliser && ($news->f('cat_id') == xx).

Cas des pages connexes

J'avais précisé dans le billet précédent comment créer une petite fonction dans le fichier prepend.php du thème qui permet de faire test simplement. Avec cette fonction, il suffit de tester avec dcRelatedCurrent('infos') pour une page spécifiée avec infos = "infos.php|Informations" dans le fichier related.ini du plugin (répertoire share/related@@).

Cas d'un billet particulier

Ici il suffit d'utiliser ($dc_orig_mode == 'post') && ($news->f('post_id') == xxx), avec xxx représentant l'identificateur numérique du billet. Cet identificateur précède normalement le titre dans l'URL du billet. Par exemple, le billet que vous êtes en train de lire à un identificateur égal à 792.

Cas d'une table des matières

Dans ce cas, il faut utiliser ($dc_orig_mode == 'tocHome'). Si vous voulez différencier les différentes tables des matières en fonction du fichier de configuration utilisé, vous pouvez compléter en testant la variable $toc_ini_file qui contiendra alors le nom du fichier de configuration (sans extension). Par exemple ($dc_orig_mode == 'tocHome') && ($toc_ini_file == 'alpha') dans le cas d'un fichier alpha.ini (dans le répertoire share/toc).

Cas d'une galerie

Avec le plugin Galerie il suffit de tester avec ($dc_orig_mode == 'galleryCat') || ($dc_orig_mode == 'galleryGal') || ($dc_orig_mode == 'galleryImage').

Cas du résultat d'une recherche

Sur la page de résultat d'une recherche il faut tester avec ($dc_orig_mode == 'search').

Voilà, je pense avoir fait le tour des possibilités. Si vous aviez des précisions à apporter, n'hésitez-pas à le faire en commentaire, je mettrai alors ce billet à jour en conséquence.

Billet original sur Carnet :: Franck Paul

samedi 25 novembre 2006

Ça se passe comme ça...

Kozlika : S'il vous plaît monsieur LeNavigateur, je voudrais voir le blog de ma copine Samantdi.
LeNavigateur : Je vous affiche ça tout de suite m'dame Kozlika, ne bougez pas.

LeNavigateur : Allô ? Le serveur des pages de Samantdi ? Pourriez-vous m'envoyer les pages de son blog s'il vous plaît ? Ça urge, la cliente est en manque.
LeServeurWeb : OK, je secoue les puces de son dotclear et je vous envoie ça.

LeServeurWeb : Toc, toc ? Dis donc, Dotclear chou, tu me files les pages de Samantdi ? C'est pour livrer dans les plus brefs délais, fais fissa !
Dotclear : j'y cours !

Dotclear :
(au ServeurSQL) : <?php Allo, le ServeurSQL ? Passe-moi le MySQL de Samantdi, steuplé... MySQL, tu vas aller fouiller dans la base de données que je t'ai donnée en gestion et me rapporter les 10 derniers billets, et puis aussi les ingrédients du menu que je t'avais demandé de stocker et puis aussi ceci et cela que je t'avais prié de garder au frigo... Ah, merci, tu es un ange, je te l'avais déjà dit ? ?>
(in petto) : <?php bon alors je prends tout ça, je l'organise, je vais lui mettre un peu de vernis à ongles, des lunettes, un chapeau enfin tout comme Samantdi m'avait écrit dans mes fichiers... Ah voilà, impec; ?>
(à ServeurWeb) : <html>Tiens les voilà, tu verras je t'ai fait un paquet avec le xhtml, les CSS et le Javascript qui font joli avec, tu me dis si tu as tout reçu ?</html>
LeServeurWeb :
(à Dotclear) : Nickel chrome, t'es le meilleur ! C'est Kozlika qui va être contente !
(à LeNavigateur) : <html>Et hop ! Envoyé !</html>

LeNavigateur : Tadaaaaaaaaa ! Et voilà le joli blog de Samantdi !
Kozlika : MERCI !

Je bosse sur la documentation de Dotclear en ce moment. Ça se voit ? ;)

Billet original sur Kozeries en dilettante

vendredi 24 novembre 2006

Mon Opquast v2

Logo de soutien au projet Opquast

C'est enfin annoncé par Elie Sloïm sur le site d'opquast, la version 2 qui intègre entre autres la possibilité de créer ses propres listes de bonnes pratiques est ouverte !

Je vais pouvoir créer rapidement les quatres listes dont je parlais lors de mon étude au printemps dernier, à savoir :

  • Le moteur de DotClear
  • Les thèmes de DotClear
  • Ce que doivent contrôler les auteurs
  • Les autres bonnes pratiques

Il y a surement d'autres possibilités d'utilisation, à vous de les imaginer !

Billet original sur Carnet :: Franck Paul

mardi 21 novembre 2006

jQuery's in da house

A la rentrée, je découvrais par hasard la librairie Javascript que j'espérais un jour trouver. Après quelques essais et une première mise en oeuvre sur le site d'un client, c'était le coup de foudre définitif.

Apparemment, je n'ai pas été le seul à succomber aux sirènes de jQuery, puisqu' Olivier a entamé la bascule du Javascript maison de DotClear2 vers jQuery.

Bon... après avoir été accusés de singer WordPress, allons nous être soupçonnés cette fois d'imiter Drupal, qui a également déjà opté pour jQuery dans sa version 5.x ? ... :-p

Billet original sur just call me pep - dotclear

4 à 2 !

Depuis quelques mois, un timide équilibre était de mise. Hier, ZeuBeuBeu a enfin fait pencher la balance...

Parti loin depuis les lignes arrières, il a pris ses petits camarades par surprise et la sanction est tombée : la dcTeam tourne désormais majoritairement sous DotClear 2 !

C'est le moment de mettre la pression aux deux derniers. :-)

Billet original sur just call me pep - dotclear

mardi 14 novembre 2006

Dangereux communistes nous sommes ...

... dangereux communistes nous resterons.

Tous en choeur : C'est la lutte finaleuh ...

Billet original sur just call me pep - dotclear

mardi 7 novembre 2006

Ping Me Seymour !

Et voilà. C'est fait.

DotClear.net dispose de son propre service de ping.

Ainsi, les possesseurs de blog DotClear / DotClear 2 pourront désormais signaler leurs nouveaux (ou premiers) billets au reste de la communauté. De quoi donner un sérieux coup de fraîcheur à la page Utilisateurs de DotClear.

Mais peut-être ne s'agit-il là que du premier pas vers une éventuelle réorganisation ? :-)

Billet original sur just call me pep - dotclear

Plugin Ping 0.9.1 (Bugfix)

Ooops... :-p

Je peux bien me moquer des couacs du projet PHP, mais en fin de compte, transposé à ma petite échelle, je fais bien pire...

David m'a fort justement signalé que l'enrobage en Javascript ne fonctionnait pas sous Opera. En y regardant de près, je me suis rendu compte que je n'avais pas fini le ménage dans le code, oublié certains blocs et le fichier de licence, mais également une boite de confirmation lors de la suppression d'un service depuis l'interface de gestion.

En résumé, j'avais packagé comme un cochon[1] !

Espérons que la présente livrée rattrapera le faux pas de la précédente.

Téléchargement :

PS : Merci à David de s'être si patiemment prêté au rôle de betatesteur désigné volontaire. :-)

Notes

[1] J'en connais un qui va se marrer... ;-)

Billet original sur just call me pep - dotclear

lundi 6 novembre 2006

Petits problèmes à l'allumage ...

Il n'y a pas de raison que ça n'arrive pas à DotClear : il y a eu un petit couac avec le lancement de la beta3. Donc, place à une beta 3.1[1].

En tout cas, ça se passe toujours au même endroit.

Notes

[1] On va se géner, tiens ! :-)

Billet original sur just call me pep - dotclear

dimanche 5 novembre 2006

Plugin Ping 0.9

Pré-requis : DotClear 1.2.3 ou version 1.2.x supérieure

Ce qui change :

  • L'interface d'utilisation devrait être un peu plus pratique[1].
  • Il est désormais possible de gérer (ajouter/supprimer) les services de ping sans avoir à éditer les fichiers PHP du plugin[2].
  • D'origine, la liste des services disponibles est un peu plus complète et présente les services majeurs.
  • Le bug rencontré lors des soumissions avec des caractères accentués dans le nom du blog devrait être résolu[3].
  • Il y a une petite place pour l'optimisme : au moment du déclenchement des pings, le plugin tente de repousser les limites du temps d'exécution du script[4].
  • Le plugin s'appuie sur (et embarque) une version patchée de la librairie IXR, afin de prendre correctement en compte les timeouts sur les connexions, ainsi que de fournir un encodage plus strict des caractères spéciaux.

Ce qui ne change pas :

  • La liste des services fournie d'origine, bien que plus complète, est loin d'être exhaustive. Il est seulement plus simple de la compléter.
  • Les notifications se limitent toujours aux services XML-RPC, et sont sous la forme de messages weblogsUpdate.ping seulement[5].
  • Il n'est toujours pas possible de déclencher directement les pings depuis l'interface de rédaction d'un billet[6].

Téléchargement :

Notes

[1] Une pincée de Javascript et quelques facilités supplémentaires pour les feignasses.

[2] A la condition d'avoir le dossier du plugin accessible en écriture par PHP. Pour certains d'entre vous, il faudra probablement dégainer le CHMOD 777.

[3] Enfin, je l'espère. En tout cas, mes tests avec un blog nommé pour l'occasion Le ukulélé enchanté se sont bien passés.

[4] Mais ça, je n'y crois pas trop...

[5] La classe basicPing devrait néanmoins supporter les messages weblogsUpdate.extendedPing, mais j'ai décidé de ne pas ouvrir les vannes dans cette version.

[6] Peut-être dans une prochaine évolution, on verra.

Billet original sur just call me pep - dotclear

Faites chauffer !

La version beta 3 de DotClear 2 est disponible.

Au menu :

  • Des correctifs de bugs.
  • Un ré-agencement de certains fichiers.
  • Une petite (par la taille ...) modification du mécanisme de chargement des plugins.
  • Des améliorations de fonctionnalités existantes (Gestionnaire de média, interface XML-RPC, ...).
  • Deux nouveaux plugins fournis dans la distribution : Akismet, un antispam utilisant le service éponyme et Pings, un client de ...ping. :-)

Pour plus de détails, le plus simple est encore de consulter l'annonce officielle et le changelog associé.

A ce stade, DotClear 2, ça tourne vraiment bien et c'est déjà très stable. D'ailleurs, ce blog tourne, depuis sa migration en DC2, avec une version SVN mise à jour au fil de l'eau.

D'ailleurs, je pense qu'il ne manque vraiment plus grand chose pour une release finale. ;-)

Pour juger par vous-même, ça se passe par là...

Billet original sur just call me pep - dotclear

samedi 4 novembre 2006

Un centre d'aiguillage

Une page regroupant les liens vers la documentation et les tutoriels est désormais disponible sur ce blog et mise en valeur à l'accueil.

Billet original sur le petit dotclear illustré

vendredi 3 novembre 2006

Rassuré !

Alors on a fait un dotclear, il parai que celui qui fait le programe il se fache parfois si on dit des bètises ici mais quand mème, je voulai juste dire merci (...)

C'est un petit Simon, 10 ans, qui nous fait le plaisir d'un merci, avec ses mots. Et j'adore. :-)

En plus, ça me rassure : celui qui se fâche parfois[1] n'arrive pas encore à effrayer les enfants ! Il nous reste donc peut-être une chance de le ré-insérer. :-p

En tout cas, merci à toi, Simon.

Notes

[1] Rhooo... Il y a un Google bombing qui me tente bien là...

Billet original sur just call me pep - dotclear

mardi 31 octobre 2006

Les fous du ping

Que les utilisateurs de DotClear / DotClear 2 adeptes des services de ping se rassurent : on ne les oublie pas.

Dans les jours qui viennent, l'équipement devrait être complet avec:

  • l'arrivée d'un plugin adéquat pour DotClear 2 (on a même failli en avoir 2 :-p),
  • une mise à jour du plugin existant pour DotClear 1.2.x
  • et la petite surprise du chef[1].

Please, hold on the line.

Notes

[1] Oui, ça sonne un peu teasing inside, mais on aura le temps d'en reparler...

Billet original sur just call me pep - dotclear

lundi 30 octobre 2006

Le champ commentaire est trop petit !

Parfois on me fait cette réflexion à propos des champs disponibles sur le formulaire qui permet de laisser des commentaires sur ce blog. Alors naturellement, comme j'aime bien que mes visiteurs aient tout le confort, j'ai cherché une solution. J'ai vu que DotClear 2 propose un moyen d'agrandir les champs de saisie des billets (côté administration), et que Pep l'a même mis en place côté visible pour ceux qui viennent laisser des commentaires chez lui. Je regarde, je soupèse, je vois que cette solution ne fonctionne que pour les navigateurs construit autour du moteur Gecko (Firefox et consort), je vais voir ailleurs sur le net, il y a bien sûr plein de solutions différentes, plus ou moins supportées en fonction du navigateur, ...

Puis cet après-midi, je vois arriver une petite news dans mon agrégateur préféré à propos d'une extension nommée Resizeable Form Fields. Je vais voir ce dont il s'agit, je l'installe et j'essaye. Bingo ! Ca fonctionne quasiment sur tous les sites, sur toutes les pages et pour tout les champs textes, génial. Seul bémol, ça ne fonctionne qu'avec Firefox, ce qui est déjà pas mal, non ?

Une fois installé, vous n'avez plus qu'à venir positionner la souris sur le bord droit, sur le bord bas ou sur le coin bas-droit du champ pour agrandir ou diminuer en cliquant et tirant (le curseur change de forme lorsque vous êtes au-dessus de la zone sensible).

Billet original sur Carnet :: Franck Paul

vendredi 27 octobre 2006

Revendications

On a discuté le bout de gras la semaine dernière

<Pep> je reclame le droit d'avoir un "Ooops :-p" par commit !
<Pep> c'est un point non negociable
<Pep> ;)
<Olivier> haha
<Olivier> un oops et un damnit même ;)

Gain de cause au delà de mes espérances.

Et on ne va pas s'en priver !
Hein, xave ?

Billet original sur just call me pep - dotclear

- page 1 de 14