J'utilise un "vieux" filtre (nb_connect) pour indiquer les derniers utilisateurs connectés. Pour que les auteurs naviguant sur le site à accès restreint soient mis à jour dans le champs "en_ligne", j'avais ajouté include_ecrire("inc_auth.php3"); dans le filtre.
Je ne sais même plus où j'ai été chercher ça.
Là je viens d'essayer avec include_spip('inc/auth.php'); et des variantes: ça marche pas même avec des vidanges du cache, des recalcul, etc.
Le code de la fonction est (dans /squelettes/mes_fonctions.php) :
function nb_connect($resultat){
global $table_prefix;
global $auteur_session;
//SUSKE loguer les auteurs dans la table depuis l'espace public
include_spip('inc/auth.php');
$query = "SELECT nom, en_ligne FROM ".$table_prefix."_auteurs WHERE( (TO_DAYS(now())-TO_DAYS(en_ligne))<=15 ) AND statut<='6forum' ORDER BY en_ligne DESC";
$resultat = "";
$result_auteurs = spip_query($query);
$nb_connectes = spip_num_rows($result_auteurs);
$flag_cadre = ($nb_connectes > 0);
if ($flag_cadre) {
if ($nb_connectes == 0) $resultat.="Pas de connexion rècente";
if ($nb_connectes > 1) $resultat.="<h2>Dernières connexions</h2><div class=\"menu\">";
else $resultat.="<h2>Dernière connexion</h2><div class=\"menu\">";
while ($row = spip_fetch_array($result_auteurs)) {
$nom_auteur = $row["nom"];
$en_ligne = strftime("%d/%m/%y-%T",strtotime($row["en_ligne"]));
$resultat.="<span class='notes'>$nom_auteur [$en_ligne]</span><br />";
}
$resultat.="</div>" ;
}
return $resultat;
}
// FIN du Filtre nb_connect
Le résultat est appelé par [(#URL_SITE|nb_connect)] et il est affiché.
Le hic c'est que le champs "en_ligne" de spip_auteurs n'est pas mis à jour par include_spip('inc/auth.php');
Et puis tant que j'y suis: elle est OK cette fonction ? (sécurité et tout ça)
--
Suske
32-2-5211161