Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Questions » » Afficher la dernière connexion d'un membre  
2 pages [ 1 | 2 ]
AuteurAfficher la dernière connexion d'un membre
FURAX69
80    

FURAX69
  Posté : 20-10-2006 18:34

Bonjour à tous,

J'ai cherché comment afficher la date/heure de dernière connexion d'un membre (dans le carnet d'adresse par ex.) sans trouver de solution... Pourtant, ce paramètre semble être intégré à la base MySQL dans la table user... On trouve un champs nommé clairement "Lastconnect" et qui contient ces information sour la forme d'un nombre entier que je cherche d'ailleur à déchiffrer...

Sur quoi est-il basé et quelle est la date de référence ?


Merci d'avance pour toute aide et éclaircissement...

  Profil  E-mail  www  Citation   
jms
16   

jms
  Posté : 21-10-2006 12:01

Effectivement ce champ existe mais la date est codée. Plutot que de chercher à la décoder, peut-être par fainantse j'ai rajouter un champ date en clair dans la base que j'alimente au moment de l'insertion dans la table session (donc modif de code aussi).

  Profil  www  Citation   
FURAX69
80    

FURAX69
  Posté : 21-10-2006 12:30

merci pour ta réponse jms... Je n'ai pour le moment, pas les compétences pour modifier le code... je me mets tout juste au PhP et SQL... Mais je comprends ce que tu veux dire... Mais si je sais ajouter le champ, je ne sais pas comment intéger la mise à jour dans session ni comment afficher cette donnée une fois récoltée...

J'attends donc de pouvoir éventuellement utiliser ce qui existe !
Sinon, je serai contraint de mettre les mains dans le camboui
Ce n'est pas que cela me fasse peur, mais c'est plutot parce que le temps me manque...

  Profil  E-mail  www  Citation   
jms
16   

jms
  Posté : 21-10-2006 14:32

Le code pour mettre à jour la table.
Dans Mainfile.php, fonction session_manage, juste après la ligne :
mysql_query("INSERT INTO session (username, time, host_addr, guest) VALUES ('$username', '".time()."', '$ip', '$guest')");

rajouter :

mysql_query("UPDATE users SET derniere_visite=now() WHERE uname='$username'");

En supposant que la colonne nouvelle s'appelle "derniere_visite".

Faire la même chose dans la fonction "online" du même fichier mainfile.php



  Profil  www  Citation   
lecoq
22   

lecoq
  Posté : 22-10-2006 17:13

Je l'ai fait dans mon memberslist.php. Je l'ai mis dans une colonne en remplacement d'une autre qui ne m'itéressait pas trop.


      $last=$temp_user[user_lastvisit];
      $today = date("d.m.Y",time()+($gmt*3600)); //la date du jour
      $zlast=date("d.m.Y",$last); // la dernière connection
      if ($today==date("d.m.Y",$last)) { // si aujourd'hui, renvoi l'heure
      $zlast = date("H:i",$last);  //renvoi l'heure
      }
      if ($last<1) { $zlast=""; }

   echo "<td>$zlast</td>\n";



Il faut rajouter le champ "user_lastvisit" dans l'appel SQL vers la ligne 173.
Notez que la colonne est visible par tout les membres.

  Profil  www  Citation   
FURAX69
80    

FURAX69
  Posté : 25-10-2006 21:49

Bonjour Lecoq et merci pour ta réponse...

Ta solution me convient parfaitement mais je n'arrive pas à placer le code que tu me donne correctement dans memberslist.php... J'ai bien ajouté "user_lastvisit" dans l'appel SQL à la ligne 175... Et tenté de remplacer la colonne URL mais...

Ma meilleure tentative fonctionne mais seulement sur la première page de membres !!!
http://mtg.lyon.online.fr/memberslist2a.php
Dès que l'on passe à la suivante, l'affichage se fait avec la colonne URL d'origine !!!???
http://mtg.lyon.online.fr/memberslist.php?letter=&sortby=uid%20DESC&list=&page=2

Je suis peut-être gonflé pour le coup, mais si jamais tu avais décidé de supprimer la même colonne URL que moi, serais-tu ok pour me passer ton fichier memberslist.php ?
Mon adresse email, si tu est d'accord, est furax88 [at] thierryschmitt.com

Je te remercie pour le temps que tu pourras m'accorder car je débute vraiment en PhP/sql et c'est une des première fois que je trifouille ce code ;)



  Profil  E-mail  www  Citation   
lecoq
22   

lecoq
  Posté : 26-10-2006 16:00

Ouups!
Avec moins de 20 membres (site familial) je na'i pas vu cela.
Je regarde dès que possible pour l'intégrer sur les pages suivantes.
Aujourd'hui j'ai un anni donc un ptit peu de patience.

  Profil  www  Citation   
xgonin
709      
 

xgonin
  Posté : 26-10-2006 17:09

Furax, c'est parce que ta 2ème page appelle memnerlist.php et non memberlist2a.php !!!

Mais perso, vos modif chez moi ça donne rien...

Message édité par : xgonin / 26-10-2006 17:29


  Profil  www  Citation   
lecoq
22   

lecoq
  Posté : 26-10-2006 17:40

Oui juste, et bien vu, car en regardant bien les appels tournent sur la même routine et chez moi tout est ok, contrairement à ce j'ai écris sur mon message précédent.

  Profil  www  Citation   
xgonin
709      
 

xgonin
  Posté : 26-10-2006 17:46

good...

Comment faire pour rajouter ces colonnes "connexion" en plus des colonnes existantes, avec la même ecriture que le reste de la liste... histoire de faire joli ????


Furax, peus-tu reposter les modifs faites dans les différents fichiers, car celle qui sont dans le forum ne marche absolument pas chez moi

Amicalement

  Profil  www  Citation   
Anonyme
19757  

Anonyme
  Posté : 27-10-2006 22:20

Il y a finallement plusieurs modifications à faire... Voici donc l'intégralité du code modifié à ma sauce pour faire apparaitre
une colonne "Dernière connexion" à la place de la colonne "URL"...
Le code a également été modifié afin de faire un tri par date et heure de connexion... Vous pouvez ainsi suivre les logs de vos membre plus clairement




<?PHP
/************************************************************** **********/
/* NPDS V : Net Portal Dynamic System .                           & nbsp;      */
/* ===========================        &nbs p;              ;                     */
/*            &nb sp;            &nbs p;              ;                           & nbsp;    */
/* Original Copyright (c) 2001 by Francisco Burzi (fburzi@ncc.org.ve)   */
/* http://phpnuke.org                                                   */
/*            &nb sp;            &nbs p;              ;                           & nbsp;    */
/* This version name NPDS Copyright (c) 2001-2004   */
/*            &nb sp;            &nbs p;              ;                           & nbsp;    */
/* =========================                       & nbsp;            &n bsp;        */
/* Based on MyPHPortal Modified MembersList           &n bsp;            &nb sp;    */
/*            &nb sp;            &nbs p;              ;                           & nbsp;    */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License.       */
/************************************************************************/ br />
if (!function_exists("Mysql_Connexion")) {!include! ("mainfile.php");}

// Make Member_list Private or not
if (!AutoReg()) 
{ unset($user); }
if (($member_list==1) AND ($user==
"") AND ($admin=="")) {
   Header(
"Location: index.php");
}

function alpha() 
{
   global $sortby, $list;
   $alphabet = array (
"".translate("All")."""A","B","C","D","E","F","G","H","I","J","K","L","M",
              ;        
"N","O","P","Q","R","S","T","U","V","W","X","Y","Z","".translate("Other")."");

   echo 
"<table width=\"100%\" border=\"0\"><tr><td width=\"50%\" align=\"center\" valign=\"top\">";
   $num = count($alphabet) - 1;
   $counter = 0;
   while (list(, $ltr) = each($alphabet)) 
{
      echo 
"<a href=\"memberslist.php?letter=$ltr&amp;sortby=$sortby&amp;list =$list\" class=\"NOIR\">$ltr</a>";
      if ( $counter == roun d($num/2) ) 
{
         echo 
" ]<br />[ ";
      
} elseif ( $counter != $num )  ;{
         echo 
"&nbsp;|&nbsp;";
      
}
      $counter++;
   
}
   echo 
"</td><td class=\"NOIR\">";
   echo 
"<form action=\"memberslist.php\" method=\"post\">";
   echo translate(
"Search")." : <input class=\"TEXTBOX_STANDARD\" type=\"input\" name=\"letter\" size=\"30\" maxlenght=\"60\">";
   echo 
"<input type=\"hidden\" name=\"list\" value=\"".urldecode($list)."\">";
   echo 
"<input type=\"hidden\" name=\"TempoSuperCache\" value=\"OFF\">";
   echo 
"</form>";
   echo 
"</td></tr></table>";
}

function unique($ibid) 
{
   while (list(,$to_user) = each($ibid)) 
{
      if (!$Xto_user
[$to_user]{
         $Xto_user
[$to_user]=$to_user;
      
}
   
}
   return ($Xto_user);
}

function SortLinks($letter) 
{
   global $sortby, $list, $admin;
   if ($letter == 
"front"{
      $letter = translate(
"All");
   
}
   $sort=false;
   echo 
"<table width=\"100%\" cellspacing=\"2\" cellpadding=\"2\" border=\"0\"><tr><td align=\"center\">\n";
   echo translate(
"Sort by:")." ";
   if ($sortby == 
"uname ASC" OR !$sortby) {
      echo translate(
"nickname")."&nbsp;|&nbsp;";
      $sort=true;
   
} else {
      echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=uname%20ASC&a mp;list=$list\" class=\"NOIR\">".translate("nickname")."</a>&nbsp;|&nbsp;";
   
}
   if ($sortby == 
"name ASC"{
      echo translate(
"real name")."&nbsp;|&nbsp;";
      $sort=true;
   
} else {
      echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=name%20ASC&am p;list=$list\" class=\"NOIR\">".translate("real name")."</a>&nbsp;|&nbsp;";
   
}
   if ($sortby == 
"user_avatar ASC"{
      echo translate(
"Avatar")."&nbsp;|&nbsp;";
      $sort=true;
   
} else {
      echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=user_avatar%20ASC &amp;list=$list\" class=\"NOIR\">".translate("Avatar")."</a>&nbsp;|&nbsp;";
   
}
   if (($sortby == 
"femail ASC") or ($sortby == "email ASC")) {
      echo translate(
"Email")."&nbsp;|&nbsp;";
      $sort=true;
   
} else {
      if ($admin) 
{
         echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=email%20ASC&a mp;list=$list\" class=\"NOIR\">".translate("Email")."</a>&nbsp;|&nbsp;";
      
} else {
         echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=femail%20ASC& amp;list=$list\" class=\"NOIR\">".translate("Email")."</a>&nbsp;|&nbsp;";
      
}
   
}
   if ($sortby == 
"user_from ASC"{
      echo translate(
"Location")."&nbsp;|&nbsp;";
      $sort=true;
   
} else {
      echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=user_from%20ASC&a mp;amp;list=$list\" class=\"NOIR\">".translate("Location")."</a>&nbsp;|&nbsp;";
   
}
   if ($sortby == 
"user_lastvisit DESC"{
      echo 
"Dernière connexion |";
      $sort=true;
   
} else {
      echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=user_lastvisit%20 DESC&amp;list=$list\" class=\"NOIR\">Dernière connexion</a>&nbsp;|&nbsp;";
   
}
   if ($sortby == 
"mns DESC"{
      echo translate(
"Mini-Web site")."&nbsp;|&nbsp;";
      $sort=true;
   
} else {
      echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=mns%20DESC&am p;list=$list\" class=\"NOIR\">".translate("Mini-Web site")."</a>&nbsp;|&nbsp;";
   
}
   if ($sortby == 
"uid DESC"{
      echo 
"I.D";
      $sort=true;
   
} else {
      echo 
"<a href=\"memberslist.php?letter=$letter&amp;sortby=uid%20DESC&am p;list=$list\" class=\"NOIR\">I.D</a>";
   
}
   if (!$sort) 
{$sortby="uname ASC";}

    echo 
"</td></tr></table>\n";
}

function avatar($user_avatar) 
{
   if (!$user_avatar) 
{
      $imgtmp=
"images/forum/avatar/blank.gif";
   
} else if (stristr($user_avatar,"users_private")) {
      $imgtmp=$user_avatar;
   
} else {
      if ($ibid=theme_image(
"forum/avatar/$user_avatar")) {$imgtmp=$ibid;} else {$imgtmp="images/forum/avatar/$user_avatar";}
      if (!file_exists($imgtmp)) {$imgtmp="images/forum/avatar/blank.gif";}
   
}
   return ($imgtmp);
}

   // OFF temporairement SC pour la&n bsp;recherche
   if ($TempoSuperCache==
"OFF"{$SuperCache=false;}

   !include!(
"header.php");
   $pagesize = $show_user;

   $letter=removeHack(stripslashes(htmlspecialchars($letter,&n bsp;ENT_QUOTES)));
   $sortby=removeHack($sortby);
   if (!isset($letter)) 
{ $letter = translate("All"); }
   if (!isset($sortby)) 
{ $sortby = "uid DESC"}
   if (!isset($page)) 
{ $page = 1; }

   if ($list!=
""{
      $tempo=unique(explode(
",",$list));
      $list=urlencode(implode(
",",$tempo));
   
}
   $result = mysql_query(
"select uname from users order by  uid DESC limit 0,1");
   list($lastuser) = mysql_fetch_row($result);
   echo 
"<table width=\"100%\" cellspacing=\"2\" cellpadding=\"2\" border=\"0\"><tr><td class=\"HEADER\">\n";
   echo translate(
"Welcome to")." $sitename - ".translate("Members List");
   echo 
"</td></tr></table>\n";
   Opentable();
   echo 
"<p align=\"center\">".translate("Greetings to our latest registered use r:")." <a href=\"user.php?op=userinfo&amp;uname=$lastuser\" class=\"NOIR\">$lastuser</a></p><br />";
   if (!$admin) 
{
      if ($SuperCache) 
{
         $cache_obj =  new cacheManager();
         $cache_obj
->startCachingPage();
      
}
   
}
   if (($cache_obj
->genereting_output==1) or ($cache_obj->genereting_output==-1) or (!$SuperCache) or  ;($admin)) {
      alpha();
      SortLinks($letter);

      $min = $pagesize * ($page - 1);
      $max = $pagesize;

      $count = 
"SELECT COUNT(uid) AS total FROM users& nbsp;";
      $select = 
"select uid, name, uname, femail, url,& nbsp;user_regdate, user_from, email, is_visible, user_viewe mail, user_lastvisit, user_avatar, mns from users  ;";
      if ( ( $letter != 
"".translate("Other")."" ) AND ( $letter != "".translate("All")."" ) ) {
         $where = "where uname like '".$letter."%'";
      
} else if ( ( $letter == "".translate("Other")."" ) AND ( $letter != "".translate("All")."" ) ) {
         $where = "where uname REGEXP \"^\[1-9]\" ";
      
} else {
         $where = "";
      
}
      global $member_invisible;
      if ($member_invisible) 
< font color="#007700">{

         if ($admin)
            $and=
"";
         else 
{
            if&nb sp;($where)
              ;  $and=
"and is_visible=1 ";
            else
              ;  $and=
"where is_visible=1 ";
         
}
      
} else {
         $and=
"";
      
}

      $sort = 
"order by $sortby";
      $limit = 
" LIMIT ".$min."".$max;
      $count_result = mysql_query($co unt.$where);
      $num_rows_per_order = mysql_res ult($count_result,0,0);
      $result = mysql_query($select.$ where.$and.$sort.$limit) or die(mysql_error() );
      echo 
"<br />";
      if ( $letter != "front" ) {
         echo 
"<table width=\"100%\" cellspacing=\"0\" cellpadding=\"1\" border=\"0\"><tr class=\"HEADER\">\n";
         echo 
"<td class=\"BOX\"><span style=\"font-size: 10px;\"><b>".translate("Nickname")."</b></span></td>\n";
         echo 
"<td class=\"BOX\">&nbsp;</td>\n";
         echo 
"<td class=\"BOX\" align=\"center\">&nbsp;</td>";
         echo 
"<td class=\"BOX\" align=\"center\">&nbsp;</td>";
         echo 
"<td class=\"BOX\"><span style=\"font-size: 10px;\"><b>".translate("Real Name")."</b></span></td>\n";
         if ($sortby!="user_from ASC"{
            echo& nbsp;
"<td class=\"BOX\"><span style=\"font-size: 10px;\"><b>".translate("Email")."</b></span></td>\n";
         
} else {
            echo& nbsp;
"<td class=\"BOX\"><span style=\"font-size: 10px;\"><b>".translate("Location")."</b></span></td>\n";
         
}
         echo 
"<td class=\"BOX\"><span style=\"font-size: 10px;\">Dernière connexion</td>\n";
         $cols = 7; br />         if ($admin) < /font>{
            $cols  = 9;
            echo& nbsp;
"<td class=\"BOX\" align=\"center\" width=\"12%\"><span style=\"font-size: 10px;\"><b>".translate("Functions")."</b></span></td><td class=\"BOX\">&nbsp;</td>\n";
         
}
         echo 
"</tr>";
         $a = 0;
         $num_users =  mysql_num_rows($result);
         if ( $num_row s_per_order > 0  ) 
{
            globa l $anonymous, $user;
            while ($temp_user = mysql_fetch_array($result) ) 
{
              ;  $rowcolor = tablos();
              ;  if ($temp_user
[mns]{$mns="<a href=\"minisite.php?op=$temp_user[uname]\" alt=\"\" title=\"".translate("Mini-Web site")."\" target=\"_blank\" class=\"HEADA\"><b>(w)</b></a>";} else {$mns="";}
              ;  echo 
"<tr $rowcolor><td><a href=\"user.php?op=userinfo&amp;uname=$temp_user[uname]\" alt=\"\" title=\"".date(translate("dateinternal"),$temp_user[user_regdate])."\"  class=\"HEADA\">$temp_user[uname]</a>&nbsp;$mns</td>\n";
              ;  echo 
"<td valign=\"middle\">";
              ;  if ($ibid_avatar=avatar($temp_user
[user_avatar]))
              ;     echo 
"<img src=\"".$ibid_avatar."\" width=\"20\" height=\"20\" border=\"0\" alt=\"\" title=\"\" />";
              ;  else
              ;     echo 
"&nbsp;";
              ;  echo 
"</td>";
              ;&

  Citation   
Anonyme
19757  

Anonyme
  Posté : 14-07-2009 14:54

hello,

Quelqu'un pourrai-t-il mettre un tuto et les fichiers modifiés en ligne?
J'ai essayé mais je suis une bille et ça ne marche pas.

  Citation   
Anonyme
19757  

Anonyme
  Posté : 16-07-2009 09:36

ben alors y-a pas un pro qui répond?

  Citation   
Anonyme
19757  

Anonyme
  Posté : 25-05-2010 15:00


Petit UP
Ca fait plus de 3 heures que j'essaie d'obtenir une colonne "dernière connexion"
J'ai modifié mon fichier memberlist avec un copier/coller du code ci-dessus.
J'ai hélas de très nombreux messages d'erreur (même en essayant de corriger le code)
L'un de vous pourrait il nous venir en aide s'il vous plait ?
Cette fonction serait un énorme plus dans l'administration d'NPDS

Merci

je suis sous Evol

  Citation   
Anonyme
19757  

Anonyme
  Posté : 30-06-2010 10:10


Up... si quelqu'un à la solution pour Sable Evol 08.06

Merci

  Citation   
Aller à la page : [ 1 | 2 ]
  
Sauter à :

Temps : 0.0242 seconde(s)