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>

Répondre à