Bonjour, C'est peut-�tre une question con mais pourquoi ne pas vous inspirer de : http://votre.domaine.org/votreSite/Members/ ?? Ca vous �viterai de refaire ce qui est d�ja fait.. G�r�me
jonathan briffaut wrote: > Bonjour, > > Je suis arriv� � mettre en place le syst�me de visualisation des personnes > connect�es en 5 �tapes vous pourrez retrouver une doc dessus sur mon site > http://tlpb.free.fr > > -Maintenant mon but serai d'automatiser ceci, > > -donc encore une fois tout conseil de votre part sera le bienvenu, > - al'heure actuelle cela marche mais si vous avez des critiques n'hesitez > pas. > > 1) Tout d'abord nous allons modifier les propri�t�s des membres en ajoutant > quelques propri�t�s: > Dans portal_memberdata puis onglet properties ajout� 3variables > is_connect de type boolean � faux (decocher) > setConnect de type date (met � jour la date � chaque click) > idle de type int mis � 600 par defaut (seconde d'inactivit� > possible) > 2) Copier le script suivant avec le nom listMembers.py attention � > l'indentation > def listMembers(self): > if self.portal_membership.getAuthenticatedMember().getUserName() != > 'Anonymous User': > > self.portal_membership.getAuthenticatedMember().setProperties(setConnect=sel > f.ZopeTime()) > member= [] > members = self.portal_membership.listMembers() > for user in members: > if user.getProperty('is_connect') == 1: > if > (self.ZopeTime().timeTime()-user.getProperty('setConnect').timeTime()) < > user.getProperty('idle'): > mb=self.portal_memberdata.wrapUser(user) > member.append(mb) > return member > > cr�� une external methode donnez lui le nom : listMembers et en module et > install name listMembers > > 3) Modifier les scripts logged_in dans cps_default et ajout� la ligne > suivante: > connect python: member.setProperties(is_connect=1); > timeconnect python: member.setProperties(setConnect=here.ZopeTime()); > a chaque fois que vous voyez first_time > > ajouter dans logout (se trouvant dans portal_skin/control) la ligne > context.portal_membership.getAuthenticatedMember().setProperties(is_connect= > 0) > > 4) Enfin vous pouvez creer ajouter une box : > <metal:block define-macro="basebox_whoonline"> > <div metal:define-macro="portlet" > tal:omit-tag="" class="box"> > <div class="box"> > <div class="body" > tal:define=" > who_online here/listMembers | nothing; > view_more python:test(len(who_online)>5,1,0);"> > <div class="content odd"> > <div class="title2">Qui est en Ligne ?</div> > <hr class="netscape4"> > <ul> > > <li tal:condition="not: who_online" >Aucun Membre En > Ligne</li> > <span tal:condition="who_online"> > <li>membre(s) connect�(s) :<span > tal:content="python: len(who_online)">0</span></li> > </span> > > <ul> > <li tal:condition="who_online" > tal:repeat="member python: who_online[:5]"> > <span tal:define="member_id > member/getUserName; > member_home > python:container.portal_membership.getHomeUrl(member_id); > > "> > <a href="#" tal:condition="member_home" > tal:attributes="href > member_home" > > tal:content="member_id">id</a> > > > <span tal:condition="not: member_home" > tal:content="member_id">id > </span> > > </span> > </li> > </ul> > </ul> > > <div class="" tal:condition="view_more"> > <a href="#" tal:attributes="href > string:${here/portal_url}/members_online;"> > <span i18n:translate="">Voir les autres Membres en > ligne</span>... > </a> > </div> > > </div> > </div> > </div> > </div> > > </metal:block> > > 5) Enfin cr�er une page template nomme members_online avec le code suivant > qui fera un recapitulatif detaill� des personnes connect�es > <metal:html> > <metal:body use-macro="here/main_template/macros/master"> > > <div metal:fill-slot="main" > tal:define="who_online here/listMembers | nothing;"> > > > > <table border=0 cellspacing="1"> > <tbody> > <tr bgcolor=#DEE7EC> > <td>Membre</td> > <td>eMail</td> > <td>derni�re connexion</td> > <td>en ligne depuis</td> > <td> Derni�re activit�e </td> > <tr> > > <div> > > <metal:block tal:repeat="member python: who_online[:5]"> > > <span tal:define="getUserName member/getUserName"> > > <tr tal:condition="python:not(len(getUserName)==0)"> > <td> > <span tal:content="member/getUserName"> member > id</span> > </td> > <td><a tal:attributes="href > string:mailto:${member/email}"> > <span tal:content="member/email"> email</span></a> > </td> > <td><span tal:define="time python: > member.login_time.strftime('%X %x') " > tal:content="time">time</span> > </td> > <td> > <span tal:define="time python: > here.ZopeTime().timeTime()-member.login_time.timeTime(); > time python: int(time)/60" > tal:content="time"> en ligne</span> min > </td> > <td> > <span tal:define="time python: > member.setConnect.strftime('%X %x'); > " > tal:content="time"> en ligne</span> > </td> > > </tr> > > </span> > > </metal:block> > </div> > > </tbody> > </table> > > <br/> > > > > </div> > > </metal:body> > </metal:html> > > Jonathan Briffaut > > _______________________________________________ > cps-users-fr > Adresse de la liste : [email protected] > Gestion de l'abonnement : > <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr> _______________________________________________ cps-users-fr Adresse de la liste : [email protected] Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
