Nom de la contribution : DiscussionsActionWhoIsOnline
Description : Affiche diverses informations concernant les utilisateurs en ligne.
Type de contribution : Action
Fonctionne avec : WikiNi > 0.4.1rc +
SessionsInDataBase
Intégration technique : placer le fichier
whoisonline.php dans le répertoire
actions/
Mainteneur : ProjetsDeLordFarquaadPourWikiNi
Licence : GPL
Dernière version : 0.1.1
Dernière livraison : 2006-01-13
Accès au code et mise en oeuvre : http://wikinicontrib.notredomaine.org/WhoIsOnline-v.0.1.1-2005-08-25.zip
Démonstration : http://fsa.notredomaine.org/wiki/QuiEstEnLigne (et
http://fsa.notredomaine.org/wiki/PagePrincipale)
Intégration au projet WikiNi :
Bugs : [signaler ici les bugs connus]
Mode d'emploi :
Cette action est très simple d'emploi. Un simple appel affichera simplement le nombre d'utilisateurs en ligne et le pseudonyme des membres inscrits:
donnera donc quelque chose du genre :
<div class="whoisonline"><span class="wio_simple">Il y a actuellement en ligne <strong>0 invité(s)</strong> et <strong>1 membre(s)</strong> inscrit(s)</span><br />
<span class="wio_memberlist">Membres inscrits: <a href="http://fsa.notredomaine.org/wiki/LordFarquaad">LordFarquaad</a></span><br />(Ces informations sont basées sur les utilisateurs actifs au cours des 5 dernières minutes)</div>
Elle peut aussi afficher une liste détaillée des utilisateurs en ligne, en l'appelant en mode
full:
Ce qui donnera quelque chose du genre :
<div class="whoisonline"><h2>Utilisateurs en ligne</h2>
<table class="wio_table">
<tr>
<th>Utilisateur</th>
<th>Page</th>
<th>Mode</th>
<th>Heure</th>
<th>Nombre de pages vues</th> </tr>
<tr>
<th class="wio_usertype" colspan="5">Membre(s) inscrit(s)</th>
</tr>
<tr>
<td class="wio_username"><a href="http://fsa.notredomaine.org/wiki/LordFarquaad">LordFarquaad</a> (vous)</td>
<td class="wio_page"><a href="http://fsa.notredomaine.org/wiki/PagePrincipale">PagePrincipale</a></td>
<td class="wio_handler"><a href="http://fsa.notredomaine.org/wiki/PagePrincipale/show">/show</a></td>
<td class="wio_time">2005-04-14 14:41:14</td>
<td class="wio_pagecount">2</td>
</tr>
<tr>
<th class="wio_usertype" colspan="5">Invité(s)</th>
</tr>
<tr>
<td class="wio_username">-</td>
<td class="wio_page"><a href="http://fsa.notredomaine.org/wiki/FsaT6Anglais">FsaT6Anglais</a></td>
<td class="wio_handler"><a href="http://fsa.notredomaine.org/wiki/FsaT6Anglais/show">/show</a></td>
<td class="wio_time">2005-04-14 14:41:55</td>
<td class="wio_pagecount">6</td>
</tr>
</table>(Ces informations sont basées sur les utilisateurs actifs au cours des 5 dernières minutes)</div>
Dans les deux modes, elle peut également être appelée avec un paramètre
retrotime indiquant la durée d'inactivité admise pour l'affichage des utilisateurs. Par exemple
- {{whoisonline full="1" retrotime="20"}}
Affichera les informations détaillées des utilisateurs actifs au cours des 20 dernières minutes.
Note: la solution proposée pour
GererLesSessionsEnBase détruit les sessions au bout d'une demie heure d'inactivité, par défaut.
Changement de l'apparence via le CSS
Cette action possède beaucoup de classes CSS, permettant ainsi de définir de manière assez fine sa présentation:
- L'action est toujours encadrée d'un div.whoisonline
- En mode simple:
- La première ligne, contenant le nombre d'utilisateurs en ligne, se trouve dans un span.wio_simple
- La ligne contenant la liste des utilisateurs ligne se trouve quant à elle dans un span.wio_memberlist
- En mode full:
- Le titre "Utilisateurs en ligne" se trouve dans un h2
- Les détails sont affichés dans une table.wio_table
- Les titres des colonnes sont bien entendu dans des th
- Les types d'utilisateurs (membres/invites) sont dans un th.wio_usertype
- Les données contenant les détails de l'utilisateur se trouvent dans des td.wio_username, td.wio_page, td.wio_handler, td.wio_time, td.wio_pagecount
exemple de CSS à appliquer
.wio_table {
width: 99%;
}
.wio_table th {
width: 20%;
text-align: left;
}
th.wio_usertype {
background-color: #DDDDDD;
padding-left: 1em;
}
div.whoisonline {
clear: both;
}
changelog
version 0.1.1
- date de parution: 2006-01-13
- nouveautés:
- l'adresse des visteurs est maintenant affichée, avec remplacement des chiffres par des * pour conserver l'anonymat (masquage de l'IP). Ceci permet de voir facilement quand on robot de moteur recherche (crawler) passe.
version 0.1.0
- date de parution: 2005-04-12
- première version
Discussions
Très sympa comme contribution, en la mettant en place j'observe un certains perso*-g*.free.fr: est-ce un bot d'indexation ?
- J'ignore si free possède des robots d'indexation. Par contre il est tout à fait possible que ce soit un autre site qui consulte ton wiki pour faire de la syndication, par exemple via les DerniersChangementsRSS. C'est ainsi qu'est généré l'aggrégateur poïétique sur la page DerniersChangements (c'est un autre site qui le génère). [nb: je donne cet exemple mais il n'est pas dit que l'aggrégateur poïétique va rester là...] -- LordFarquaad
Bug? Sous IE, le site n'est plus très accessible ! en reprenant l'ancien wakka.php, ça revient ...
- houlà j'avoue que je ne me souviens pas l'avoir testé sous IE... Heureusement j'ai réussi à mettre IE sous Linux donc je vais pouvoir aller voir... ben apparemment ça marche chez moi (testé avec IE5 et IE6). Peut y a-t-il un conflit avec autre chose dans la feuille de style ? -- LordFarquaad
Bug? J'ai bien placé whoisonline.php dans le répertoire actions et lorsque je fais {{whoisonline}} j'ai ça comme erreur sur la page :
Query failed: SELECT s.*, u.name IS NOT NULL user_is_registered, p.tag IS NOT NULL user_has_ownpage FROM wikini_sessions s LEFT JOIN wikini_users u ON s.username = u.name LEFT JOIN wikini_pages p ON u.name = p.tag AND p.latest = "Y" WHERE s.time > 1173547653 ORDER BY user_is_registered DESC, s.username (Table 'ppernetmu.wikini_sessions' doesn't exist)