TextUID : Propositions pour un identifiant unique d’un livre, commun à ses différentes éditions, générable automatiquement

Dans cet article, je propose des pistes pour une m√©thode facilement reproductible permettant de g√©n√©rer automatiquement un identifiant de texte. Ce n’est pas une m√©thode parfaite, mais plut√īt la ¬ę¬†moins mauvaise¬†¬Ľ m√©thode, aussi je suis ouvert √† toute suggestion permettant de l’am√©liorer.

MAJ 08/06/2014 : ajout des règles 6 et 7 et de deux nouveaux exemples. Merci à @edasfr pour ces remarques.

Pourquoi ?

Lorsque je développe un site ou un outil pour les libraires, un besoin récurent celui est de pouvoir identifier les différents livres correspondant à un même texte (nouvelle édition, réédition en poche, version numérique ou audio, etc.).

Par exemple, le site de la librairie Scylla, sur chaque fiche livre, propose le m√™me livre dans d’autres formats ou d’anciennes √©ditions √©puis√©s disponibles d’occasion. Autre exemple, la librairie Charybde, pour le calcul de ses meilleures ventes, souhaite que les ventes d’un m√™me texte chez diff√©rents √©diteurs soient additionn√©s et pas consid√©r√©s comme des livres diff√©rents.

Aujourd’hui,¬†ce recoupement demande que les librairies (ou autres utilisateurs de Biblys) cr√©ent manuellement ces relations, op√©ration fastidieuse qui peut √™tre source d’erreur.

Cahiers des charges

La m√©thode de g√©n√©ration de l’identifiant doit :

  • √™tre facilement √† mettre en Ňďuvre afin que n’importe qui puisse g√©n√©rer un identifiant sans passer par une autorit√© centrale ;
  • √™tre suffisamment d√©taill√©e et pr√©voir tous les pi√®ges possibles : deux acteurs g√©n√©rant un identifiant pour le m√™me texte doivent parvenir¬†syst√©matiquement au m√™me r√©sultat.

D’autres (mauvaises) solutions

  • Le titre du livre, de toute √©vidence, ne peut convenir puisque que, si deux editions d’un livre ont a priori le m√™me titre, il n’est pas rare que deux livres sans aucun rapport ait √©galement le m√™me titre. Par exemple, dans la base Biblys (qui est loin d’√™tre exhaustive), il y a pas moins de cinq titres d’auteurs diff√©rents intitul√© ¬ę¬†Les Insoumis¬ę¬†…
  • Les ISBN sont propres √† chaque √©dition d’un livre, il arrive parfois qu’un m√™me livre chez un m√™me √©diteur puisse obtenir des ISBN diff√©rents au fil des r√©impressions, ils ne peuvent donc convenir √† cet usage.
  • La norme ISTC¬†(pour International Standard Text Code) se rapproche de nos besoins, mais elle a deux d√©savantages. D’abord, elle ne n√©cessite de passer par une autorit√© centrale, une agence (en France, √Člectre) qui ne peut cr√©er de nouveaux codes qu’√† la demande d’un √©diteur ou d’un ayant droit. De plus, elle semble peu utilis√©e aujourd’hui.

Description de la norme TextUID

Elle se pr√©sente sous la forme un ensemble de r√®gles, dont le but est de d√©crire la m√©thode de g√©n√©ration de l’identifiant en tentant de pr√©voir¬†un maximum de cas particuliers pour indiquer la marche √† suivre le cas √©ch√©ant. De¬†nouvelles r√®gles pourront donc √™tre ajout√©es si de nouveaux cas particuliers probl√©matique¬†sont d√©couverts.

Règle 1

Le TextUID est une empreinte¬†MD5 g√©n√©r√© d‚Äôapr√®s une cha√ģne de caract√®res pr√©cises, encod√© en UTF-8, en majuscules, contenant :
TITRE ORIGINAL du livre
barre oblique entour√© d‚Äôespaces : ‚Äė / ‚Äė
NOM PR√ČNOM de l‚Äôauteur (ou NOM uniquement le cas √©ch√©ant)

Soit : TITRE ORIGINAL / NOM PR√ČNOM

Règle 2

Le titre du livre doit √™tre dans la langue de publication originale, afin que les diff√©rentes traductions d‚Äôune oeuvre poss√®dent bien le m√™me identifiant que l’original.

Règle 3

Si le livre a plusieurs auteurs, on les ajoute dans l’ordre alphab√©tique, l’un apr√®s l’autre, s√©par√©s par une virgule et une espace : NOM PR√ČNOM, NOM PR√ČNOM (ou NOM uniquement le cas √©ch√©ant)

Soit : TITRE ORIGINAL / NOM PR√ČNOM, NOM, NOM PR√ČNOM

Règle 4

S’il existe plusieurs graphies pour un titre de livre, on utilise celui mentionn√© sur la couverture de la premi√®re √©dition.

Règle 5

S’il existe plusieurs graphies pour un nom d’auteur, on utilise celui mentionn√© sur la couverture de la premi√®re √©dition de son premier livre publi√©.

Règle 6

Si le livre fait partie d’une s√©rie, on utilise le titre du tome uniquement. Si le tome n’a pas de titre, on utilise le nom de la s√©rie, suivi d’un tiret et du num√©ro du tome.

Règle 7

Si le livre est un ouvrage collectif et qu’un ou plusieurs directeurs d’ouvrage sont mentionn√©s (¬ę¬†Sous la direction de…¬†¬Ľ), ce sont ces noms qui seront utilis√©s au lieu¬†du nom des auteurs.

Quelques exemples :

Le Petit Prince

Cha√ģne :¬†LE PETIT PRINCE / DE SAINT-EXUP√ČRY ANTOINE
Empreinte MD5 : 31943e821c39ccd479441a2b0bdcf2b7

L’Attrape-coeurs

Cha√ģne :¬†THE CATCHER IN THE RYE / SALINGER J. D.
Empreinte MD5 : 9c93c0d32ee994bddf65bb6f3bcfa421

Les Soldats de la mer

Cha√ģne :¬†LES SOLDATS DE LA MER / R√ČMY ADA, R√ČMY YVES
Empreinte MD5 : d44c3bf585ee56cf1ae02f043492de81

À la recherche du temps perdu, tome 2

Cha√ģne : √Ä L’OMBRE DES JEUNES FILLES EN FLEURS / PROUST MARCEL
Empreinte MD5 : 736ac35cc4ce8b67dfbaaa901c03f398

L’√©nergie √† d√©couvert, sous la direction de…

Cha√ģne : L’√ČNERGIE √Ä D√ČCOUVERT / JEANDEL CATHERINE, MOSSERI REMY
Empreinte MD5 : 97ff30f497e277265045e3cbdf08a37c

Exemples de code

PHP

<?php

function textuid($title, $authors)
{
    foreach ($authors as $author)
    {
        if (!isset($authors_string)) $authors_string = NULL;
        else $authors_string .= ', ';
        $authors_string .= trim($author['last_name'].' '.$author['first_name']);
    }
    $string = mb_strtoupper($title.' / '.$authors_string, 'UTF-8');
    $hash = md5($string);
    return array('string' => $string, 'hash' => $hash);
}

$book_title = "Les Soldats de la mer";
$book_authors = array(
    array('first_name' => 'Ada', 'last_name' => 'Rémy'),
    array('first_name' => 'Yves', 'last_name' => 'Rémy')
);

var_dump(textuid($book_title, $book_authors));

Voir aussi ici le code en action.

Conclusion

J’utilise d√©j√† cette m√©thode, √† des fins de test, pour la base Biblys. Je la partage ici car je pense qu’elle pourrait √™tre utile √† d’autres en interne, mais aussi parce qu’elle prendrait un tout autre int√©r√™t dans le cadre d’un √©change de donn√©es entre des bases diff√©rentes.

Je suis conscient que cette m√©thode ne pourra jamais fonctionner √† 100%, mais je pense que la premi√®re r√®gle doit pouvoir couvrir 99% des cas et que les suivantes doivent pouvoir permettre de se rapprocher au maximum de la perfection… tout en sachant qu’on ne pourra jamais l’atteindre ! Mais c’est sans doute le prix √† payer pour une g√©n√©ration automatique, sans v√©rification humaine.

Je suis donc bien entendu ouvert √† toute question, remarque ou proposition de r√®gles qui pourrait permettrait d’am√©liorer la m√©thode !

PHP : Conversion ISBN/EAN, la classe !

J’ai propos√© ici-m√™me, ces derni√®res ann√©es,¬†plusieurs fonctions PHP permettant la manipulation, la conversion et la validation de codes ISBN, que j’utilise notamment dans le cadre de Biblys ou Citriq. ¬†Entre temps, j’ai d√©couvert la programmation orient√© objet : voici donc une¬†classe pour r√©unir¬†toutes ses fonctions.

Télécharger php-isbn-class sur Github

Un autre int√©r√™t de cette classe par rapport √† mes pr√©c√©dentes fonctions est qu’elle ne se limite pas aux ISBN francophones (978-2 et 979-10) mais qu’elle fonctionne avec n’importe quel code, gr√Ęce au fichier range.xml qui l’accompagne.

Cette classe peut être utilisée pour :

  • Valider un code ISBN
  • Convertir des codes entre les formats ISBN-10, ISBN-13 et EAN (sans tirets)
  • Calculer le caract√®re de contr√īle
  • Afficher l’agence d’enregistrement du code (pays ou langage)

Démo

Une d√©mo est disponible √† l’adresse :¬†http://labs.nokto.net/php-isbn-class/

Installation

  • Incluez ISBN.class.php dans votre script PHP
  • Procurez-vous une version r√©cente du fichier range.xml aupr√®s de l’ISBN International Agency¬†(ou utilisez celle fournie)
  • D√©finissez la constante ISBN_RANGES_FILE avec le chemin du fichier range.xml
  • Utilisez les autres constantes pour d√©finir vos messages d’erreurs (en anglais par d√©faut).

Utilisation

 <?php
     require_once('ISBN.class.php');
     $isbn = new ISBN('9791091146098'); // créer un objet ISBN
     if ($isbn->isValid()) // vérifie si le code est un ISBN valide
     {
         echo $isbn->format('ISBN-13'); // affiche le code au format ISBN-13
         echo $isbn->format('ISBN-10'); // affiche le code au format ISBN-10
         echo $isbn->getChecksum(); // calcule et affiche le caract√®re de contr√īle
         echo $isbn->getAgency(); // affiche l'agence d'enregistrement
     }
     else
     {
         echo $isbn->getErrors(); // show validation errors
     }
 ?>

Image de une : Barcode CC BY-SA  Martin Fisch

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 √™)

Citriq : automatiser le référencement des critiques avec WordPress

Si vous avez un blog de critiques litt√©raires sous WordPress, il est possible d’automatiser simplement le r√©f√©rencement de vos critiques dans Citriq. La manipulation consiste √† utiliser les champs personnalis√©s¬†de WordPress¬†pour associer √† chaque critique l’ISBN du livre critiqu√©, puis de modifier votre th√®me pour qu’il g√©n√©re automatiquement le code du widget Citriq en utilisant cet ISBN.

MAJ du 08/02/2014 : Il existe d√©sormais une extension WordPress pour Citriq, bien plus facile √† mettre en oeuvre, et qui vous √©vitera d’avoir √† modifier votre th√®me.

Avant toute chose, il faut bien entendu, si ce n’est pas d√©j√† fait, que votre blog soit inscrit √† Citriq.

Marche à suivre

1. Choisissez une critique de votre blog d√©j√† en ligne mais encore non r√©f√©renc√©e sur Citriq. Cliquez sur Modifier pour acc√©der √† la page d’√©dition de l’article.

2. Cliquez en haut √† droite de la fen√™tre d’√©dition sur Options de l’√©cran, puis cochez la case Champs personnalis√©s pour faire appara√ģtre la section correspondante sur la page d’√©dition, sous la zone de texte.

citriq-wordpress-1.jpg

3. Rep√©rez la zone Ajouter un champ personnalis√©¬†et entrez isbn¬†(en minuscules, c’est important) dans le champ Nom et entrez l’ISBN du livre critiqu√© dans le champ Valeur. Cliquez sur Mettre √† jour pour enregistrer votre article.

citriq-wordpress-2.jpg

NB : L’ISBN est un num√©ro unique attribu√© √† chaque livre publi√©, long de 13 chiffres et commen√ßant toujours par 978 ou 979. On le trouve dans les premi√®res pages du livre ou au dos, g√©n√©ralement pr√®s du code barre. Il peut √™tre entr√© avec ou sans tiret.

Il va falloir ensuite modifier votre th√®me pour permettre √† WordPress de g√©n√©rer automatiquement le code du widget Citriq. La manipulation peut varier selon le th√®me utilis√©, dans les exemples ci-dessous, j’utilise le th√®me par d√©faut Twenty Twelve.

4. Rendez-vous dans le menu Apparence puis dans le sous-menu √Čditeur¬†pour modifier le th√®me actuellement utilis√©. Dans la liste des fichiers √† droite, ouvrez celui qui g√®re l’affichage des articles (ici content.php, parfois content-single.php).

citriq-wordpress-3.jpg

5. Rep√©rez l’endroit o√Ļ vous voulez faire appara√ģtre le widget Citriq, probablement apr√®s le contenu du billet (affich√© par la fonction the_content()). Copiez-collez-y le code php ci-dessous.

<?php
    $isbn = get_post_meta(get_the_id(), "isbn", true);
    if(is_singular() && $isbn != '') echo '<script type="text/javascript" src="http://citriq.net/w/crawl?uid='.get_the_id().'&isbn='.get_post_meta(get_the_id(),'isbn',true).'"></script>';
    ?>

6. Cliquez sur Mettre à jour le fichier pour enregistrer vos modifications.

7. Vous pouvez √† pr√©sent afficher le code source de l’article pour v√©rifier que le code Citriq est bien g√©n√©r√©. Pensez √† vider votre cache et celui de WordPress si le code ne s’affiche pas.

citriq-wordpress-4.jpg

8. Afin que le r√©f√©rencement automatique fonctionne, il faut que j’active l’option de mon c√īt√© dans Citriq pour votre blog. Une fois que vous avez ajout√© le widget √† votre th√®me et associ√© au moins un ISBN √† une critique, contactez-moi pour que je v√©rifie que tout est en ordre et que j’active le r√©f√©rencement automatique.

9. Vous pourrez ensuite ajouter facilement d’autres critiques √† Citriq. Il suffira √† chaque fois d’indiquer l’ISBN du livre concern√© dans le champ personnalis√© isbn de chaque critique.

Si le code du widget n’appara√ģt pas dans le code source

  • V√©rifiez que vous avez bien le nom du champ personnalis√© isbn en minuscule et non en majuscule.
  • V√©rifiez que le fichier que vous avez modifi√© (content.php¬†dans l’exemple) est bien celui qui g√®re l’affichage d’un article seul, par exemple en effectuant d’autres modifications pour voir si elles apparaissent.
  • Si vous utilisez une extension pour g√©rer le cache, pensez √† le vider.
  • Effectuez les v√©rifications d√©crites sur cette page¬†(en anglais).

Résolution des problèmes

Si le code du widget est correctement g√©n√©r√© mais que le r√©f√©rencement ne fonctionne pas, ajoutez ?debug=1 ou &debug=1¬†√† l’adresse de la page de l’article dans la barre de votre navigateur. Le widget Citriq affichera un message d’erreur d√©taillant le probl√®me s’il y a lieu.

citriq-wordpress-5.jpg

Pour aller plus loin

Nous avons vu ci-dessus un cas simple d’utilisation du widget, mais il est √©galement possible d’utiliser d’autres champs personnalis√©s pour communiquer √† Citriq d’autres informations lors du r√©f√©rencement de la critique. Il faut pour cela modifier le code du widget pour ajouter d’autres paires cl√©s/valeurs et cr√©er les nouveaux champs personnalis√©s √©quivalents. Par d√©faut, le code du widget se pr√©sente ainsi :

<script type="text/javascript" src="http://citriq.net/w/crawl?uid=9&isbn=978-2-207-11266-3"></script>

Avec deux variables obligatoires : uid qui est un identifiant unique (ici on utilise l’identifiant de l’article dans la base WordPress affich√© gr√Ęce √† la fonction get_the_id()) et isbn qui correspond √† l’ISBN du livre concern√© (notre champ personnalis√©, affich√© gr√Ęce √† la fonction get_post_meta()).

Il existe trois autres variables facultatives :

  • reviewer : le nom de l’auteur de la critique (utile si plusieurs chroniqueurs interviennent sur le m√™me blog)
  • source¬†: la source originelle de la critique (par exemple, nooSFere r√©f√©rence, en plus de ses propres critiques, des critiques issues de Bifrost, Galaxies, etc.)
  • note : la note donn√©e au livre, qui doit √™tre sur 100 (3/5 = 60, 18/20 = 90, etc.)
  • excerpt : un extrait de la critique (500 caract√®res maximum). Pour un r√©sultat optimal, il vaut mieux encoder le texte, par exemple avec la fonction php urlencode().

Pour utiliser une variable, il suffit de d’ajouter les variables¬†sous la forme &cl√©=valeur au code du widget, par exemple :

<script type="text/javascript" src="http://citriq.net/w/crawl?uid=9&isbn=978-2-207-11266-3&reviewer=Clément&note=75"></script>

Il faudra pour cela ajouter un premier champ personnalisé reviewer et un deuxième note à chaque article, puis utiliser la fonction get_post_meta() pour générer le code du widget en utilisant ces champs. Voici le code php à insérer dans ce cas :

<?php

    $isbn = get_post_meta(get_the_id(), "isbn", true);
    if(is_singular() && $isbn != '') echo '<script type="text/javascript" src="http://citriq.net/w/crawl?uid='.get_the_id().'&isbn='.get_post_meta(get_the_id(),'isbn',true).'&reviewer='.get_post_meta(get_the_id(),'reviewer',true).'&note='.get_post_meta(get_the_id(),'note',true).'&excerpt='.urlencode(get_post_meta(get_the_id(),'excerpt',true)).'"></script>';

?>

Bien s√Ľr, il n’est pas toujours pertinent d’utiliser les champs personnalis√©s. Pour l’auteur de la critique (reviewer), on utilisera plus probablement l’auteur de l’article dans WordPress, en utilisant la fonction the_author() plut√īt que la fonction get_post_meta().

Voici un exemple de code qui ne transmettra √† Citriq que l’ISBN (d’apr√®s le champ personnalis√© isbn) et le nom de l’auteur du billet :

<?php

    $isbn = get_post_meta(get_the_id(), "isbn", true);
    if(is_singular() && $isbn != '') echo '<script type="text/javascript" src="http://citriq.net/w/crawl?uid='.get_the_id().'&isbn='.get_post_meta(get_the_id(),'isbn',true).'&reviewer='.the_author().'"></script>';

?>

Quelques blogs sous WordPress qui utilisent le référencement automatique

Une ic√īne pour les fichiers ePub

icones_epub.png

N’ayant pas trouv√© d’ic√īne satisfaisante pour les fichiers ePub, j’ai d√©cid√© de cr√©er la mienne, reprenant le logo et les couleurs officielles de l’IDPF. Il sera utilis√© sur les plateformes num√©riques utilisant Biblys (notamment e-B√©lial’ et bient√īt Dystopia). Si elle vous pla√ģt, vous pouvez t√©l√©charger le zip ci-dessous contenant le fichier en plusieurs tailles aux format .png et .ico.

Télécharger epub_icons.zip

N’√©tant pas du tout graphiste, c’est une premi√®re exp√©rience pour moi. Que les plus habiles dans ce domaine n’h√©sitent pas √† l’am√©liorer gr√Ęce au .psd √©galement joint dans le fichier zip (et qu’ils n’oublient pas de faire tourner apr√®s !). Il peut aussi servi de base pour cr√©er sur le m√™me mod√®le des icones d’autres formats de livres num√©riques (PDF, Kindle, etc.)

PHP : Convertir un code EAN-13 (sans tirets) en ISBN-13 (avec tirets)

Il y a quelques temps, je proposais ici-m√™me une fonction php pour convertir ISBN-10 en EAN-13 (en recalculant la cl√© de contr√īle) mais aussi une tentative de m√©thode pour convertir un EAN-13 en ISBN. Seul petit souci, aujourd’hui les ISBN sont √† 13 chiffres, comme les EAN, la seule diff√©rence entre les deux formats √©tant les tirets qui les s√©pare, mais je n’avais aucune id√©e de la marche √† suivre pour retrouver la place de ces fameux tirets dans le code. J’ai longtemps cherch√© comment faire, ayant besoin de convertir des EAN-13 en ISBN-13 dans le cadre de mon moteur Tys, qui propulse notamment la Librairie Ys, la Librairie Soleil Vert et le site des Editions du B√©lial. Et bien, gr√Ęce au coup de pouce d’un gentil commentateur, c’est maintenant chose faite. Continuer la lecture de « PHP : Convertir un code EAN-13 (sans tirets) en ISBN-13 (avec tirets) »

PHP : Convertir un ISBN-10 en EAN-13 (et vice-versa)

Quand on est d√©veloppeur web et libraire (et un peu nerd sur les bords), on peut se retrouver √† faire ce genre de choses : convertir des codes ISBN en code EAN et r√©ciproquement via PHP. Comme je n’ai rien trouv√© d’√©quivalent ailleurs, j’ai du cr√©er ma propre petite fonction. Et comme j’ai pens√© qu’elle pouvait √† d’autres, je vous en livre le code ci-dessous. Ainsi que quelques interrogations.

Continuer la lecture de « PHP : Convertir un ISBN-10 en EAN-13 (et vice-versa) »