Compare commits

...

No commits in common. 'master' and 'spip-3.2' have entirely different histories.

  1. 7
      .gitignore
  2. 4
      CHANGELOG.md
  3. 3
      README.md
  4. 13
      action/effacer_messagerecu.php
  5. 14
      action/envoyer_message.php
  6. 14
      action/quete_autocomplete.php
  7. 39
      action/quete_calendrier_prive.php
  8. 11
      action/supprimer_message.php
  9. 40
      base/organiseur.php
  10. 17
      calendrier.css
  11. 18
      composer.json
  12. 17
      contenu/calendrier.html
  13. 6
      formulaires/configurer_messagerie_agenda.html
  14. 25
      formulaires/configurer_messagerie_agenda.php
  15. 30
      formulaires/editer_message.html
  16. 43
      formulaires/editer_message.php
  17. 2
      formulaires/inc-destinataires-message.html
  18. 9
      inc/date_gestion.php
  19. 54
      inc/messages.php
  20. 29
      inc/quete_calendrier.php
  21. 17
      lang/organiseur.xml
  22. 82
      lang/organiseur_eo.php
  23. 2
      lang/organiseur_fr.php
  24. 82
      lang/organiseur_ja.php
  25. 17
      lang/paquet-organiseur.xml
  26. 15
      lang/paquet-organiseur_eo.php
  27. 2
      lang/paquet-organiseur_fr.php
  28. 15
      lang/paquet-organiseur_ja.php
  29. 22
      lib/fullcalendar/LICENSE.txt
  30. 10
      lib/fullcalendar/README.md
  31. 1293
      lib/fullcalendar/fullcalendar.css
  32. 15148
      lib/fullcalendar/fullcalendar.js
  33. 5
      lib/fullcalendar/fullcalendar.min.css
  34. 12
      lib/fullcalendar/fullcalendar.min.js
  35. 176
      lib/fullcalendar/fullcalendar.print.css
  36. 9
      lib/fullcalendar/fullcalendar.print.min.css
  37. 330
      lib/fullcalendar/gcal.js
  38. 6
      lib/fullcalendar/gcal.min.js
  39. 6
      lib/fullcalendar/locale-all.js
  40. 1
      lib/fullcalendar/locale/af.js
  41. 1
      lib/fullcalendar/locale/ar-dz.js
  42. 1
      lib/fullcalendar/locale/ar-kw.js
  43. 1
      lib/fullcalendar/locale/ar-ly.js
  44. 1
      lib/fullcalendar/locale/ar-ma.js
  45. 1
      lib/fullcalendar/locale/ar-sa.js
  46. 1
      lib/fullcalendar/locale/ar-tn.js
  47. 1
      lib/fullcalendar/locale/ar.js
  48. 1
      lib/fullcalendar/locale/be.js
  49. 1
      lib/fullcalendar/locale/bg.js
  50. 1
      lib/fullcalendar/locale/bs.js
  51. 1
      lib/fullcalendar/locale/ca.js
  52. 1
      lib/fullcalendar/locale/cs.js
  53. 1
      lib/fullcalendar/locale/da.js
  54. 1
      lib/fullcalendar/locale/de-at.js
  55. 1
      lib/fullcalendar/locale/de-ch.js
  56. 1
      lib/fullcalendar/locale/de.js
  57. 1
      lib/fullcalendar/locale/el.js
  58. 1
      lib/fullcalendar/locale/en-au.js
  59. 1
      lib/fullcalendar/locale/en-ca.js
  60. 1
      lib/fullcalendar/locale/en-gb.js
  61. 1
      lib/fullcalendar/locale/en-ie.js
  62. 1
      lib/fullcalendar/locale/en-nz.js
  63. 1
      lib/fullcalendar/locale/es-do.js
  64. 1
      lib/fullcalendar/locale/es-us.js
  65. 1
      lib/fullcalendar/locale/es.js
  66. 1
      lib/fullcalendar/locale/et.js
  67. 1
      lib/fullcalendar/locale/eu.js
  68. 1
      lib/fullcalendar/locale/fa.js
  69. 1
      lib/fullcalendar/locale/fi.js
  70. 1
      lib/fullcalendar/locale/fr-ca.js
  71. 1
      lib/fullcalendar/locale/fr-ch.js
  72. 1
      lib/fullcalendar/locale/fr.js
  73. 1
      lib/fullcalendar/locale/gl.js
  74. 1
      lib/fullcalendar/locale/he.js
  75. 1
      lib/fullcalendar/locale/hi.js
  76. 1
      lib/fullcalendar/locale/hr.js
  77. 1
      lib/fullcalendar/locale/hu.js
  78. 1
      lib/fullcalendar/locale/id.js
  79. 1
      lib/fullcalendar/locale/is.js
  80. 1
      lib/fullcalendar/locale/it.js
  81. 1
      lib/fullcalendar/locale/ja.js
  82. 1
      lib/fullcalendar/locale/ka.js
  83. 1
      lib/fullcalendar/locale/kk.js
  84. 1
      lib/fullcalendar/locale/ko.js
  85. 1
      lib/fullcalendar/locale/lb.js
  86. 1
      lib/fullcalendar/locale/lt.js
  87. 1
      lib/fullcalendar/locale/lv.js
  88. 1
      lib/fullcalendar/locale/mk.js
  89. 1
      lib/fullcalendar/locale/ms-my.js
  90. 1
      lib/fullcalendar/locale/ms.js
  91. 1
      lib/fullcalendar/locale/nb.js
  92. 1
      lib/fullcalendar/locale/nl-be.js
  93. 1
      lib/fullcalendar/locale/nl.js
  94. 1
      lib/fullcalendar/locale/nn.js
  95. 1
      lib/fullcalendar/locale/pl.js
  96. 1
      lib/fullcalendar/locale/pt-br.js
  97. 1
      lib/fullcalendar/locale/pt.js
  98. 1
      lib/fullcalendar/locale/ro.js
  99. 1
      lib/fullcalendar/locale/ru.js
  100. 1
      lib/fullcalendar/locale/sk.js
  101. Some files were not shown because too many files have changed in this diff Show More

7
.gitignore vendored

@ -1,7 +0,0 @@
/vendor/
/composer.phar
/composer.lock
/phpcs.xml
/phpstan.neon
/.php_cs.cache
/.php_cs.txt

4
CHANGELOG.md

@ -1,4 +0,0 @@
# Changelog
## Unreleased

3
README.md

@ -1,3 +0,0 @@
# Plugin Organiseur
Ce plugin ajoute une messagerie et des rappels dans l’espace privé

13
action/effacer_messagerecu.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -23,12 +24,12 @@ function action_effacer_messagerecu_dist($id_auteur = null, $id_message = null)
if (is_null($id_auteur) or is_null($id_message)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
[$id_auteur, $id_message] = explode('-', $arg);
list($id_auteur, $id_message) = explode('-', $arg);
}
include_spip('inc/autoriser');
if (autoriser('effacer', 'messagerecu', $id_message, null, ['id_auteur' => $id_auteur])) {
if (autoriser('effacer', 'messagerecu', $id_message, null, array('id_auteur' => $id_auteur))) {
include_spip('inc/messages');
messagerie_effacer_message_recu($id_auteur, $id_message);
}

14
action/envoyer_message.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -26,12 +27,11 @@ function action_envoyer_message_dist($id_message = null) {
}
include_spip('inc/autoriser');
if (
intval($id_message)
if (intval($id_message)
and $type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))
and autoriser('envoyermessage', $type, $id_message)
) {
include_spip('action/editer_objet');
objet_modifier('message', $id_message, ['statut' => 'publie']);
objet_modifier('message', $id_message, array('statut' => 'publie'));
}
}

14
action/quete_autocomplete.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -16,14 +17,13 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function action_quete_autocomplete_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
if (
$arg
if ($arg
and $arg == $GLOBALS['visiteur_session']['id_auteur']
) {
include_spip('inc/actions');
include_spip('inc/json');
echo ajax_retour(
recuperer_fond('prive/squelettes/inclure/organiseur-autocomplete-auteur', ['term' => _request('term')]),
recuperer_fond('prive/squelettes/inclure/organiseur-autocomplete-auteur', array('term' => _request('term'))),
'application/json'
);
}

39
action/quete_calendrier_prive.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
@ -43,15 +44,15 @@ function action_quete_calendrier_prive_dist() {
include_spip('inc/quete_calendrier');
$evt = [];
$evt = array();
// recuperer la liste des evenements au format ics
$start = date('Y-m-d H:i:s', $start);
$end = date('Y-m-d H:i:s', $end);
$limites = [sql_quote($start), sql_quote($end)];
$limites = array(sql_quote($start), sql_quote($end));
// on fonction de quoi on récupère : tout (rv + publication) ou l'un ou l'autre.
$entier = $duree = [];
$entier = $duree = array();
if (!$quoi or $quoi == 'rv') {
$duree = quete_calendrier_interval_rv(reset($limites), end($limites));
@ -59,7 +60,7 @@ function action_quete_calendrier_prive_dist() {
}
if (!$quoi or $quoi == 'publication') {
[$entier, ] = quete_calendrier_interval($limites);
list($entier, ) = quete_calendrier_interval($limites);
$evt = convert_fullcalendar_quete_calendrier_interval($entier, $evt);
}
@ -67,15 +68,15 @@ function action_quete_calendrier_prive_dist() {
// permettre aux plugins d'afficher leurs evenements dans ce calendrier
$evt = pipeline(
'quete_calendrier_prive',
[
'args' => ['start' => $start, 'end' => $end, 'quoi' => $quoi],
array(
'args' => array('start' => $start, 'end' => $end, 'quoi' => $quoi),
'data' => $evt,
]
)
);
// format json
include_spip('inc/json');
echo json_encode($evt, JSON_THROW_ON_ERROR);
echo json_encode($evt);
}
/**
@ -108,7 +109,7 @@ function convert_dateical($dateical) {
* @return array
* Les événements au format fullcalendar
**/
function convert_fullcalendar_quete_calendrier_interval($messages, $evt = []) {
function convert_fullcalendar_quete_calendrier_interval($messages, $evt = array()) {
if (!$messages) {
return $evt;
}
@ -118,7 +119,7 @@ function convert_fullcalendar_quete_calendrier_interval($messages, $evt = []) {
foreach ($messages as $amj => $l) {
$date = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2);
foreach ($l as $e) {
$evt[] = [
$evt[] = array(
'id' => 0,
'title' => $e['SUMMARY'],
'allDay' => true,
@ -127,7 +128,7 @@ function convert_fullcalendar_quete_calendrier_interval($messages, $evt = []) {
'url' => str_replace('&amp;', '&', $e['URL']),
'className' => 'calendrier-event ' . $e['CATEGORIES'],
'description' => $e['DESCRIPTION'],
];
);
}
}
@ -147,14 +148,14 @@ function convert_fullcalendar_quete_calendrier_interval($messages, $evt = []) {
* @return array
* Les événements au format fullcalendar
**/
function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = []) {
function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = array()) {
if (!$messages) {
return $evt;
}
// ici il faut faire attention : un evt apparait N fois
// mais on a son id
$seen = [];
$seen = array();
// toutes les messages déjà inscrits qu'on ne remet pas
foreach ($evt as $e) {
@ -165,7 +166,7 @@ function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = [])
foreach ($l as $id => $e) {
$url = str_replace('&amp;', '&', $e['URL']);
if (!isset($seen[$url])) {
$evt[] = [
$evt[] = array(
'id' => $id,
'title' => $e['SUMMARY'],
'allDay' => false,
@ -174,7 +175,7 @@ function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = [])
'url' => $url,
'className' => 'calendrier-event ' . $e['CATEGORIES'],
'description' => $e['DESCRIPTION'],
];
);
$seen[$url] = true;
}
}

11
action/supprimer_message.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -28,6 +29,6 @@ function action_supprimer_message_dist($id_message = null) {
include_spip('inc/autoriser');
if (autoriser('supprimer', 'message', $id_message)) {
include_spip('action/editer_objet');
objet_modifier('message', $id_message, ['statut' => 'poub']);
objet_modifier('message', $id_message, array('statut' => 'poub'));
}
}

40
base/organiseur.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -22,9 +23,10 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*/
function organiseur_declarer_tables_objets_sql($tables) {
$tables['spip_auteurs']['field']['imessage'] = 'VARCHAR(3)';
$tables['spip_auteurs']['field']['messagerie'] = 'VARCHAR(3)';
$tables['spip_messages'] = [
$tables['spip_messages'] = array(
'page' => false,
'texte_modifier' => 'icone_modifier_message',
'texte_creer' => 'icone_ecrire_nouveau_message',
@ -35,10 +37,10 @@ function organiseur_declarer_tables_objets_sql($tables) {
'info_nb_objets' => 'info_nb_messages',
'principale' => 'oui',
'champs_editables' => [
'champs_editables' => array(
'titre', 'texte', 'type', 'date_heure', 'date_fin', 'rv', 'id_auteur', 'destinataires'
],
'field' => [
),
'field' => array(
'id_message' => 'bigint(21) NOT NULL',
'titre' => "text DEFAULT '' NOT NULL",
'texte' => "longtext DEFAULT '' NOT NULL",
@ -53,27 +55,27 @@ function organiseur_declarer_tables_objets_sql($tables) {
'id_auteur' => 'bigint(21) DEFAULT 0 NOT NULL',
'destinataires' => "text DEFAULT '' NOT NULL",
'maj' => 'TIMESTAMP'
],
'key' => [
),
'key' => array(
'PRIMARY KEY' => 'id_message',
'KEY id_auteur' => 'id_auteur'
],
),
'titre' => "titre, '' AS lang",
'date' => 'date_heure',
'statut' => [
[
'statut' => array(
array(
'champ' => 'statut',
'publie' => 'publie',
'previsu' => '!',
'exception' => ['statut', 'tout']
],
],
'rechercher_champs' => [
'exception' => array('statut', 'tout')
),
),
'rechercher_champs' => array(
'titre' => 8,
'texte' => 1
],
),
];
);
return $tables;
}

17
prive/themes/spip/calendrier.css → calendrier.css

@ -6,24 +6,9 @@
.calendrier-noir { color: #000; } /* style anar */
.calendrier-nb { background-color: #FFF; border: 1px solid #000; color: #000; } /* style cinemat(yp)ographe */
.fc-view table {margin-bottom: 0}
.fc tbody tr td.fc-daygrid-day { background-color: #fff; }
.fc tbody .fc-scrollgrid-section-liquid > td {background-color: transparent}
.fc tbody .fc-timegrid-slot-minor {background: #eee;}
.fc-head table { margin-bottom:0; }
.calendrier-event {word-wrap:break-word;}
tbody tr.calendrier-event:nth-child(2n) td {
color: inherit;
background-color: inherit;
}
tr.calendrier-event.fc-list-event:hover {
opacity: 0.9;
}
tr.calendrier-event.fc-list-event:hover td {
color: inherit;
background-color: inherit;
}
.calendrier-couleur1,
.calendrier-couleur1 .fc-widget-content { background-color: #CD006F; border-color: #CD006F; color: #fff; } /* Fushia */

18
composer.json

@ -1,18 +0,0 @@
{
"require": {
"php": "^7.4 || ^8.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
"phpstan/phpstan": "^1.4",
"spip/coding-standards": "^1.2"
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
},
"platform": {
"php": "7.4.27"
}
}
}

17
contenu/calendrier.html

@ -1,21 +1,21 @@
<div id="calendrier-loading" style="display:none;"><:organiseur:loading:></div>
<div id="calendrier"></div>
<link rel='stylesheet' type='text/css' href='[(#CHEMIN{lib/fullcalendar/main.min.css}|timestamp)]' />
<script type='text/javascript' src='[(#CHEMIN{lib/fullcalendar/main.min.js}|timestamp)]'></script>
<script type='text/javascript' src='[(#CHEMIN{lib/fullcalendar/locales-all.js}|timestamp)]'></script>
<link rel='stylesheet' type='text/css' href='#CHEMIN{lib/fullcalendar/fullcalendar.min.css}' />
<link rel="stylesheet" type="text/css" href="#CHEMIN{calendrier.css}" />
<script type='text/javascript' src='#CHEMIN{lib/moment/moment-with-locales.min.js}'></script>
<script type='text/javascript' src='#CHEMIN{lib/fullcalendar/fullcalendar.min.js}'></script>
<script type='text/javascript' src='#CHEMIN{lib/fullcalendar/locale-all.js}'></script>
<script type="text/javascript">/*<![CDATA[*/
jQuery(function($) {
// page is now ready, initialize the calendar...
var calendarEl = document.getElementById('calendrier');
calendar = new FullCalendar.Calendar(calendarEl, {
$('#calendrier').fullCalendar({
locale: '[(#LANG|strtolower)]',
editable: false,
navLinks: true,
eventLimit: true,
events: "[(#URL_PAGE{calendrier_quete.json}|parametre_url{id_mot,#ENV{id_mot,''}}|parametre_url{id_rubrique,#ENV{id_rubrique,''}})]",
timeFormat: 'hh:mm',
headerToolbar: {
header: {
left: 'prevYear,prev,next,nextYear today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
@ -26,8 +26,7 @@ jQuery(function($) {
else $('#calendrier-loading').hide();
},
allDayHtml:'<:organiseur:cal_jour_entier|texte_script:>',
});
calendar.render();
})
});
/*]]>*/</script>

6
formulaires/configurer_messagerie_agenda.html

@ -1,7 +1,7 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
<h3 class='titrem'><img src="#CHEMIN_IMAGE{messagerie-24.png}" class="cadre-icone" /><:titre_messagerie_agenda:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok" role="status">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur" role="alert">(#ENV*{message_erreur})</p>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<p><:texte_messagerie_agenda:></p>
<form method='post' action='#ENV{action}'><div>
@ -25,7 +25,7 @@
</div>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class='boutons'><span class='image_loading'>&nbsp;</span><input type='submit' class='btn submit' value='<:bouton_enregistrer:>' /></p>
<p class='boutons'><span class='image_loading'>&nbsp;</span><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
</div></form>
]
</div>

25
formulaires/configurer_messagerie_agenda.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -14,24 +15,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
function formulaires_configurer_messagerie_agenda_charger_dist() {
$valeurs = [];
foreach (
[
$valeurs = array();
foreach (array(
'messagerie_agenda',
] as $m
) {
) as $m) {
$valeurs[$m] = $GLOBALS['meta'][$m];
}
return $valeurs;
}
function formulaires_configurer_messagerie_agenda_traiter_dist() {
$res = ['editable' => true];
foreach (
[
$res = array('editable' => true);
foreach (array(
'messagerie_agenda',
] as $m
) {
) as $m) {
if (!is_null($v = _request($m))) {
ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
}

30
formulaires/editer_message.html

@ -1,8 +1,6 @@
<div class="ajax formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
[<p class="reponse_formulaire reponse_formulaire_ok" role="status">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur" role="alert">(#ENV*{message_erreur})</p>]
<p hidden id="format_date_message_#ENV{id,nouveau}"><:format_date_attendu:></p>
<p hidden id="format_heure_message_#ENV{id,nouveau}"><:format_heure_attendu:></p>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method='post' action='#ENV{action}'><div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
@ -37,20 +35,15 @@
<div class="editer editer_date_debut editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_debut}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
<label for="date_debut"><:organiseur:info_message_date_debut:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_debut})</span>
]<input type='text' class='text date' name='date_debut' id='date_debut' size='10' maxlength='10' value="[(#ENV{date_debut})]"
aria-describedby="format_date_message_#ENV{id,nouveau}" />
]<input type='text' class='text date' name='date_debut' id='date_debut' size='10' maxlength='10' value="[(#ENV{date_debut})]" />
<input type='text' class='text heure' name='heure_debut' id='heure_debut' size='4' maxlength='5' value="[(#ENV{heure_debut})]"
aria-labelledby="date_debut"
aria-describedby="format_heure_message_#ENV{id,nouveau}" />
/>
</div>
<div class="editer editer_date_fin editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_fin}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
<label for="date_fin" class='date_fin'><:organiseur:info_message_date_fin:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_fin})</span>
]<input type='text' class='text date' name='date_fin' id='date_fin' size='10' maxlength='10' value="[(#ENV{date_fin})]"
aria-describedby="format_date_message_#ENV{id,nouveau}" />
<input type='text' class='text heure' name='heure_fin' id='heure_fin' size='4' maxlength='5' value="[(#ENV{heure_fin})]"
aria-labelledby="date_fin"
aria-describedby="format_heure_message_#ENV{id,nouveau}" />
]<input type='text' class='text date' name='date_fin' id='date_fin' size='10' maxlength='10' value="[(#ENV{date_fin})]" />
<input type='text' class='text heure' name='heure_fin' id='heure_fin' size='4' maxlength='5' value="[(#ENV{heure_fin})]" />
</div>
#SET{name,texte}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
@ -70,9 +63,9 @@
<!--extra-->
<p class='boutons'><span class='image_loading'>&nbsp;</span>
[(#ENV{statut}|=={publie}|non)
<input type='submit' class='btn submit' name="draft" value='<:organiseur:bouton_enregistrer_brouillon:>' />
<input type='submit' class='submit' name="draft" value='<:organiseur:bouton_enregistrer_brouillon:>' />
]
<input type='submit' class='btn submit' name="send" value='<:organiseur:bouton_envoyer_message:>' />
<input type='submit' class='submit' name="send" value='<:organiseur:bouton_envoyer_message:>' />
</p>
</div></form>
#INCLURE{fond=formulaires/dateur/inc-dateur}
@ -93,10 +86,3 @@
}
</script>
]
<script type="text/javascript">
// Si changement de date_début, on change date_fin uniquement si inférieure à date_début
jQuery('#date_debut').on('change', function(){
var debut_date = jQuery('#date_debut').datepicker("getDate");
jQuery('#date_fin').datepicker( "option", "minDate", new Date(debut_date));
});
</script>

43
formulaires/editer_message.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -43,7 +44,7 @@ function formulaires_editer_message_charger_dist(
if (!intval($id_message)) {
$valeurs['type'] = $type;
$valeurs['destinataires'] = ($destinataires ? explode(',', $destinataires) : []);
$valeurs['destinataires'] = ($destinataires ? explode(',', $destinataires) : array());
$valeurs['titre'] = $titre;
$valeurs['texte'] = $texte;
$t = time();
@ -60,16 +61,16 @@ function formulaires_editer_message_charger_dist(
}
// dispatcher date et heure
[$valeurs['date_debut'], $valeurs['heure_debut']] = explode(
list($valeurs['date_debut'], $valeurs['heure_debut']) = explode(
' ',
date('d/m/Y H:i', strtotime($valeurs['date_heure']))
);
[$valeurs['date_fin'], $valeurs['heure_fin']] = explode(
list($valeurs['date_fin'], $valeurs['heure_fin']) = explode(
' ',
date('d/m/Y H:i', strtotime($valeurs['date_fin']))
);
if (in_array($valeurs['type'], ['pb', 'affich'])) {
if (in_array($valeurs['type'], array('pb', 'affich'))) {
$valeurs['_destiner'] = '';
} else {
$valeurs['_destiner'] = ' ';
@ -89,15 +90,14 @@ function formulaires_editer_message_verifier_dist(
$texte = ''
) {
$oblis = ['titre'];
$oblis = array('titre');
if (!_request('draft')) {
$oblis[] = 'texte';
}
if (intval($id_message) and $t = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))) {
$type = $t;
}
if (
!in_array($type, ['pb', 'affich'])
if (!in_array($type, array('pb', 'affich'))
// pas de destinataire obligatoire pour un brouillon
and !_request('draft')
) {
@ -117,9 +117,8 @@ function formulaires_editer_message_verifier_dist(
and isset($oblis['destinataires'])
and $e = messagerie_verifier_destinataires(
_request('destinataires'),
['accepter_email' => ($accepter_email == 'oui')]
)
) {
array('accepter_email' => ($accepter_email == 'oui'))
)) {
$erreurs['destinataires'] = implode(', ', $e);
}
@ -158,7 +157,7 @@ function formulaires_editer_message_traiter_dist(
// formater les destinataires
$d = _request('destinataires');
if (!$d) {
$d = [];
$d = array();
}
include_spip('inc/messages');
$d = messagerie_nettoyer_destinataires($d);
@ -177,7 +176,7 @@ function formulaires_editer_message_traiter_dist(
if (_request('rv') == 'oui') {
include_spip('inc/date_gestion');
$erreurs = [];
$erreurs = array();
$date_debut = verifier_corriger_date_saisie('debut', true, $erreurs);
$date_fin = verifier_corriger_date_saisie('fin', true, $erreurs);
set_request('date_heure', date('Y-m-d H:i:s', $date_debut));
@ -192,18 +191,14 @@ function formulaires_editer_message_traiter_dist(
// et notification
$res = formulaires_editer_objet_traiter('message', $id_message, 0, 0, $retour, '');
if (
$id_message = $res['id_message']
if ($id_message = $res['id_message']
and !_request('draft')
) {
include_spip('action/editer_objet');
objet_modifier('message', $id_message, ['statut' => 'publie', 'date_heure' => _request('date_heure')]);
objet_modifier('message', $id_message, array('statut' => 'publie', 'date_heure' => _request('date_heure')));
// apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message
if (
isset($res['redirect'])
and $type !== 'affich'
and ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message))
) {
if (isset($res['redirect'])
and ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message))) {
$res['redirect'] = generer_url_ecrire('messages', 'quoi=envoi');
}
}

2
formulaires/inc-destinataires-message.html

@ -3,7 +3,7 @@
[(#REM) Premier element vide et cache qui sert de modele pour le js]
<span class="dest" style="display: none;"><img
src='#CHEMIN_IMAGE{supprimer-12.png}' width="12" height="12" onclick="jQuery(this).parent().remove();" /></span>
<BOUCLE_d(DATA){source table, #ENV{#ENV{name}}}>
<BOUCLE_d(POUR){tableau #ENV{#ENV{name}}}>
<span class="dest"><input type="hidden" name="#ENV{name}[]" value="#VALEUR" />
<BOUCLE_a(AUTEURS){id_auteur=#VALEUR}{tout}>#NOM</BOUCLE_a>#VALEUR<//B_a>&nbsp;<img
src='#CHEMIN_IMAGE{supprimer-12.png}' width="12" height="12" onclick="jQuery(this).parent().remove();" /></span>

9
inc/date_gestion.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {

54
inc/messages.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
@ -59,21 +60,20 @@ function messagerie_nettoyer_destinataires($destinataires) {
* @param array $options
* @return array
*/
function messagerie_verifier_destinataires($destinataires, $options = ['accepter_email' => true]) {
$erreurs = [];
function messagerie_verifier_destinataires($destinataires, $options = array('accepter_email' => true)) {
$erreurs = array();
$destinataires = messagerie_nettoyer_destinataires($destinataires);
foreach ($destinataires as $id) {
if (is_numeric($id)) {
if (!$id) {
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', ['dest' => entites_html($id)]);
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', array('dest' => entites_html($id)));
}
} else {
if (
!$options['accepter_email']
if (!$options['accepter_email']
or !email_valide($id)
) {
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', ['dest' => entites_html($id)]);
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', array('dest' => entites_html($id)));
}
}
}
@ -89,8 +89,8 @@ function messagerie_verifier_destinataires($destinataires, $options = ['accepter
*/
function messagerie_destiner($dests) {
// separer les destinataires auteur des destinataires email
$auteurs_dest = [];
$email_dests = [];
$auteurs_dest = array();
$email_dests = array();
$dests = messagerie_nettoyer_destinataires($dests);
foreach ($dests as $id) {
@ -103,14 +103,14 @@ function messagerie_destiner($dests) {
if (count($email_dests)) {
// retrouver les id des emails pour ceux qui sont en base
$res = sql_select('id_auteur,email', 'spip_auteurs', sql_in('email', $email_dests));
$auteurs_dest_found = [];
$auteurs_dest_found = array();
while ($row = sql_fetch($res)) {
$auteurs_dest_found[] = $row['id_auteur'];
}
$auteurs_dest = [...$auteurs_dest, ...$auteurs_dest_found];
$auteurs_dest = array_merge($auteurs_dest, $auteurs_dest_found);
}
return [$auteurs_dest, $email_dests];
return array($auteurs_dest, $email_dests);
}
/**
@ -120,14 +120,13 @@ function messagerie_destiner($dests) {
* @param array $auteurs_dest
* @return bool|int
*/
function messagerie_diffuser_message($id_message, $auteurs_dest = []) {
function messagerie_diffuser_message($id_message, $auteurs_dest = array()) {
$out = false;
if (
$id_message = intval($id_message)
if ($id_message = intval($id_message)
and count($auteurs_dest)
) {
include_spip('action/editer_liens');
$out = objet_associer(['auteur' => $auteurs_dest], ['message' => $id_message], ['vu' => 'non']);
$out = objet_associer(array('auteur' => $auteurs_dest), array('message' => $id_message), array('vu' => 'non'));
}
return $out;
@ -140,9 +139,8 @@ function messagerie_diffuser_message($id_message, $auteurs_dest = []) {
* @param array $emails_dest
* @return bool
*/
function messagerie_mailer_message($id_message, $emails_dest = []) {
if (
$id_message = intval($id_message)
function messagerie_mailer_message($id_message, $emails_dest = array()) {
if ($id_message = intval($id_message)
and count($emails_dest)
) {
if ($row = sql_fetsel('titre,texte,id_auteur', 'spip_messages', 'id_message=' . intval($id_message))) {
@ -151,7 +149,7 @@ function messagerie_mailer_message($id_message, $emails_dest = []) {
job_queue_add(
'envoyer_mail',
'messagerie mail',
[$email, $row['titre'], ['texte' => $row['texte'], 'from' => $from]],
array($email, $row['titre'], array('texte' => $row['texte'], 'from' => $from)),
'inc/'
);
}
@ -174,19 +172,19 @@ function messagerie_mailer_message($id_message, $emails_dest = []) {
function messagerie_marquer_message($id_auteur, $liste, $vu) {
include_spip('action/editer_liens');
if (!is_array($liste)) {
$liste = [$liste];
$liste = array($liste);
}
// completer les liens qui n'existent pas encore
// ex : pour marquer lue une annonce, on ajoute le lien d'abord (n'existe pas)
// puis on le marque 'oui'
$liens = objet_trouver_liens(['auteur' => $id_auteur], ['message' => $liste]);
$l = [];
$liens = objet_trouver_liens(array('auteur' => $id_auteur), array('message' => $liste));
$l = array();
foreach ($liens as $lien) {
$l[] = $lien['message'];
}
objet_associer(['auteur' => $id_auteur], ['message' => array_diff($liste, $l)], ['vu' => $vu]);
objet_associer(array('auteur' => $id_auteur), array('message' => array_diff($liste, $l)), array('vu' => $vu));
// puis les marquer tous lus
objet_qualifier_liens(['auteur' => $id_auteur], ['message' => $liste], ['vu' => $vu]);
objet_qualifier_liens(array('auteur' => $id_auteur), array('message' => $liste), array('vu' => $vu));
include_spip('inc/invalideur');
suivre_invalideur('message/' . implode(',', $liste));
}

29
inc/quete_calendrier.php

@ -1,12 +1,13 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
@ -89,7 +90,7 @@ function quete_calendrier_jour($annee, $mois, $jour) {
**/
function quete_calendrier_interval($limites) {
include_spip('inc/urls');
[$avant, $apres] = $limites;
list($avant, $apres) = $limites;
$evt = array();
quete_calendrier_interval_articles($avant, $apres, $evt);
quete_calendrier_interval_breves($avant, $apres, $evt);
@ -115,7 +116,7 @@ function quete_calendrier_interval($limites) {
* Format : `$evenements[$amj][] = Tableau de description ICS`
**/
function quete_calendrier_interval_forums($limites, &$evenements) {
[$avant, $apres] = $limites;
list($avant, $apres) = $limites;
$result = sql_select(
'DISTINCT titre, date_heure, id_forum',
'spip_forum',
@ -129,7 +130,7 @@ function quete_calendrier_interval_forums($limites, &$evenements) {
if (autoriser('voir', 'forum', $id)) {
$evenements[$amj][] =
array(
'URL' => generer_objet_url($id, 'forum'),
'URL' => generer_url_entite($id, 'forum'),
'CATEGORIES' => 'calendrier-couleur7',
'SUMMARY' => $row['titre'],
'DTSTART' => date_ical($row['date_heure'])
@ -173,13 +174,13 @@ function quete_calendrier_interval_articles($avant, $apres, &$evenements) {
$amj = date_anneemoisjour($row['date']);
$id = $row['id_article'];
if (autoriser('voir', 'article', $id)) {
$langue = $langues[$row['lang']] ?? "";
$langue = isset($langues[$row['lang']]) ? $langues[$row['lang']] : "";
$evenements[$amj][] =
array(
'CATEGORIES' => calendrier_categories('spip_articles', $id, 'id_article'),
'DESCRIPTION' => $row['descriptif'] ?: $langue,
'SUMMARY' => $row['titre'],
'URL' => generer_objet_url_ecrire('article', $id, '', '', 'prop')
'URL' => generer_url_ecrire_objet('article', $id, '', '', 'prop')
);
}
}
@ -215,7 +216,7 @@ function quete_calendrier_interval_rubriques($avant, $apres, &$evenements) {
'CATEGORIES' => calendrier_categories('spip_rubriques', $id, 'id_rubrique'),
'DESCRIPTION' => $row['descriptif'],
'SUMMARY' => $row['titre'],
'URL' => generer_objet_url_ecrire('rubrique', $id, '', '', 'prop')
'URL' => generer_url_ecrire_objet('rubrique', $id, '', '', 'prop')
);
}
}
@ -247,7 +248,7 @@ function quete_calendrier_interval_breves($avant, $apres, &$evenements) {
if (autoriser('voir', 'breve', $id)) {
$evenements[$amj][] =
array(
'URL' => generer_objet_url_ecrire('breve', $id, '', '', 'prop'),
'URL' => generer_url_ecrire_objet('breve', $id, '', '', 'prop'),
'CATEGORIES' => calendrier_categories('spip_breves', $ir, 'id_breve'),
'SUMMARY' => $row['titre']
);
@ -306,13 +307,13 @@ function quete_calendrier_interval_rv($avant, $apres) {
$cat = 'calendrier-couleur12';
} else {
$cat = 'calendrier-couleur9';
$auteurs = array_column(
$auteurs = array_map(
'array_shift',
sql_allfetsel(
'nom',
'spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON L.id_auteur=A.id_auteur',
"(L.objet='message' AND L.id_objet=$id_message AND (A.id_auteur!=$connect_id_auteur))"
),
'nom'
)
);
}
}

17
lang/organiseur.xml

@ -1,10 +1,4 @@
<traduction
module="organiseur"
id="organiseur--organiseur-4f18a"
gestionnaire="salvatore"
url="https://trad.spip.net"
source="https://git.spip.net/spip/organiseur.git"
reference="fr">
<traduction module="organiseur" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_core_/plugins/organiseur/lang/" reference="fr">
<langue code="ar" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=ar" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="George" lien="https://trad.spip.net/auteur/جورج-قندلفت" />
</langue>
@ -16,9 +10,6 @@
<traducteur nom="George" lien="https://trad.spip.net/auteur/جورج-قندلفت" />
<traducteur nom="kent1" lien="https://trad.spip.net/auteur/kent1" />
</langue>
<langue code="eo" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=eo" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="gpl" lien="https://trad.spip.net/auteur/gpl" />
</langue>
<langue code="es" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=es" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="alf" lien="https://trad.spip.net/auteur/alf" />
<traducteur nom="dani" lien="https://trad.spip.net/auteur/dani" />
@ -26,7 +17,8 @@
<langue code="fa" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=fa" total="55" traduits="54" relire="0" modifs="0" nouveaux="1" pourcent="98.18">
<traducteur nom="Davood Hossein" lien="https://trad.spip.net/auteur/davood-hossein" />
</langue>
<langue code="fr" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=fr" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00" />
<langue code="fr" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=fr" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="fr_fem" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=fr_fem" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="b_b" lien="https://trad.spip.net/auteur/b_b" />
<traducteur nom="denisb" lien="https://trad.spip.net/auteur/denisb" />
@ -39,9 +31,6 @@
<traducteur nom="Julia14" lien="https://trad.spip.net/auteur/julia14" />
<traducteur nom="phante" lien="https://trad.spip.net/auteur/phante" />
</langue>
<langue code="ja" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=ja" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="origenius" lien="https://trad.spip.net/auteur/origenius" />
</langue>
<langue code="nl" url="https://trad.spip.net/tradlang_module/organiseur?lang_cible=nl" total="55" traduits="55" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Hanjo" lien="https://trad.spip.net/auteur/hanjo" />
<traducteur nom="Suske" lien="https://trad.spip.net/auteur/suske" />

82
lang/organiseur_eo.php

@ -1,82 +0,0 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de https://trad.spip.net/tradlang_module/organiseur?lang_cible=eo
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
// B
'bouton_enregistrer_brouillon' => 'Konservi kiel malneto',
'bouton_envoyer_message' => 'Sendi',
'bouton_envoyer_message_maintenant' => 'Tuj sendi',
// C
'cal_jour_entier' => 'Tago',
'cal_par_jour' => 'tago',
'cal_par_mois' => 'monato',
'cal_par_semaine' => 'semajno',
// E
'erreur_date' => 'Tiu dato estas erara',
'erreur_date_avant_apres' => 'Findato estu posta al la komencodato !',
'erreur_date_corrigee' => 'La dato estis korektita.',
'erreur_destinataire_invalide' => 'La adresato @dest@ ne validas',
'erreur_heure' => 'Tiu horo ne validas',
'erreur_heure_corrigee' => 'La horo estis korektita.',
// I
'icone_ecrire_nouveau_message' => 'Sendi novan mesaĝon',
'icone_ecrire_nouveau_pensebete' => 'Skribi novan memorigilon',
'icone_ecrire_nouvelle_annonce' => 'Sendi novan avizon',
'icone_effacer_message' => 'Forigi tiun mesaĝon',
'icone_modifier_annonce' => 'Modifi tiun avizon',
'icone_modifier_message' => 'Modifi tiun mesaĝon',
'icone_modifier_pensebete' => 'Modifi tiun memorigilon',
'icone_supprimer_message' => 'Forigi tiun mesaĝon',
'info_1_message_envoye' => '1 mesaĝo sendita',
'info_1_message_nonlu' => '1 nova mesaĝo',
'info_agenda_interne' => 'Interna agendo',
'info_message_a' => 'Al',
'info_message_date' => 'Dato',
'info_message_date_debut' => 'Komencodato',
'info_message_date_fin' => 'Findato',
'info_message_de' => 'De',
'info_message_non_lu' => 'Nova mesaĝo',
'info_message_objet' => 'Pri',
'info_nb_messages_envoyes' => '@nb@ mesaĝoj senditaj',
'info_nb_messages_nonlus' => '@nb@ novaj mesaĝoj',
'info_selection_annonces' => 'Avizoj',
'info_selection_messages' => 'Mesaĝoj',
'info_selection_pensebetes' => 'Memorigiloj',
'info_type_message_affich' => 'Avizo',
'info_type_message_normal' => 'Mesaĝo',
'info_type_message_pb' => 'Memorigilo',
'info_type_message_rv' => 'Rendevuo',
// L
'label_destinataires' => 'Al',
'label_texte' => 'Teksto',
'label_titre' => 'Pri',
'loading' => 'Ŝargante...',
// M
'message' => 'Mesaĝo',
'messages' => 'Mesaĝoj',
// N
'notification_annonce_lire_a_ladresse' => 'Vi povas legi ĝin tie : @url@.',
'notification_annonce_publie_1' => '[@nom_site_spip@] Ĝenerala avizo',
'notification_message_lire_a_ladresse' => 'Vi povas legi ĝin kaj respondi al ĝi tie : @url@.',
'notification_message_publie_1' => '[@nom_site_spip@] Nova mesaĝo',
'notification_message_recu_de' => 'Vi ricevis novan mesaĝon de @nom@.',
// T
'texte_message_brouillon' => 'Tiu mesaĝo estas konservita kiel malneto',
'titre_agenda_rv' => 'Rendevuo',
'titre_boite_envoi' => 'Senditujo',
'titre_boite_reception' => 'Ricevujo'
);

2
lang/organiseur_fr.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans https://git.spip.net/spip/organiseur.git
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_core_/plugins/organiseur/lang/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}

82
lang/organiseur_ja.php

@ -1,82 +0,0 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de https://trad.spip.net/tradlang_module/organiseur?lang_cible=ja
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
// B
'bouton_enregistrer_brouillon' => '下書きとして保存',
'bouton_envoyer_message' => '送信する',
'bouton_envoyer_message_maintenant' => '今送信する',
// C
'cal_jour_entier' => '日',
'cal_par_jour' => '日',
'cal_par_mois' => '今月',
'cal_par_semaine' => '週間',
// E
'erreur_date' => 'この日付は間違っています。',
'erreur_date_avant_apres' => 'まず、開始日を記入してから、終了日を記入してください!',
'erreur_date_corrigee' => '日付が修正されました。',
'erreur_destinataire_invalide' => '宛先は@dest@が有効ではありません。',
'erreur_heure' => '時間は正しくありません。',
'erreur_heure_corrigee' => '時間が修正されました。',
// I
'icone_ecrire_nouveau_message' => '新規メッセージを送信する',
'icone_ecrire_nouveau_pensebete' => '新規メモを書く',
'icone_ecrire_nouvelle_annonce' => '新規告知を送信する',
'icone_effacer_message' => 'このメッセージを削除する',
'icone_modifier_annonce' => 'この告知を変更する',
'icone_modifier_message' => 'このメッセージを変更する',
'icone_modifier_pensebete' => 'このメモを変更する',
'icone_supprimer_message' => 'このメッセージを削除する',
'info_1_message_envoye' => '送信されたメッセージは1件',
'info_1_message_nonlu' => '新着メッセージは1件',
'info_agenda_interne' => '内部の日程',
'info_message_a' => '宛先',
'info_message_date' => '日付',
'info_message_date_debut' => '開始日',
'info_message_date_fin' => '終了日',
'info_message_de' => 'より',
'info_message_non_lu' => '新着メッセージ',
'info_message_objet' => '件名',
'info_nb_messages_envoyes' => '送信済みのメッセージは@nb@件',
'info_nb_messages_nonlus' => '新着メッセージは@nb@件',
'info_selection_annonces' => '告知',
'info_selection_messages' => 'メッセージ',
'info_selection_pensebetes' => 'メモ',
'info_type_message_affich' => '告知',
'info_type_message_normal' => 'メッセージ',
'info_type_message_pb' => 'メモ',
'info_type_message_rv' => '予約',
// L
'label_destinataires' => '宛先',
'label_texte' => 'テキスト',
'label_titre' => '話題',
'loading' => '読み込み中',
// M
'message' => 'メッセージ',
'messages' => 'メッセージ',
// N
'notification_annonce_lire_a_ladresse' => '次のURL@url@で読むことが出来ます。',
'notification_annonce_publie_1' => '「@nom_site_spip @」一般発表',
'notification_message_lire_a_ladresse' => '次のURL@url@で読んで返信することができます。',
'notification_message_publie_1' => '「@nom_site_spip@」新着メッセージ',
'notification_message_recu_de' => '@nom@より、新しいメッセージが届きました。',
// T
'texte_message_brouillon' => 'このメッセージは下書きとして保存されます。',
'titre_agenda_rv' => '予約',
'titre_boite_envoi' => '送信ボックス',
'titre_boite_reception' => '受信ボックス'
);

17
lang/paquet-organiseur.xml

@ -1,10 +1,4 @@
<traduction
module="paquet-organiseur"
id="paquet-organiseur--organiseur-4f18a"
gestionnaire="salvatore"
url="https://trad.spip.net"
source="https://git.spip.net/spip/organiseur.git"
reference="fr">
<traduction module="paquet-organiseur" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_core_/plugins/organiseur/lang/" reference="fr">
<langue code="ar" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=ar" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="George" lien="https://trad.spip.net/auteur/جورج-قندلفت" />
</langue>
@ -14,16 +8,14 @@
<langue code="en" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=en" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="kent1" lien="https://trad.spip.net/auteur/kent1" />
</langue>
<langue code="eo" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=eo" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="gpl" lien="https://trad.spip.net/auteur/gpl" />
</langue>
<langue code="es" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=es" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="jotacese" lien="https://trad.spip.net/auteur/jotacese" />
</langue>
<langue code="fa" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=fa" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Davood Hossein" lien="https://trad.spip.net/auteur/davood-hossein" />
</langue>
<langue code="fr" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=fr" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00" />
<langue code="fr" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=fr" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
</langue>
<langue code="fr_fem" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=fr_fem" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="denisb" lien="https://trad.spip.net/auteur/denisb" />
</langue>
@ -33,9 +25,6 @@
<langue code="it" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=it" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="phante" lien="https://trad.spip.net/auteur/phante" />
</langue>
<langue code="ja" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=ja" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="origenius" lien="https://trad.spip.net/auteur/origenius" />
</langue>
<langue code="lb" url="https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=lb" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Jim Wanderscheid" lien="https://trad.spip.net/auteur/jwander" />
</langue>

15
lang/paquet-organiseur_eo.php

@ -1,15 +0,0 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// extrait automatiquement de https://trad.spip.net/tradlang_module/paquet-organiseur?lang_cible=eo
// ** ne pas modifier le fichier **
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
// O
'organiseur_description' => 'Redaktaj gruplaboriloj',
'organiseur_slogan' => 'Redaktaj gruplaboriloj'
);

2
lang/paquet-organiseur_fr.php

@ -1,6 +1,6 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans https://git.spip.net/spip/organiseur.git
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_core_/plugins/organiseur/lang/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}