Citriq : automatiser le référencement de vos critiques littéraires avec PHP

Si votre site ou blog utilise php, il est facile de lui faire écrire le petit code JavaScript permettant de référencer automatiquement vos critiques dans Citriq. Cela vous évitera d’avoir à les entrer une par une.

Voici une fonction qui permet de faire écrire automatiquement le code widget à PHP en fonction des paramètres reçus. Elle nécessite PHP 5.

Cette fonction permet notamment via deux nouveaux paramètres excerpt et rating d’envoyer à Citriq un extrait (jusqu’à 500 caractères) de la critique et une note (sur 100). Ces paramètres étaient jusqu’à présent réservés aux critiques entrées manuellement.  La fonction se charge en outre de l’encodage du texte dans les paramètres du widget de manière à ce que les caractères soient correctement pris en charge par Citriq.

La fonction

function citriq($params) {
  if(empty($params["uid"])) $error = "Le paramètre uid est obligatoire";
  elseif(empty($params["isbn"])) $error = "Le paramètre isbn est obligatoire";
  else return '<script type="text/javascript" src="http://citriq.net/w/crawl?'.http_build_query($params).'"><script>';
  if($params["debug"] == 1 && isset($error)) die("Erreur Citriq : ".$error);
}

Utilisation

Cette fonction prend comme seule valeur un tableau php (array) dont les clés sont les différents paramètres du widget Citriq. Sauf mention contraire, ils sont tous facultatifs. Notez que les noms des paramètres sont toujours en minuscules.

  • uid (obligatoire) : l’identifiant unique de la critique dans votre base ;
  • isbn (obligatoire) : le code IBSN du livre critiqué ;
  • excerpt : un extrait de la critique (jusqu’à 500 caractères) ;
  • reviewer : l’auteur de la critique (s’il y en a plusieurs sur le site) ;
  • source : support dont est issue la critique (si différent du site) ;
  • rating : permet d’indiquer une note (un entier, sur 100) ;
  • date : la date de publication de la critique ;
  • ignore : permet d’afficher le widget sans enregistrer la page en cours ;
  • debug : si ce paramètre facultatif est égal à 1, Citriq affichera des informations statistiques et un éventuel message d’erreur sur votre site.

La fonction retourne le code javascript du widget préparé qu’on peut récupérer dans une variable ou afficher immédiatement avec l’instruction echo.

Exemple

Ci-dessous, un exemple de code (fictif) qui permettrait de référencer la critique publiée sur cette page, pour le résultat sur cette page.

$params["uid"] = 3601;
$params["isbn"] = 9782277492830;
$params["excerpt"] = "Quand, voici quelques mois, les jeunes éditions Dystopia Workshop publièrent Le Prophète et le vizir, la surprise fut de taille. On ne s’attendait pas le moins du monde à voir le couple Rémy revenir à l’écriture et publier de l’inédit. Il avait eu une assez belle carrière dans les années 70, dont plus d’un se serait satisfait, mais il semblait qu’elle fût désormais de...";
$params["reviewer"] = "Jean-Pierre Lion";
$params["source"] = "Bifrost 71";
$params["rating"] = "80"; // Equivaut à 4 étoiles sur 5
echo citriq($params);

Exemple avec WordPress

Il est possible d’utiliser les champs personnalisés de WordPress pour faire générer automatiquement le code du widget Citriq par WordPress. On trouvera plus d’information à ce sujet dans l’article Automatiser le référencement de vos critiques avec WordPress.

MAJ du 08/02/2014 : il existe aussi une extension WordPress pour Citriq, qui utilise cette fonction php mais est beaucoup plus simple à mettre en oeuvre.

$params["uid"] = get_the_id(); // L'identifiant de l'article WordPress
$params["isbn"] = get_post_meta(get_the_id(), "isbn", true); // Le champ personnalisé "isbn"
$params["reviewer] = get_the_author(); // L'auteur de l'article WordPress
$params["excerpt] = get_post_meta(get_the_id(), "extrait", true); // Le champ personnalisé "extrait"
if(is_singular()) echo citriq($params);

Résolution des problèmes

Si le code du widget ne s’affiche pas correctement, vous pouvez utilisez le paramètre facultatif debug pour afficher un message d’erreur. Si vous ne comprenez pas le message d’erreur, n’hésitez pas à poser la question dans les commentaires ci-dessous.

Bonus : l’équivalent en Python (merci Joachim)

php-epub-cleaner

php-epub-cleaner

English readme available on GitHub

Lorsque je convertis un document Word, inDesign ou XPress en HTML en vue de fabriquer un fichier ePub, j’ai souvent de nombreuses corrections à faire. Plutôt que de multiplier les rechercher/remplacer dans Sigil, j’ai préféré créer un script PHP qui s’en occupe pour moi.

Les sources de ce script peuvent être récupérée sur Github :
https://github.com/iwazaru/php-epub-cleaner

Ce script va :

  1. Uploader le fichier ePub vers le serveur
  2. Décompresser le fichier dans un dossier temporaire
  3. Ouvrir chaque fichier .html, .htm ou .xhtml et appliquer les corrections
  4. Recompresser le dossier au format ePub
  5. Proposer le téléchargement du nouvel ePub

 Démo

Une démo se trouve ici : http://labs.nokto.net/php-epub-cleaner

Veuillez noter que tous les fichiers ePub uploadés pour nettoyage seront conservés en cache sur le serveur. Cette page ne devrait être utilisé qu’à des fins de tests. Pour une utilisation en production avec des fichiers commerciaux, merci d’installer votre propre version de l’application à partir des sources sur Github.

Installation

Copier le dossier php-epub-cleaner sur votre serveur supportant PHP5.

Personnalisation

J’ai créé ce script pour nettoyer les erreurs générés par Word2CleanHTML ne respectant pas les règles de la typographie française (ajouter les espaces insécables, retirer les espaces avant les points ou les virgules, etc.), mais vous pouvez tout à fait créer vos propres règles de remplacement en modifiant le tableau php $replacements.

Historique

1.1 (26/02/2014)

  • Ajout d’un journal de correction (« Correction log ») qui compte le nombre de remplacements et de suppressions
  • Diverses corrections de bugs

1.0.1 (27/12/2013)

  • Amélioration de la prise en charge des caractères accentués majuscule (notamment ê)