Browse Source

-* Possibilité d'ajouter un suffixe à une référence [ref=XXXXX@page 23]

-* Ajout d'un bouton dans le porte-plume
v1
joseph@larmarange.net 9 years ago
parent
commit
447ca3d461
7 changed files with 64 additions and 2 deletions
  1. +1
    -0
      .gitattributes
  2. BIN
      icones_barre/inserer_ref.png
  3. +2
    -0
      lang/zotspip_fr.php
  4. +3
    -1
      modeles/ref.html
  5. +9
    -1
      plugin.xml
  6. +26
    -0
      zotspip_fonctions.php
  7. +23
    -0
      zotspip_pipelines.php

+ 1
- 0
.gitattributes View File

@ -37,6 +37,7 @@ genie/maj_collections_zotspip.php -text
genie/maj_items_zotspip.php -text
genie/maj_schema_zotero.php -text
genie/nettoyer_zotspip.php -text
icones_barre/inserer_ref.png -text
icones_barre/zotspip.png -text
images/add-creator-16.png -text
images/add-creator-24.png -text


BIN
icones_barre/inserer_ref.png View File

Before After
Width: 16  |  Height: 16  |  Size: 286 B

+ 2
- 0
lang/zotspip_fr.php View File

@ -102,6 +102,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'message_erreur_style_csl' => 'Le style CSL @style@.csl n\'a pas été trouvé sur le serveur (fichier inexistant ou plugin désactivé).',
'modifier_en_ligne' => 'Modifier en ligne sur zotero.org',
'nom_prenom' => 'Nom, Prénom',
'outil_explication_inserer_ref' => 'Identifiant Zotero de la référence. Dans le cas d\'une citation, un nombre de page ou un numéro de section peut être précisé après l\'identifiant, séparé par @. Plusieurs références peuvent être indiquées, séparées par une virgule. Exemple : 4JA2I4UC@page 16-17,FSCANX5W',
'outil_inserer_ref' => 'Insérer une réference bibliographie [ref=XXX]',
'plusieurs_references' => '@nb@ références',
'probleme_survenu_lors_du_remplacement' => 'Un problème est survenu lors du remplacement (code HTTP @code@).',
'reference_num' => 'Référence n°',


+ 3
- 1
modeles/ref.html View File

@ -1 +1,3 @@
[(#SET{id,[(#ENV{id}|explode{','})]})]<BOUCLE_ref(ZITEMS){id_zitem IN #GET**{id}}{'<br />'}>[(#REFERENCE|zotspip_div_en_span)]</BOUCLE_ref>
#SET{suffixes,#ENV{id}|zotspip_suffixes_ref}<BOUCLE_ref(ZITEMS){id_zitem IN #ENV{id}|zotspip_ids_ref}{'<br />'}>
<abbr class="unapi-id" title="#ID_ZITEM"></abbr>[(#REFERENCE|zotspip_div_en_span)][ &#91;(#GET{suffixes}|table_valeur{#ID_ZITEM})&#93;]
</BOUCLE_ref>

+ 9
- 1
plugin.xml View File

@ -3,7 +3,7 @@
<slogan>La puissance de Zotero dans votre Spip</slogan>
<auteur>[Joseph Larmarange->http://www.spip-contrib.net/Joseph]</auteur>
<licence>GPL v3</licence>
<version>1.1.0</version>
<version>1.1.1</version>
<version_base>0.1</version_base>
<etat>test</etat>
<description>Synchronise Spip avec une bibliothèque (personnelle ou collective) de références bibliographiques Zotero. Utilisez Zotero pour gérer / importer / rédiger vos références bibliographiques, puis incorporez vos références bibliographiques dans votre Spip avec ZotSpip au travers de modèles dédiés.</description>
@ -52,6 +52,14 @@
<nom>autoriser</nom>
<inclure>zotspip_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>porte_plume_barre_pre_charger</nom>
<inclure>zotspip_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>porte_plume_lien_classe_vers_icone</nom>
<inclure>zotspip_pipelines.php</inclure>
</pipeline>
<bouton id='zotspip' parent="configuration">
<url>configurer_zotspip</url>


+ 26
- 0
zotspip_fonctions.php View File

@ -348,6 +348,32 @@ function zotspip_premier_auteur($auteurs) {
return $auteurs[0];
}
// Renvoie le tableau des id passes à [ref=XXX]
function zotspip_ids_ref($ids) {
$ids = explode(',',$ids);
foreach ($ids as $cle => $id) $ids[$cle] = trim($id); // (on supprime les espaces inutiles)
foreach ($ids as $cle => $id) {
if ($p=strpos($id,'@'))
$ids[$cle] = substr($id,0,$p); // on ne garde que la partie avant le @
}
return $ids;
}
// Renvoie le tableau des positions/suffixes passés à [ref=XXX]
function zotspip_suffixes_ref($ids) {
$ret = array();
$ids = explode(',',$ids);
foreach ($ids as $cle => $id) $ids[$cle] = trim($id); // (on supprime les espaces inutiles)
foreach ($ids as $cle => $id) {
if ($p=strpos($id,'@')) {
$id_zitem = substr($id,0,$p); // id_zitem est avant le @
$ret[$id_zitem] = substr($id,$p+1); // suffixe apres le @
}
}
return $ret;
}
// Utilise pour les [ref=XXX] les div ne sont pas pertinents dans une note
function zotspip_div_en_span($texte) {
return preg_replace('#div#U','span',$texte);
}


+ 23
- 0
zotspip_pipelines.php View File

@ -49,4 +49,27 @@ function zotspip_pre_propre($texte) {
return $texte;
}
// Insertion du raccourci [ref=XXX] dans le porte-plume
function zotspip_porte_plume_barre_pre_charger($barres) {
$barre = &$barres['edition'];
$barre->ajouterApres('notes', array(
"id" => 'inserer_ref',
"name" => _T('zotspip:outil_inserer_ref'),
"className" => 'outil_inserer_ref',
"selectionType" => '',
"closeWith" => "[ref=[!["._T('zotspip:outil_explication_inserer_ref')."]!]]",
"display" => true
));
return $barres;
}
// Icone pour le porte-plume
function zotspip_porte_plume_lien_classe_vers_icone($flux) {
$icones = array();
$icones['outil_inserer_ref'] = 'inserer_ref.png';
return array_merge($flux, $icones);
}
?>

Loading…
Cancel
Save