Compare commits

...

44 Commits
master ... 3.1

Author SHA1 Message Date
Cerdic 0c5185d0c3 Utilisation des fonctions de sanitization sur galerie et _galerie en lien avec #4494 du core 2 years ago
spip.franck@lien-d-amis.net c9cfa71495 ajout du cartouche spip avec accord de cerdic (spip 3.1) 3 years ago
spip.franck@lien-d-amis.net 57737c0141 Bonne année "medias" de spip 3.1 3 years ago
cedric@yterium.com 4d619863bf Report de r105250 : Il arrive parfois que des documents images soient téléversés avec la mauvaise extension par rapport à leur contenu réel. Par exemple recevoir un fichier.jpg alors que son contenu est du png. 4 years ago
spip.franck@lien-d-amis.net e37b5a5469 Bonne année spip 3.1 4 years ago
spip.franck@lien-d-amis.net cfdc74f977 Oubli de faire un z+1 pour la peine 4 years ago
spip.franck@lien-d-amis.net ee719019a5 Mise à jour de la lib getid en version 1.9.16, nous étions en 1.9.12 4 years ago
cedric@yterium.com 70245a7034 Report de r111687 : https://core.spip.net/issues/4173 : ne pas permettre d'acceder a des URLs locales du serveur via l'upload de documents distants 4 years ago
cedric@yterium.com 85f2625c33 Afficher le rang dans la liste des documents 4 years ago
spip.franck@lien-d-amis.net 3c07670d60 Bonne année aussi aux plugins-dist :-D 4 years ago
teddy.spip@gmail.com dc546406c1 Report de r109644 : Ne pas envoyer la chaine traduite ici. C'est label_champ() qui s'en occupera. 4 years ago
cedric@yterium.com a4381a058d le titrage des documents a partir du nom de fichier est un peu restritif, on donne la possibilite de definir sa regle via une fonction inc_titrer_document_dist surchargeable 5 years ago
maieul@maieul.net 02b077d5fc dans un premier tps, r107342 n'aurait du être que sur le trunk 5 years ago
maieul@maieul.net 28c067f851 Afficher les documents les plus récents en haut dans la colonne des documents liés à un objet. 5 years ago
cedric@yterium.com 80b5c601ef Report de r106237 : echapper quelque caracteres sur les URLs des documents distants (Chen Ruiqi) 5 years ago
chankalan@choc0.net 736a4d7e64 report correct de r104901 (RealET et b_b) 5 years ago
chankalan@choc0.net a70c5498f7 up de z pour le multi upload que quand c'est nécessaire 5 years ago
chankalan@choc0.net 8e10586351 lorsqu'on fait "modifier" un document, ne pas proposer un multi upload lorsqu'on veut juste changer le fichier 5 years ago
spip.franck@lien-d-amis.net db77fe0a47 Il manquait encore des report https://zone.spip.org/trac/spip-zone/changeset/104236 et https://zone.spip.org/trac/spip-zone/changeset/104237 ( guytarr ) 5 years ago
spip.franck@lien-d-amis.net 727edb5b5f Report de https://zone.spip.org/trac/spip-zone/changeset/104221/ et https://zone.spip.org/trac/spip-zone/changeset/104224 de guytarr 5 years ago
spip.franck@lien-d-amis.net 5a5f26dce1 trad.spip est maintenant en https, donc j'ajoute le "s" à http 5 years ago
spip.franck@lien-d-amis.net e29878bff2 code.spip est maintenant en https, donc j'ajoute le "s" à http 5 years ago
erational@erational.org 6272c88772 report de r104180 - en cas d'appel en pop-in, on ajoute un bouton enregistrer en haut pour l'ergonomie 5 years ago
marcimat@rezo.net d192ab7de0 Le champ crédits est parfois un peu court (ici j'avais des lonnnngues URLs dedans) et elles étaient coupées. 5 years ago
spip.franck@lien-d-amis.net a9894d7d37 Accents + ajout du "s" au lien de doc + suppression d'une balise qui avait été ajouté au moment ou spip 3.1 était en dev et dont les borne de comptabilité étaient n'importe quoi 5 years ago
brunobergot@gmail.com cd6f62577d report de r103156 6 years ago
teddy.spip@gmail.com f6aa915f0a C'est inc/charsets avec un 's' et non inc/charset. :-) 6 years ago
tetue@rezo.net c6de576f56 debug a11y : alternative non pertinente 6 years ago
marcimat@rezo.net 6ef12dd12a Report de r102603 : On ne permet d'afficher dans la "colonne documents" (qui s'affiche lorsqu'on édite un article), qu'une seule fois chaque document. 6 years ago
real3t@gmail.com 197a426f4e Des crayons qui manquaient un peu partout (cohérence avec ceux qui étaient déjà là) 6 years ago
tcharlss@bravecassine.com 132dd2fd5f Report sur la branche 3.1 de https://core.spip.net/projects/medias/repository/revisions/100788 : lorsqu'on édite un document, ne pas réassocier les objets qui sont déjà liés au document, cela évite de perdre des informations en refaisant les liaisons (des rôles par exemple). 6 years ago
kent1@arscenic.info d3993a03a4 report de r100686 6 years ago
brunobergot@gmail.com fc4ab5b3bb report de r100646 6 years ago
real3t@gmail.com 3b150e9b0d Notice PHP en moins 6 years ago
cedric@yterium.com 3b6765a5a8 Report de r99659 : Complement a r85602 : utiliser la variable de session et ne passer qu'un md5 du chemin du zip dans le formulaire 6 years ago
rastapopoulos@spip.org 79246c9f88 Ne jamais préjuger d'où sont utilisées les choses : si on utilise une API, on DOIT inclure la librairie nécessaire. 6 years ago
real3t@gmail.com 6ef04c9dfa Autorisation manquante (le bouton était affiché, mais l'action ne se faisait pas. Testé en intégrant le formulaire côté public avec utilisateur non connecté). 6 years ago
cedric@yterium.com 51baed24d3 plusieurs petits bugs sur les documents distants mal formates qui pourraient exister en base par des operations peu avouables, on teste systematiquement que le fichier ressemble bien a une URL avant de s'y fier 6 years ago
rastapopoulos@spip.org 9e052f1c96 Correction de bug : il manquait <!--affiche_milieu--> pour les documents, ce qui empêchait par exemple l'inseration des traductions ou autre ajout de ce genre. 6 years ago
marcimat@rezo.net 74ef9b358d Lorsque des roles sont présents, faire en sorte que les boutons "Détacher" et "Supprimer" enlèvent effectivement tous les rôles. 6 years ago
brunobergot@gmail.com c42b605eaf report de r96228 6 years ago
brunobergot@gmail.com 281ae6b0de report de r95317 7 years ago
spip.franck@lien-d-amis.net 16c2831907 les plug ne sont que pour spip 3.1, donc les utilises doivent avoir une version qui fonctionne en 3.1, j'ai donc fait un up en prenant la première dispo quand il s'agit d'utilise qui ne sont pas dans les plugin dist 7 years ago
ben.spip@gmail.com 6050e24d6b SPIP 3.1 branchons ! 7 years ago
  1. 2
      .gitattributes
  2. 4
      action/acceder_document.php
  3. 42
      action/ajouter_documents.php
  4. 6
      action/changer_mode_document.php
  5. 44
      action/copier_local.php
  6. 4
      action/dissocier_document.php
  7. 19
      action/editer_document.php
  8. 6
      action/supprimer_document.php
  9. 2
      action/supprimer_tous_orphelins.php
  10. 8
      action/tourner.php
  11. 2
      action/verifier_documents_brises.php
  12. 2
      action/verifier_documents_liens.php
  13. 4
      base/medias.php
  14. 6
      base/typedoc.php
  15. 2
      formulaires/changer_fichier_document.php
  16. 2
      formulaires/configurer_documents.php
  17. 5
      formulaires/editer_document.html
  18. 5
      formulaires/editer_document.php
  19. 2
      formulaires/illustrer_document.php
  20. 2
      formulaires/inc-upload_document.html
  21. 2
      formulaires/joindre_document.html
  22. 6
      formulaires/joindre_document.php
  23. 2
      inc/choisir_mode_document.php
  24. 2
      inc/documenter_objet.php
  25. 10
      inc/documents.php
  26. 2
      inc/getdocument.php
  27. 24
      inc/joindre_document.php
  28. 2
      inc/marquer_doublons_doc.php
  29. 6
      inc/renseigner_document.php
  30. 2
      inc/verifier_document_mode_image.php
  31. 2
      inc/verifier_document_mode_vignette.php
  32. 2
      inc/vignette.php
  33. 204
      lang/medias.xml
  34. 2
      lang/medias_ar.php
  35. 2
      lang/medias_ast.php
  36. 2
      lang/medias_ay.php
  37. 2
      lang/medias_bg.php
  38. 2
      lang/medias_br.php
  39. 2
      lang/medias_bs.php
  40. 2
      lang/medias_ca.php
  41. 2
      lang/medias_co.php
  42. 2
      lang/medias_cpf.php
  43. 2
      lang/medias_cpf_hat.php
  44. 2
      lang/medias_cs.php
  45. 2
      lang/medias_da.php
  46. 2
      lang/medias_de.php
  47. 2
      lang/medias_el.php
  48. 2
      lang/medias_en.php
  49. 2
      lang/medias_en_hx.php
  50. 2
      lang/medias_eo.php
  51. 2
      lang/medias_es.php
  52. 2
      lang/medias_eu.php
  53. 2
      lang/medias_fa.php
  54. 2
      lang/medias_fon.php
  55. 1
      lang/medias_fr.php
  56. 2
      lang/medias_fr_fem.php
  57. 2
      lang/medias_fr_tu.php
  58. 2
      lang/medias_gl.php
  59. 2
      lang/medias_hac.php
  60. 2
      lang/medias_he.php
  61. 2
      lang/medias_hr.php
  62. 2
      lang/medias_hu.php
  63. 2
      lang/medias_id.php
  64. 2
      lang/medias_is.php
  65. 2
      lang/medias_it.php
  66. 2
      lang/medias_it_fem.php
  67. 2
      lang/medias_ja.php
  68. 2
      lang/medias_km.php
  69. 2
      lang/medias_la.php
  70. 2
      lang/medias_lb.php
  71. 2
      lang/medias_lt.php
  72. 2
      lang/medias_my.php
  73. 2
      lang/medias_nap.php
  74. 2
      lang/medias_nb.php
  75. 2
      lang/medias_ne.php
  76. 2
      lang/medias_nl.php
  77. 2
      lang/medias_oc_auv.php
  78. 2
      lang/medias_oc_gsc.php
  79. 2
      lang/medias_oc_lms.php
  80. 2
      lang/medias_oc_lnc.php
  81. 2
      lang/medias_oc_ni.php
  82. 2
      lang/medias_oc_ni_la.php
  83. 2
      lang/medias_oc_ni_mis.php
  84. 2
      lang/medias_oc_prv.php
  85. 2
      lang/medias_oc_va.php
  86. 2
      lang/medias_pl.php
  87. 2
      lang/medias_pt.php
  88. 2
      lang/medias_pt_br.php
  89. 2
      lang/medias_ro.php
  90. 2
      lang/medias_roa.php
  91. 2
      lang/medias_ru.php
  92. 2
      lang/medias_sk.php
  93. 2
      lang/medias_sq.php
  94. 2
      lang/medias_sv.php
  95. 2
      lang/medias_tr.php
  96. 2
      lang/medias_uk.php
  97. 2
      lang/medias_vi.php
  98. 2
      lang/medias_wo.php
  99. 2
      lang/medias_zh.php
  100. 68
      lang/paquet-medias.xml
  101. Some files were not shown because too many files have changed in this diff Show More

2
.gitattributes vendored

@ -124,6 +124,7 @@ lang/paquet-medias_sk.php -text
lang/paquet-medias_uk.php -text
lib/getid3/extension.cache.dbm.php -text
lib/getid3/extension.cache.mysql.php -text
lib/getid3/extension.cache.mysqli.php -text
lib/getid3/extension.cache.sqlite3.php -text
lib/getid3/getid3.lib.php -text
lib/getid3/getid3.php -text
@ -150,6 +151,7 @@ lib/getid3/module.audio.amr.php -text
lib/getid3/module.audio.au.php -text
lib/getid3/module.audio.avr.php -text
lib/getid3/module.audio.bonk.php -text
lib/getid3/module.audio.dsf.php -text
lib/getid3/module.audio.dss.php -text
lib/getid3/module.audio.dts.php -text
lib/getid3/module.audio.flac.php -text

4
action/acceder_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -21,7 +21,7 @@ include_spip('inc/headers');
// soit que le document est publie, c'est-a-dire
// joint a au moins 1 article ou rubrique publie
// http://code.spip.net/@action_acceder_document_dist
// https://code.spip.net/@action_acceder_document_dist
function action_acceder_document_dist() {
include_spip('inc/documents');

42
action/ajouter_documents.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -105,6 +105,7 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
include_spip('inc/modifier');
if (isset($file['distant']) and $file['distant'] and !in_array($mode, array('choix', 'auto', 'image', 'document'))) {
spip_log("document distant $source accepte sans verification, mode=$mode","medias"._LOG_INFO_IMPORTANTE);
include_spip('inc/distant');
$file['tmp_name'] = _DIR_RACINE . copie_locale($source);
$source = $file['tmp_name'];
@ -115,7 +116,11 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
// via une requete HEAD pour savoir si la ressource existe (non 404), si le
// content-type est connu, et si possible recuperer la taille, voire plus.
if (isset($file['distant']) and $file['distant']) {
if (!tester_url_absolue($source)){
return _T('medias:erreur_chemin_distant', array('nom' => $source));
}
include_spip('inc/distant');
$source = str_replace(array("'",'"','<'),array("%27",'%22','%3C'), $source);
if (is_array($a = renseigner_source_distante($source))) {
$champs = $a;
@ -141,12 +146,16 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
'distant' => 'non'
);
$type_image = ''; // au pire
$champs['titre'] = '';
if ($titrer) {
$titre = substr($nom_envoye, 0, strrpos($nom_envoye, ".")); // Enlever l'extension du nom du fichier
$titre = preg_replace(',[[:punct:][:space:]]+,u', ' ', $titre);
$champs['titre'] = preg_replace(',\.([^.]+)$,', '', $titre);
if ($titrer_document = charger_fonction('titrer_document', 'inc', true)) {
$champs['titre'] = $titrer_document($nom_envoye);
}
else {
$titre = substr($nom_envoye, 0, strrpos($nom_envoye, ".")); // Enlever l'extension du nom du fichier
$titre = preg_replace(',[[:punct:][:space:]]+,u', ' ', $titre);
$champs['titre'] = preg_replace(',\.([^.]+)$,', '', $titre);
}
}
if (!is_array($fichier = fixer_fichier_upload($file, $mode))) {
@ -167,8 +176,29 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
*/
$infos = renseigner_taille_dimension_image($champs['fichier'], $champs['extension']);
if (is_string($infos)) {
// c'est un message d'erreur !
return $infos;
} // c'est un message d'erreur !
}
// lorsqu’une image arrive avec une mauvaise extension par rapport au mime type, adapter.
// Exemple : si extension .jpg mais le contenu est un png
if (!empty($infos['type_image']) and $infos['type_image'] !== $champs['extension']) {
spip_log('Image `' . $file['name'] . '` mauvaise extension. Correcte : ' . $infos['type_image'], 'medias' . _LOG_INFO);
$new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier']);
if ($new) {
supprimer_fichier($champs['fichier']);
$champs['fichier'] = $new;
$champs['extension'] = $infos['type_image'];
$infos = renseigner_taille_dimension_image($champs['fichier'], $champs['extension']);
if (is_string($infos)) {
// c'est un message d'erreur !
return $infos;
}
spip_log('> Image `' . $file['name'] . '` renommée en : ' . basename($champs['fichier']), 'medias' . _LOG_INFO);
} else {
spip_log('! Image `' . $file['name'] . '` non renommée en extension : ' . $champs['extension'], 'medias' . _LOG_INFO_IMPORTANTE);
}
}
$champs = array_merge($champs, $infos);

6
action/changer_mode_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -18,7 +18,7 @@ if (!defined("_ECRIRE_INC_VERSION")) {
/**
* Cette action permet de basculer du mode image au mode document et vice versa
*
* http://code.spip.net/@action_changer_mode_document_dist
* https://code.spip.net/@action_changer_mode_document_dist
*
* @param int $id_document
* @param string $mode
@ -45,7 +45,7 @@ function action_changer_mode_document_dist($id_document = null, $mode = null) {
}
}
// http://code.spip.net/@action_changer_mode_document_post
// https://code.spip.net/@action_changer_mode_document_post
function action_changer_mode_document_post($id_document, $mode) {
// - id_document le doc a modifier
// - mode le mode a lui donner

44
action/copier_local.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -20,7 +20,7 @@ if (!defined("_ECRIRE_INC_VERSION")) {
* Il s'agit de la partie logique, c'est a dire que cette fonction
* realise la copie.
*
* http://code.spip.net/@action_copier_local_dist
* https://code.spip.net/@action_copier_local_dist
*
* @param null $id_document
* @return bool|mixed|string
@ -46,7 +46,7 @@ function action_copier_local_dist($id_document = null) {
}
/**
* http://code.spip.net/@action_copier_local_post
* https://code.spip.net/@action_copier_local_post
*
* @param $id_document
* @return bool|mixed|string
@ -57,26 +57,34 @@ function action_copier_local_post($id_document) {
$row = sql_fetsel("mode,fichier, descriptif, credits", "spip_documents", "id_document=$id_document");
$source = $row['fichier'];
include_spip('inc/distant'); // pour 'copie_locale'
$fichier = copie_locale($source);
if ($fichier) {
$fichier = _DIR_RACINE . $fichier;
$files[] = array('tmp_name' => $fichier, 'name' => basename($fichier));
$ajouter_documents = charger_fonction('ajouter_documents', 'action');
spip_log("convertit doc $id_document en local: $source => $fichier");
$liste = array();
$ajouter_documents($id_document, $files, '', 0, $row['mode'], $liste);
// si la source est bien un fichier distant
// sinon c'est une donnee moisie, on ne fait rien
if (tester_url_absolue($source)){
spip_unlink($fichier);
include_spip('inc/distant'); // pour 'copie_locale'
$fichier = copie_locale($source);
if ($fichier
and tester_url_absolue($source)) {
$fichier = _DIR_RACINE . $fichier;
$files[] = array('tmp_name' => $fichier, 'name' => basename($fichier));
$ajouter_documents = charger_fonction('ajouter_documents', 'action');
spip_log("convertit doc $id_document en local: $source => $fichier", "medias");
$liste = array();
$ajouter_documents($id_document, $files, '', 0, $row['mode'], $liste);
// ajouter l'origine du document aux credits
include_spip('action/editer_document');
document_modifier($id_document, array('credits' => ($row['credits'] ? $row['credits'] . ', ' : '') . $source));
spip_unlink($fichier);
return true;
// ajouter l'origine du document aux credits
include_spip('action/editer_document');
document_modifier($id_document, array('credits' => ($row['credits'] ? $row['credits'] . ', ' : '') . $source));
return true;
} else {
spip_log("echec copie locale $source", "medias" . _LOG_ERREUR);
}
} else {
spip_log("echec copie locale $source");
spip_log("echec copie locale $source n'est pas une URL distante", "medias" . _LOG_ERREUR);
}
return _T('medias:erreur_copie_fichier', array('nom' => $source));

4
action/dissocier_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -91,7 +91,7 @@ function supprimer_lien_document($id_document, $objet, $id_objet, $supprime = fa
// D'abord on ne supprime pas, on dissocie
include_spip('action/editer_liens');
objet_dissocier(array('document' => $id_document), array($objet => $id_objet));
objet_dissocier(array('document' => $id_document), array($objet => $id_objet), array('role' => '*'));
// Si c'est une vignette, l'eliminer du document auquel elle appartient
// cas tordu peu probable

19
action/editer_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -141,6 +141,7 @@ function document_modifier($id_document, $set = null) {
and $champs['fichier']
and $ancien_fichier // on avait bien note le nom du fichier avant la modif
and $ancien_fichier !== $champs['fichier'] // et il a ete modifie
and !tester_url_absolue($ancien_fichier)
and @file_exists($f = get_spip_doc($ancien_fichier))
) {
spip_unlink($f);
@ -193,9 +194,8 @@ function document_instituer($id_document, $champs = array()) {
$trouver_table = charger_fonction('trouver_table', 'base');
$res = sql_select('id_objet,objet', 'spip_documents_liens',
"objet!='document' AND id_document=" . intval($id_document));
// dans 10 ans, ca nous fera un bug a corriger vers 2018
// penser a ouvrir un ticket d'ici la :p
$date_publication = time() + 10 * 365 * 24 * 3600;
// On aura 19 jours 3h14 et 7 secondes pour corriger en 2038 (limitation de la représentation POSIX du temps sur les 32 bits)
$date_publication = strtotime('2038-01-01 00:00:00');
include_spip('base/objets');
while ($row = sql_fetch($res)) {
if (
@ -256,6 +256,8 @@ function document_instituer($id_document, $champs = array()) {
* @param bool $ajout
*/
function medias_revision_document_parents($id_document, $parents = null, $ajout = false) {
include_spip('inc/autoriser');
if (!is_array($parents)) {
return;
}
@ -291,10 +293,15 @@ function medias_revision_document_parents($id_document, $parents = null, $ajout
}
}
// verifier les droits d'associer
// trier les objets à traiter : ne pas prendre en compte ceux qui sont déjà associés ou qu'on n'a pas le droit d'associer
foreach ($objets_parents as $objet => $ids) {
foreach ($ids as $k => $id) {
if (!autoriser('associerdocuments', $objet, $id)) {
if ((
isset($deja_parents[$objet])
and in_array($id, $deja_parents[$objet])
)
or !autoriser('associerdocuments', $objet, $id)
) {
unset($objets_parents[$objet][$k]);
}
}

6
action/supprimer_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
// http://code.spip.net/@supprimer_document
// https://code.spip.net/@supprimer_document
function action_supprimer_document_dist($id_document = 0) {
if (!$id_document) {
$securiser_action = charger_fonction('securiser_action', 'inc');
@ -57,7 +57,7 @@ function action_supprimer_document_dist($id_document = 0) {
}
// dereferencer dans la base
objet_dissocier(array('document' => $id_document), '*');
objet_dissocier(array('document' => $id_document), '*', array('role' => '*'));
sql_delete('spip_documents', 'id_document=' . intval($id_document));

2
action/supprimer_tous_orphelins.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

8
action/tourner.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -17,7 +17,7 @@ if (!defined("_ECRIRE_INC_VERSION")) {
/**
* Tourner un document
*
* http://code.spip.net/@action_tourner_dist
* https://code.spip.net/@action_tourner_dist
*
* lorsque les arguments sont passes dans arg en GET :
* id_document-angle
@ -48,7 +48,7 @@ function action_tourner_dist($id_document = null, $angle = null) {
/**
* Tourner un document
*
* http://code.spip.net/@action_tourner_post
* https://code.spip.net/@action_tourner_post
*
* @param int $id_document
* @param int $angle
@ -135,7 +135,7 @@ function action_tourner_post($id_document, $angle) {
// Appliquer l'EXIF orientation
// cf. http://trac.rezo.net/trac/spip/ticket/1494
// http://code.spip.net/@tourner_selon_exif_orientation
// https://code.spip.net/@tourner_selon_exif_orientation
function tourner_selon_exif_orientation($id_document, $fichier) {
if (function_exists('exif_read_data')

2
action/verifier_documents_brises.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

2
action/verifier_documents_liens.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

4
base/medias.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -151,7 +151,7 @@ function medias_declarer_tables_objets_sql($tables) {
"mode" => "varchar(10) DEFAULT 'document' NOT NULL",
"distant" => "VARCHAR(3) DEFAULT 'non'",
"statut" => "varchar(10) DEFAULT '0' NOT NULL",
"credits" => "varchar(255) DEFAULT '' NOT NULL",
"credits" => "text DEFAULT '' NOT NULL",
"date_publication" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"brise" => "tinyint DEFAULT 0",
"maj" => "TIMESTAMP"

6
base/typedoc.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -116,6 +116,7 @@ $tables_documents = array(
'gz' => 'GZ',
'h' => 'C header',
'html' => 'HTML',
'ics' => 'iCalendar',
'jar' => 'Java Archive',
'json' => 'JSON',
'kml' => 'Keyhole Markup Language',
@ -158,6 +159,7 @@ $tables_documents = array(
'ttf' => 'TTF Font',
'txt' => 'Texte',
'usf' => 'Universal Subtitle Format',
'vcf' => 'vCard',
'wmf' => 'Windows Metafile',
'wpl' => 'Windows Media Player Playlist',
'xcf' => 'GIMP multi-layer',
@ -303,6 +305,7 @@ $tables_mime = array(
'gz' => 'application/x-gzip',
'h' => 'text/x-chdr',
'html' => 'text/html',
'ics' => 'text/calendar',
'jar' => 'application/java-archive',
'json' => 'application/json',
'kml' => 'application/vnd.google-earth.kml+xml',
@ -343,6 +346,7 @@ $tables_mime = array(
'ttf' => 'application/x-font-ttf',
'txt' => 'text/plain',
'usf' => 'application/xml',
'vcf' => 'text/vcard',
'xcf' => 'application/x-xcf',
'xls' => 'application/vnd.ms-excel',
'xlt' => 'application/vnd.ms-excel',

2
formulaires/changer_fichier_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

2
formulaires/configurer_documents.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

5
formulaires/editer_document.html

@ -11,6 +11,9 @@
il ne doit pas etre hidden pour marcher dans safari
]
<div style="position:absolute;#LANG_LEFT:-10000px;"><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></div>
[(#REM) en cas d'appel en pop-in
on ajoute un bouton enregistrer en haut pour l'ergonomie
][(#ENV{action}|match{popin}|oui)<p class="boutons"><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>]
<div class="editer-groupe">
<div class="editer editer_titre[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
<label for="titre">[(#ENV{mode}|=={document}|?{<:medias:entree_titre_document:>,<:medias:entree_titre_image:>})]</label>[
@ -32,7 +35,7 @@
[(#PIPELINE{editer_document_actions,#ARRAY{args,#ARRAY{id_document,#ENV{id_document,nouveau}},data,''}})]
&#91;<a href='#' onclick='jQuery("#changer_fichier_document").toggle("fast");return false;'><:bouton_changer:></a>&#93;
</p>
#SET{upload,#INCLURE{fond=formulaires/inc-upload_document, env, joindre_upload=oui}}
#SET{upload,#INCLURE{fond=formulaires/inc-upload_document, env, joindre_upload=oui, multi=non}}
<div id='changer_fichier_document' class="[(#GET{upload}|match{erreur}|non)none-js]">
#GET{upload}
</div>

5
formulaires/editer_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -145,7 +145,7 @@ function formulaires_editer_document_verifier_dist(
return $erreurs;
}
// http://code.spip.net/@inc_editer_article_dist
// https://code.spip.net/@inc_editer_article_dist
function formulaires_editer_document_traiter_dist(
$id_document = 'new',
$id_parent = '',
@ -190,6 +190,7 @@ function formulaires_editer_document_traiter_dist(
} else {
// liberer le nom de l'ancien fichier pour permettre le remplacement par un fichier du meme nom
if ($ancien_fichier = sql_getfetsel('fichier', 'spip_documents', 'id_document=' . intval($id_document))
and !tester_url_absolue($ancien_fichier)
and @file_exists($rename = get_spip_doc($ancien_fichier))
) {
@rename($rename, "$rename--.old");

2
formulaires/illustrer_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

2
formulaires/inc-upload_document.html

@ -14,7 +14,7 @@
<div class='editer editer_fichier_upload[ (#ENV**{erreurs}|table_valeur{fichier_upload}|oui)erreur]'>
<label for='fichier_upload#GET{domid}'><:bouton_upload:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{fichier_upload})</span>
]<input class='file multi' type="file" name="fichier_upload[]" value='[(#ENV{fichier_upload}|is_array|?{'', #ENV{fichier_upload}})]' id="fichier_upload#GET{domid}" size='11' />
]<input class='file[ (#ENV{multi}|=={non}|non)multi]' type="file" name="fichier_upload[]" value='[(#ENV{fichier_upload}|is_array|?{'', #ENV{fichier_upload}})]' id="fichier_upload#GET{domid}" size='11' />
<!--editer_fichier_upload-->
</div>
</div>

2
formulaires/joindre_document.html

@ -20,5 +20,5 @@
</div>]
[(#ENV{_galerie,''}|oui)
[(#INCLURE{fond=#ENV{_galerie}, env, ajax})]
[(#INCLURE{fond=#ENV{_galerie}|spip_sanitize_from_request{_galerie,vide}, env, ajax})]
]

6
formulaires/joindre_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -212,9 +212,11 @@ function formulaires_joindre_document_verifier_dist(
) {
list($fichiers, $erreurs, $tmp_zip) = $contenu_zip;
if ($fichiers) {
// on passe le md5 du fichier uniquement, on le retrouvera dans zip_to_clean de la session
$token_zip = md5($tmp_zip);
$erreurs['message_erreur'] = '';
$erreurs['lister_contenu_archive'] = recuperer_fond("formulaires/inc-lister_archive_jointe",
array('chemin_zip' => $tmp_zip, 'liste_fichiers_zip' => $fichiers, 'erreurs_fichier_zip' => $erreurs));
array('chemin_zip' => $token_zip, 'liste_fichiers_zip' => $fichiers, 'erreurs_fichier_zip' => $erreurs));
} else {
$erreurs['message_erreur'] = _T('medias:erreur_aucun_fichier');
}

2
inc/choisir_mode_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

2
inc/documenter_objet.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

10
inc/documents.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -28,7 +28,7 @@ if (!defined('CHARSET_JOINT')) {
// Filtre pour #FICHIER permettant d'incruster le contenu d'un document
// Si 2e arg fourni, conversion dans le charset du site si possible
// http://code.spip.net/@contenu_document
// https://code.spip.net/@contenu_document
function contenu_document($arg, $charset = '') {
include_spip('inc/distant');
if (is_numeric($arg)) {
@ -50,7 +50,7 @@ function contenu_document($arg, $charset = '') {
$r = spip_file_get_contents($f);
if ($charset) {
include_spip('inc/charset');
include_spip('inc/charsets');
if ($charset !== 'auto') {
$r = importer_charset($r, $charset);
} elseif ($GLOBALS['meta']['charset'] == 'utf-8' and !is_utf8($r)) {
@ -61,7 +61,7 @@ function contenu_document($arg, $charset = '') {
return $r;
}
// http://code.spip.net/@generer_url_document_dist
// https://code.spip.net/@generer_url_document_dist
function generer_url_document_dist($id_document, $args = '', $ancre = '') {
include_spip('inc/autoriser');
@ -108,7 +108,7 @@ function generer_url_document_dist($id_document, $args = '', $ancre = '') {
//
// A noter : dans le portfolio prive on pousse le vice jusqu'a reduire la taille
// de la vignette -> c'est a ca que sert la variable $portfolio
// http://code.spip.net/@vignette_automatique
// https://code.spip.net/@vignette_automatique
function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $class = 'spip_logo spip_logos') {
include_spip('inc/distant');
include_spip('inc/texte');

2
inc/getdocument.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

24
inc/joindre_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -80,6 +80,10 @@ function joindre_trouver_fichier_envoye() {
if (!strlen($path) or $path == 'http://') {
return _T('medias:erreur_indiquez_un_fichier');
}
include_spip('inc/distant');
if (!valider_url_distante($path)) {
return _T('medias:erreur_upload_type_interdit', array('nom' => $path));
}
include_spip('action/ajouter_documents');
$infos = renseigner_source_distante($path);
if (!is_array($infos)) {
@ -127,7 +131,13 @@ function joindre_trouver_fichier_envoye() {
return $files;
}
} elseif (_request('joindre_zip') and $path = _request('chemin_zip')) {
} elseif (_request('joindre_zip') and $token_zip = _request('chemin_zip')) {
$zip_to_clean = (isset($GLOBALS['visiteur_session']['zip_to_clean']) ? unserialize($GLOBALS['visiteur_session']['zip_to_clean']) : array());
if (!$zip_to_clean or !isset($zip_to_clean[$token_zip]) or !$path = $zip_to_clean[$token_zip]){
return _T('avis_operation_impossible');
}
include_spip('inc/documents'); //pour creer_repertoire_documents
define('_tmp_zip', $path);
define('_tmp_dir', creer_repertoire_documents(md5($path . $GLOBALS['visiteur_session']['id_auteur'])));
@ -239,7 +249,7 @@ function joindre_verifier_zip($files) {
and rename($zip, $tmp = $tmp . basename($zip))
) {
$zip_to_clean = (isset($GLOBALS['visiteur_session']['zip_to_clean']) ? unserialize($GLOBALS['visiteur_session']['zip_to_clean']) : array());
$zip_to_clean[] = $tmp;
$zip_to_clean[md5($tmp)] = $tmp;
session_set('zip_to_clean', serialize($zip_to_clean));
$contenu[] = $tmp;
@ -291,7 +301,7 @@ function joindre_decrire_contenu_zip($zip) {
}
// http://code.spip.net/@joindre_deballes
// https://code.spip.net/@joindre_deballes
function joindre_deballer_lister_zip($path, $tmp_dir) {
include_spip('inc/pclzip');
$archive = new PclZip($path);
@ -327,7 +337,7 @@ if (!function_exists('fixer_extension_document')) {
* @param unknown_type $doc
* @return unknown
*/
// http://code.spip.net/@fixer_extension_document
// https://code.spip.net/@fixer_extension_document
function fixer_extension_document($doc) {
$extension = '';
$name = $doc['name'];
@ -350,7 +360,7 @@ if (!function_exists('fixer_extension_document')) {
//
// Gestion des fichiers ZIP
//
// http://code.spip.net/@accepte_fichier_upload
// https://code.spip.net/@accepte_fichier_upload
function accepte_fichier_upload($f) {
if (!preg_match(",.*__MACOSX/,", $f)
@ -365,7 +375,7 @@ function accepte_fichier_upload($f) {
# callback pour le deballage d'un zip telecharge
# http://www.phpconcept.net/pclzip/man/en/?options-pclzip_cb_pre_extractfunction
// http://code.spip.net/@callback_deballe_fichier
// https://code.spip.net/@callback_deballe_fichier
function callback_deballe_fichier($p_event, &$p_header) {
if (accepte_fichier_upload($p_header['filename'])) {

2
inc/marquer_doublons_doc.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

6
inc/renseigner_document.php

@ -3,7 +3,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
@ -122,13 +122,13 @@ function renseigner_taille_dimension_image($fichier, $ext, $distant = false) {
$tmp = _DIR_TMP . md5($fichier);
$res = recuperer_url($fichier, array('file' => $tmp, 'taille_max' => 512 * 1024));
if (!$res) {
spip_log("Echec copie du fichier $fichier");
spip_log("Echec copie du fichier $fichier", 'medias');
return _T('medias:erreur_copie_fichier', array('nom' => $fichier));
}
$fichier = $tmp;
} else {
spip_log("Echec copie du fichier $fichier");
spip_log("Echec copie du fichier $fichier", 'medias');
return _T('medias:erreur_copie_fichier', array('nom' => $fichier));
}

2
inc/verifier_document_mode_image.php

@ -2,7 +2,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

2
inc/verifier_document_mode_vignette.php

@ -2,7 +2,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

2
inc/vignette.php

@ -2,7 +2,7 @@
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *

204
lang/medias.xml

@ -1,169 +1,169 @@
<traduction module="medias" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_core_/plugins/medias/lang/" reference="fr">
<langue code="ar" url="http://trad.spip.net/tradlang_module/medias?lang_cible=ar" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="George" lien="http://trad.spip.net/auteur/جورج-قندلفت" />
<traduction module="medias" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_core_/plugins/medias/lang/" reference="fr">
<langue code="ar" url="https://trad.spip.net/tradlang_module/medias?lang_cible=ar" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="George" lien="https://trad.spip.net/auteur/جورج-قندلفت" />
</langue>
<langue code="ast" url="http://trad.spip.net/tradlang_module/medias?lang_cible=ast" total="156" traduits="31" relire="0" modifs="3" nouveaux="122" pourcent="19.87">
<traducteur nom="Xuacu" lien="http://trad.spip.net/auteur/xuacu" />
<langue code="ast" url="https://trad.spip.net/tradlang_module/medias?lang_cible=ast" total="156" traduits="31" relire="0" modifs="3" nouveaux="122" pourcent="19.87">
<traducteur nom="Xuacu" lien="https://trad.spip.net/auteur/xuacu" />
</langue>
<langue code="ay" url="http://trad.spip.net/tradlang_module/medias?lang_cible=ay" total="156" traduits="17" relire="0" modifs="0" nouveaux="139" pourcent="10.90">
<langue code="ay" url="https://trad.spip.net/tradlang_module/medias?lang_cible=ay" total="156" traduits="17" relire="0" modifs="0" nouveaux="139" pourcent="10.90">
</langue>
<langue code="bg" url="http://trad.spip.net/tradlang_module/medias?lang_cible=bg" total="156" traduits="24" relire="0" modifs="4" nouveaux="128" pourcent="15.38">
<langue code="bg" url="https://trad.spip.net/tradlang_module/medias?lang_cible=bg" total="156" traduits="24" relire="0" modifs="4" nouveaux="128" pourcent="15.38">
</langue>
<langue code="br" url="http://trad.spip.net/tradlang_module/medias?lang_cible=br" total="156" traduits="31" relire="0" modifs="3" nouveaux="122" pourcent="19.87">
<langue code="br" url="https://trad.spip.net/tradlang_module/medias?lang_cible=br" total="156" traduits="31" relire="0" modifs="3" nouveaux="122" pourcent="19.87">
</langue>
<langue code="bs" url="http://trad.spip.net/tradlang_module/medias?lang_cible=bs" total="156" traduits="24" relire="0" modifs="4" nouveaux="128" pourcent="15.38">
<langue code="bs" url="https://trad.spip.net/tradlang_module/medias?lang_cible=bs" total="156" traduits="24" relire="0" modifs="4" nouveaux="128" pourcent="15.38">
</langue>
<langue code="ca" url="http://trad.spip.net/tradlang_module/medias?lang_cible=ca" total="156" traduits="73" relire="0" modifs="14" nouveaux="69" pourcent="46.79">
<traducteur nom="merce" lien="http://trad.spip.net/auteur/merce" />
<langue code="ca" url="https://trad.spip.net/tradlang_module/medias?lang_cible=ca" total="156" traduits="73" relire="0" modifs="14" nouveaux="69" pourcent="46.79">
<traducteur nom="merce" lien="https://trad.spip.net/auteur/merce" />
</langue>
<langue code="co" url="http://trad.spip.net/tradlang_module/medias?lang_cible=co" total="156" traduits="31" relire="0" modifs="3" nouveaux="122" pourcent="19.87">
<langue code="co" url="https://trad.spip.net/tradlang_module/medias?lang_cible=co" total="156" traduits="31" relire="0" modifs="3" nouveaux="122" pourcent="19.87">
</langue>
<langue code="cpf" url="http://trad.spip.net/tradlang_module/medias?lang_cible=cpf" total="156" traduits="25" relire="0" modifs="4" nouveaux="127" pourcent="16.03">
<langue code="cpf" url="https://trad.spip.net/tradlang_module/medias?lang_cible=cpf" total="156" traduits="25" relire="0" modifs="4" nouveaux="127" pourcent="16.03">
</langue>
<langue code="cpf_hat" url="http://trad.spip.net/tradlang_module/medias?lang_cible=cpf_hat" total="156" traduits="24" relire="0" modifs="4" nouveaux="128" pourcent="15.38">
<langue code="cpf_hat" url="https://trad.spip.net/tradlang_module/medias?lang_cible=cpf_hat" total="156" traduits="24" relire="0" modifs="4" nouveaux="128" pourcent="15.38">
</langue>
<langue code="cs" url="http://trad.spip.net/tradlang_module/medias?lang_cible=cs" total="156" traduits="27" relire="0" modifs="2" nouveaux="127" pourcent="17.31">
<langue code="cs" url="https://trad.spip.net/tradlang_module/medias?lang_cible=cs" total="156" traduits="27" relire="0" modifs="2" nouveaux="127" pourcent="17.31">
</langue>
<langue code="da" url="http://trad.spip.net/tradlang_module/medias?lang_cible=da" total="156" traduits="11" relire="0" modifs="3" nouveaux="142" pourcent="7.05">
<langue code="da" url="https://trad.spip.net/tradlang_module/medias?lang_cible=da" total="156" traduits="11" relire="0" modifs="3" nouveaux="142" pourcent="7.05">
</langue>
<langue code="de" url="http://trad.spip.net/tradlang_module/medias?lang_cible=de" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="kennethkeen" lien="http://trad.spip.net/auteur/kennethkeen" />
<traducteur nom="klaus++" lien="http://trad.spip.net/auteur/klaus" />
<traducteur nom="Rainer Müller" lien="http://trad.spip.net/auteur/rainer-muller" />
<langue code="de" url="https://trad.spip.net/tradlang_module/medias?lang_cible=de" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="kennethkeen" lien="https://trad.spip.net/auteur/kennethkeen" />
<traducteur nom="klaus++" lien="https://trad.spip.net/auteur/klaus" />
<traducteur nom="Rainer Müller" lien="https://trad.spip.net/auteur/rainer-muller" />
</langue>
<langue code="el" url="http://trad.spip.net/tradlang_module/medias?lang_cible=el" total="156" traduits="14" relire="0" modifs="3" nouveaux="139" pourcent="8.97">
<langue code="el" url="https://trad.spip.net/tradlang_module/medias?lang_cible=el" total="156" traduits="14" relire="0" modifs="3" nouveaux="139" pourcent="8.97">
</langue>
<langue code="en" url="http://trad.spip.net/tradlang_module/medias?lang_cible=en" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="George" lien="http://trad.spip.net/auteur/جورج-قندلفت" />
<traducteur nom="Gilles" lien="http://trad.spip.net/auteur/gilles" />
<traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
<traducteur nom="raphael" lien="http://trad.spip.net/auteur/raphael-7042" />
<traducteur nom="sQuonk" lien="http://trad.spip.net/auteur/squonk" />
<langue code="en" url="https://trad.spip.net/tradlang_module/medias?lang_cible=en" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="George" lien="https://trad.spip.net/auteur/جورج-قندلفت" />
<traducteur nom="Gilles" lien="https://trad.spip.net/auteur/gilles" />
<traducteur nom="kent1" lien="https://trad.spip.net/auteur/kent1" />
<traducteur nom="raphael" lien="https://trad.spip.net/auteur/raphael-7042" />
<traducteur nom="sQuonk" lien="https://trad.spip.net/auteur/squonk" />
</langue>
<langue code="en_hx" url="http://trad.spip.net/tradlang_module/medias?lang_cible=en_hx" total="156" traduits="9" relire="0" modifs="4" nouveaux="143" pourcent="5.77">
<langue code="en_hx" url="https://trad.spip.net/tradlang_module/medias?lang_cible=en_hx" total="156" traduits="9" relire="0" modifs="4" nouveaux="143" pourcent="5.77">
</langue>
<langue code="eo" url="http://trad.spip.net/tradlang_module/medias?lang_cible=eo" total="156" traduits="29" relire="0" modifs="5" nouveaux="122" pourcent="18.59">
<traducteur nom="Matthieu Marcillaud" lien="http://trad.spip.net/auteur/matthieu-marcillaud" />
<langue code="eo" url="https://trad.spip.net/tradlang_module/medias?lang_cible=eo" total="156" traduits="29" relire="0" modifs="5" nouveaux="122" pourcent="18.59">
<traducteur nom="Matthieu Marcillaud" lien="https://trad.spip.net/auteur/matthieu-marcillaud" />
</langue>
<langue code="es" url="http://trad.spip.net/tradlang_module/medias?lang_cible=es" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="b_b" lien="http://trad.spip.net/auteur/b_b" />
<traducteur nom="dani" lien="http://trad.spip.net/auteur/dani" />
<traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
<langue code="es" url="https://trad.spip.net/tradlang_module/medias?lang_cible=es" total="156" traduits="156" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="b_b" lien="https://trad.spip.net/auteur/b_b" />