Skip to content
Extraits de code Groupes Projets
Valider 66e29daf rédigé par esj's avatar esj
Parcourir les fichiers

Réécriture du traitement "X a travaillé sur cet article" : d'une part il y...

Réécriture du traitement "X a travaillé sur cet article" : d'une part il y avait des confusions dans les valeurs utilisées, ce qui empechait parfois le message de donner le nom de l'intervenant, d'autre part la conception était lacunaire car celui qui fait des sauvegardes plus fréquentes qu'un autre auteur n'était pas prévenu que l'autre était encore là, voire ne l'était jamais s'il avait ouvert en premier.
parent 5f027c03
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -84,8 +84,19 @@ function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot ...@@ -84,8 +84,19 @@ function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot
if ($GLOBALS['meta']['articles_modif'] != 'non') { if ($GLOBALS['meta']['articles_modif'] != 'non') {
include_spip('inc/drapeau_edition'); include_spip('inc/drapeau_edition');
$modif = qui_edite($id_article, 'article'); $modif = qui_edite($id_article, 'article');
if ($modif['id_auteur_modif'] == $connect_id_auteur) unset($modif[$connect_id_auteur]);
$modif = array();
if ($modif) {
$quand = 0;
foreach($modif as $duo) {
$auteurs[] = typo(extraire_multi(key($duo)));
$quand = max($quand, current($duo));
}
// format lie a la chaine de langue 'avis_article_modifie'
$modif = array(
'nom_auteur_modif' => join(' | ', $auteurs),
'date_diff' => floor((time()-$quand) / 60));
}
} }
// chargement prealable des fonctions produisant des formulaires // chargement prealable des fonctions produisant des formulaires
......
...@@ -88,7 +88,7 @@ else if ($new=='oui') { ...@@ -88,7 +88,7 @@ else if ($new=='oui') {
if ($GLOBALS['meta']['articles_modif'] != 'non') { if ($GLOBALS['meta']['articles_modif'] != 'non') {
include_spip('inc/drapeau_edition'); include_spip('inc/drapeau_edition');
if ($id_article) if ($id_article)
signale_edition ($id_article, $connect_id_auteur, 'article'); signale_edition ($id_article, $GLOBALS['auteur_session'], 'article');
} }
return $row; return $row;
......
...@@ -30,15 +30,28 @@ if (!defined("_ECRIRE_INC_VERSION")) return; ...@@ -30,15 +30,28 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@lire_tableau_edition // http://doc.spip.org/@lire_tableau_edition
function lire_tableau_edition () { function lire_tableau_edition () {
$edition = @unserialize($GLOBALS['meta']['drapeau_edition']); $edition = @unserialize($GLOBALS['meta']['drapeau_edition']);
if (!$edition) $edition = array(); if (!$edition) return array();
$changed = false; $changed = false;
$bon_pour_le_service = time()-3600;
// parcourir le tableau et virer les vieux // parcourir le tableau et virer les vieux
foreach ($edition as $objet => $data) { foreach ($edition as $objet => $data) {
if ($data[1] < time()-3600) { if (!is_array($data))
unset ($edition[$objet]); unset ($edition[$objet]); // vieille version
$changed = true; else foreach ($data as $id => $tab) {
if (!is_array($tab))
unset ($edition[$objet][$tab]); // vieille version
else foreach ($tab as $n => $duo) {
if (current($duo) < $bon_pour_le_service) {
unset($edition[$objet][$id][$n]);
$changed = true;
}
}
if (!$edition[$objet][$id])
unset($edition[$objet][$id]);
} }
if (!$edition[$objet])
unset($edition[$objet]);
} }
if ($changed) if ($changed)
...@@ -61,29 +74,20 @@ function signale_edition ($id, $auteur, $type='article') { ...@@ -61,29 +74,20 @@ function signale_edition ($id, $auteur, $type='article') {
if ($id_a = $auteur['id_auteur']) if ($id_a = $auteur['id_auteur'])
$nom = $auteur['nom']; $nom = $auteur['nom'];
else else
$nom = $GLOBALS['ip']; $nom = $id_a = $GLOBALS['ip'];
$edition[$type.$id] = array ($id_a, time(), $nom); if (!is_array($edition[$type][$id]))
$edition[$type][$id] = array();
$edition[$type][$id][$id_a][$nom] = time();
ecrire_tableau_edition($edition); ecrire_tableau_edition($edition);
} }
// Qui edite mon objet ? // Qui edite mon objet ?
// http://doc.spip.org/@qui_edite // http://doc.spip.org/@qui_edite
function qui_edite ($id, $type='article') { function qui_edite ($id, $type='article') {
$edition = lire_tableau_edition();
if (list($id, $date, $nom) = $edition[$type.$id]
AND $date > time() - 3600) {
$date_diff = floor( (time()-$date) / 60); $edition = lire_tableau_edition();
$nom_auteur_modif = typo($nom);
// attention ce format est lie a la chaine de langue return $edition[$type][$id];
return array(
'id_auteur_modif' => $id_auteur,
'nom_auteur_modif' => $nom_auteur_modif,
'date_diff' => $date_diff
);
}
} }
// Quels sont les articles en cours d'edition par X ? // Quels sont les articles en cours d'edition par X ?
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter