mercredi, mai 4 2011

Configuration Windows Live Writer avec DotClear 2.2

L’écriture d’un article de blog, notamment quand il comporte de nombreuses photos ou capture d’image, n’est pas aisé avec l’interface web de DotClear. C’est pour cette raison que j’avais opté – notamment lors de notre voyage en Australie et en Nouvelle-Zélande – pour Windows Live Writer, histoire de rédiger tous mes billets hors-ligne et n’avoir qu’à peser sur un bouton pour leur publication.

Grâce à DotClear 2.2 (ou une nouvelle version de Windows Live Writer?), il est maintenant plus aisé que jamais de configurer son DotClear dans Windows Live Writer. Le tout se résume maintenant à:

1. Activer l’interface XML RPC de DotClear

Dans about:config, sélectionner l’onglet “paramètres du blog” si l’on a plusieurs blogs et on souhaite activer l’interface que pour un blog, ou alors l’onglet “paramètres globaux” pour définir la propriété globalement.

La propriété “enable_xmlrpc” est à modifier dans le namespace system.

image

2. Configurer Windows Live Writer

Il suffit maintenant de donner l’URL du blog à Windows Live Writer ainsi qu’un utilisateur et mot de passe valable pour que tout se configure automatiquement!

Enfin presque, car une astuce demeure: la configuration automatique ne permet pas la publication des images, et il est nécessaire de configurer le transfert FTP pour celles-ci. Cela se passe dans le menu Blogs – Modifier les paramètres du blog… – puis dans la sélection “Images”.

3. Réglages additionnels

Afin d’avoir les photos de taille similaires pour les articles écrits via Windows Live Writer que via l’interface web, j’ai modifié les réglages suivants dans Windows Live Writer.

Après avoir inséré et sélectionné une image, j’ai modifié dans l’onglet avancés les réglages suivants:

  • Taille: Moyenne

Dans la fenêtre “Taille des images par défault”:

  • Largeur maximale: 448 pixels
  • Hauteur maximale: 448 pixels

image

De retour dans l’onglet “Image”, appuyez sur l’option “Options…” pour cocher “Ouvrir dans une nouvelle fenêtre”.

image

Terminez le tout en enregistrant ceci comme étant les nouveaux paramètres par défaut!

4. Mais comment marche la configuration automatique du blog?

Ce qui suis ne sont que des suppositions, mais serait tout à fait cohérent:

La seule information demandée lors de la configuration est l’adresse du blog. Si l’on regarde le code HTML de la page d’accueil de ce blog, on remarque dans le head la balise suivante:

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.ness.ch/misc/?rsd" />

En suivant ce lien, nous arrivons sur un document XML détaillant le type de blog ainsi qu’une série d’APIs supportées:

image

On notera avec intérêt que l’API préférée d’après ce document est WordPress, contrairement aux versions précédentes où il était conseillé de mentionner Movable Type comme type de blog.

mardi, avril 5 2011

Optimisations pour DotClear

DotClear est utilisé comme blog non seulement pour ces quelques écrits ici, mais également pour le récit de nos deux ans passés en Nouvelle-Zélande puis du voyage de retour qui nous a mené en Austalie, Tahiti, Hawaii puis finalement New York.

Comme ce second blog contient plus de 400 articles à ce jour, certaines modifications ont été faites afin d'optimiser ou corriger quelques points après la publication des articles.

Il est en effet pas toujours facile - notamment quand on est en déplacement - de synchroniser parfaitement ses tags, avoir une cohérence dans les URLs ou encore optimiser le référencement. De plus, comme nous n'avons pas uniquement utilisé l'interface web de DotClear pour publier des articles, mais également Windows Live Writer via l'interface RPC, certains problèmes sont apparus après coup - comme des problèmes d'encodages de caractères HTML dans les URLs.

Le but de ces prochains billets est de faire le point sur ce qui a changé - provisoirement ou définitivement - sur l'installation DotClear pour www.ness.ch/voyage-en-nz/.

Duplication de contenu

Les outils Google Webmaster ont rapidement signalé que des duplications de contenu avaient été détectées, comme par exemple (notez le index.php après /voyage-en-nz/):

Heureusement la solution est simple, il suffit de rajouter une balise <link rel="canonical"> dans l'entête HTML avec comme URL la page de référence. Cela se traduit dans DotClear en ajoutant la ligne ci-dessous dans le fichier /themes/default/tpl/post.html (ligne 28 dans mon cas, après la balise <link rel="contents" ...>):

<link rel="canonical" href="{{tpl:EntryURL}}"  />

Optimisation des tags

Je n'avais pas pris soin lors de la saisie des tags de veiller à ce qu'ils soient tous avec la même syntaxe (débutant avec une majuscule ou pas, faute d'orthographe, mots apondus ou séparés par tirets...) et de réutiliser toujours les mêmes tags pour un sujet donné. Afin de faire de l'ordre dans tout cela, j'ai tout d'abord exporté au format csv depuis PhpMyAdmin le contenu de la table dc_meta ayant le meta_type "tag".

Une fois dans Excel, j'ai trié les différents tags puis mis à jour la table à l'aide de requêtes SQL UPDATE - par exemple forcer tous les tags Avion à devenir avion:

UPDATE `dc_meta`
	SET `meta_id` = 'avion'
	WHERE `meta_type` = tag
		AND`meta_id` = 'Avion'

Outre l'amélioration de navigation dans les tags, cela a conduit à un nouveau problème: Google, qui avait référencé tous les tags, a commencé à signaler dans les Webmasters Tools plusieurs centaines d'erreur 404 - page non trouvée. Bien qu'aucune page ne pointait vers ces tags désormais désuets, Google avait conservé des copies locales dans son cache et générait de telles erreurs.

Afin de garantir que (presque) tous les tags mis à jour trouvent leur nouvelle page, les modifications suivantes ont été faites provisoirement dans le fichier /plugins/tags/_public.php:

Ligne 250:

public static function tag($args)

est devenu

public static function tag($args, $retry=false)

Ligne 294 et suivantes:

			if ($GLOBALS['_ctx']->meta->isEmpty()) {
				self::p404();

est devenu

				if (!$retry)
				{
					$args = htmlentities($args, ENT_NOQUOTES, 'utf-8');
					$args = str_replace(array('Malborough','malborough'), 'marlborough', $args);
					$args = str_replace(array('nouvelle-z&eacute;lande','nouvelle-zelande'), 'nouvellezelande', $args);
					$args = str_replace('Volcano', 'volcan', $args);
					$args = str_replace('londres', 'london', $args);
					$args = str_replace('gastonomie', 'gastronomie', $args);
					$args = str_replace('cable car', 'cablecar', $args);
					$args = str_replace('criquet', 'cricket', $args);
					$args = str_replace('botanique', 'botanic', $args);
					$args = strtolower($args);

					if ($args == 'cap')
						$args = 'cape';
						
					if ($args == 'cable')
						$args = 'cablecar';
					
					self::tag($args, true);
				}
				else
				{
					self::p404();
				}

Tous les caractères accentués sont encodés en entités HTML avant d'être replacé par une alternative sans accent. Le tag est également passé entièrement en minuscule afin d'éviter tout problème et l'on relance la fonction tag mais cette fois ci avec un second paramètre mis à true afin d'éviter de partir dans une boucle sans fin.

La duplication de contenu reste cependant un problème dans ce cas, car la balise <link rel="canonical" ne s'applique qu'aux articles de blog et non pas aux pages tels que les tags. Il est ainsi conseillé de supprimer ce hack une fois que Google a indexé toutes les pages correctement et ne prends plus en compte les vieux tags dans son index.

page 3 de 3 -