Afficher le nom de l'utilisateur qui a effectué la dernière modification

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Est-ce quelque sait comment il est possible d'afficher le nom de l'utilisateur qui a effectué la dernière modification sur une contribution?

J'arrive sans problème à afficher la date de cette dernière mise à jour, mais sans plus. J'affiche cette date par une modification du template (avec le module ConTemplate), en inscrivant la ligne suivante :

<?php
 
print t('!date par !username', array('!username' => theme('username', $node), '!date' => format_date($node->changed)));
?>

Le nom d'utilisateur généré par cette commande reste celui qui a créé le noeud...

Version de Drupal : 

Bon je cherchais un moyen un peu moins bourrin de faire ca mais j'ai pas trouve, alors ma soluce :D

Comme tu peux le voir, l'auteur est dicte par la fonction theme_username, donc l'idee serait de la surcharger et de mettre un truc du genre:

<?php
function phptemplate_username($object) {
 
//debut modif tostinni
 
$username = $object->name;
 
$uid = $object->uid;
  if (
$uid && $username) {
   
// Recuperation de l'auteur de la derniere revision:
   
$auteur = db_fetch_object(db_query('SELECT u.uid, u.name FROM {node_revisions} r INNER JOIN {users} u ON u.uid = r.uid WHERE r.vid = %d', $object->vid));
   
$username = $auteur->name;
   
$uid = $auteur->uid;   
   
//fin modif tostinni

    // Shorten the name when it is too long or it will break many tables.
   
if (drupal_strlen($username) > 20) {
     
$name = drupal_substr($username, 0, 15) .'...';
    }
    else {
     
$name = $username;
    }

    if (
user_access('access user profiles')) {
     
$output = l($name, 'user/'. $uid, array('title' => t('View user profile.')));
    }
    else {
     
$output = check_plain($name);
    }
  }
  else if (
$username) {
   
// Sometimes modules display content composed by people who are
    // not registered members of the site (e.g. mailing list or news
    // aggregator modules). This clause enables modules to display
    // the true author of the content.
   
if ($object->homepage) {
     
$output = l($username, $object->homepage);
    }
    else {
     
$output = check_plain($username);
    }

   
$output .= ' ('. t('not verified') .')';
  }
  else {
   
$output = variable_get('anonymous', t('Anonymous'));
  }

  return
$output;
}
?>

En gros j'ai juste changer les $object->uid et $object->name par des variables pour pouvoir les modifier et ensuite, j'ai fait une tite requete sur la table des revisions pour recuperer le nom de l'auteur de la revision.

Voilou, c'est pas teste mais ca doit pas etre loin de la realite :)