commit 153ca9f8d60a64403694bab5dce8a72aa64b1230
Author: marcimat@rezo.net <>
Date: Fri Apr 7 12:24:22 2017 +0000
Plugin «Date de modification manuelle».
Il ajoute un champ 'date_modif_manuelle' sur la table des articles.
Ce champ est éditable au même endroit que la date habituelle.
Cette date de modification n'est pas modifiée automatiquement par l'édition
ou des changements dans l'objet éditorial articles (contrairement à date_modif).
On peut utiliser par exemple en critère `{!par GREATEST(date,date_modif_manuelle)}`.
Le code est *presque* générique pour gérer plusieurs objets éditoriaux, mais ce n'est pas fait.
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..3c1d479
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,12 @@
+* text=auto !eol
+base/date_modif_manuelle.php -text
+/date_modif_manuelle_administrations.php -text
+/date_modif_manuelle_autorisations.php -text
+/date_modif_manuelle_pipelines.php -text
+lang/date_modif_manuelle_fr.php -text
+lang/paquet-date_modif_manuelle_fr.php -text
+/paquet.xml -text
+prive/formulaires/inc-dater-modif_manuelle.html -text
+prive/themes/spip/images/date_modif_manuelle-128.png -text
+prive/themes/spip/images/date_modif_manuelle-32.png -text
+prive/themes/spip/images/date_modif_manuelle-64.png -text
diff --git a/base/date_modif_manuelle.php b/base/date_modif_manuelle.php
new file mode 100644
index 0000000..8f46270
--- /dev/null
+++ b/base/date_modif_manuelle.php
@@ -0,0 +1,34 @@
+ "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
+ );
+ }
+
+ return $tables;
+}
diff --git a/date_modif_manuelle_administrations.php b/date_modif_manuelle_administrations.php
new file mode 100644
index 0000000..3a3cf88
--- /dev/null
+++ b/date_modif_manuelle_administrations.php
@@ -0,0 +1,49 @@
+ _L('erreur')); #impossible en principe
+
+ $set = array();
+
+ if (!_request('date_modif_manuelle_jour')) {
+ $set['date_modif_manuelle'] = sql_format_date(0,0,0,0,0,0);
+ } else {
+ if (!$d = dater_recuperer_date_saisie(_request('date_modif_manuelle_jour'))) {
+ $d = array(date('Y'),date('m'),date('d'));
+ }
+ if (!$h = dater_recuperer_heure_saisie(_request('date_modif_manuelle_heure'))) {
+ $h = array(0,0);
+ }
+ $set['date_modif_manuelle'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
+ }
+
+ include_spip('action/editer_objet');
+ objet_modifier($objet, $id_objet, $set);
+ }
+
+ set_request('date_modif_manuelle_jour');
+ set_request('date_modif_manuelle_heure');
+
+ return $flux;
+}
+
+
+
+
+/**
+ * Ajouter la gestion de notre date au formulaire dater (vue)
+ *
+ * @param array $flux
+ * @return array $flux
+ **/
+function date_modif_manuelle_formulaire_fond($flux){
+ if ($flux['args']['form'] != 'dater') {
+ return $flux;
+ }
+
+ $env = $flux['args']['contexte'];
+
+ if (!in_array($env['objet'], date_modif_manuelle_objets_valides())) {
+ return $flux;
+ }
+
+ if (!$id_objet = $env['id_objet']) {
+ return $flux;
+ }
+
+ // insertion des saisies HTML
+ if (($p = strpos($flux['data'], "")) !== false){
+ $input = recuperer_fond('prive/formulaires/inc-dater-modif_manuelle', $env);
+ $flux['data'] = substr_replace($flux['data'], $input, $p, 0);
+ }
+
+ return $flux;
+}
diff --git a/lang/date_modif_manuelle_fr.php b/lang/date_modif_manuelle_fr.php
new file mode 100644
index 0000000..7182b73
--- /dev/null
+++ b/lang/date_modif_manuelle_fr.php
@@ -0,0 +1,18 @@
+ 'Aucune',
+
+ // D
+ 'date_modif_manuelle_titre' => 'Date de modification manuelle',
+
+ // L
+ 'label_date_modif_manuelle' => 'Date de modification manuelle :',
+);
diff --git a/lang/paquet-date_modif_manuelle_fr.php b/lang/paquet-date_modif_manuelle_fr.php
new file mode 100644
index 0000000..c44b7a5
--- /dev/null
+++ b/lang/paquet-date_modif_manuelle_fr.php
@@ -0,0 +1,16 @@
+ 'Par défaut la date de modification (champ date_modif) d\'un article est calculée automatiquement à chaque modification faite sur un contenu de l\'article. Ce plugin ajoute un champ date_modif_manuelle, et permet aux utilisateurs de saisir manuellement une date de modification de l\'article, qui ne change pas à chaque édition.
+
+Une écriture sympa dans un squelette peut être de faire des tris {!par GREATEST(date,date_modif_manuelle)}
qui trient en fonction soit de la date de publication, soit de modification manuelle, du plus récent au plus ancien.',
+ 'date_modif_manuelle_nom' => 'Date de modification manuelle',
+ 'date_modif_manuelle_slogan' => 'Ajoute une date de modification sur les articles à saisir',
+);
diff --git a/paquet.xml b/paquet.xml
new file mode 100644
index 0000000..f87bb4f
--- /dev/null
+++ b/paquet.xml
@@ -0,0 +1,26 @@
+