Show
Ignore:
Timestamp:
06/29/08 19:57:14 (5 months ago)
Author:
llaumgui
Message:

Ajout des fetch stats et online

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ez_publish/ezfluxbb/trunk/classes/ezfluxbb.php

    r195 r200  
    2525 * Fonctions indépendantes de la version de FluxBB. 
    2626 *  
     27 * @TODO Sans avoir vu la sous la jupe de la 1.3, le fait qu'une fonction soit dans eZFluxBB ou dans eZFluxBB12 
     28 * est limite arbitraire... 
     29 *  
    2730 * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
    2831 * @version 1.0 
     
    4548        /** 
    4649         * Permet d'instancier l'objet eZFluxBB. 
    47          * 
     50         * Bon, j'ai viré les strtolower car j'aime qu'on respecte la case ! 
     51         *  
     52         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     53         * @since 1.0 
     54         *  
    4855         * @return object eZFluxBB 
    4956         */ 
     
    5461                $version                = $eZFluxBBIni->variable( "FluxBBInfo", "Version" ); 
    5562                $classVersion   = 'eZFluxBB' . str_replace( '.', '', $version ); 
    56                  
    57                 $class                  = strtolower( get_class( $impl ) );  
     63                $class                  = get_class( $impl ); 
     64 
    5865                if ( $class != $classVersion) 
    5966                { 
     
    6774        /** 
    6875         * Récupération de la configuration FluxBB 
    69          * 
     76         *  
     77         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     78         * @since 1.0 
    7079         */ 
    7180        private function getConfig( &$config ) 
     
    96105        /** 
    97106         * Récupération des informations sur l'utilisateurs courant 
    98          * 
     107         *  
     108         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     109         * @since 1.0 
     110         *  
     111         * @return array 
    99112         */ 
    100113        public function getCurrentUserInfo() 
     
    107120                return $this->fluxBBUser; 
    108121        } 
    109          
    110          
    111          
    112          
    113          
    114          
    115          
    116          
     122 
     123 
     124 
     125        /** 
     126         * Récupération des informations sur l'utilisateurs courant 
     127         *  
     128         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     129         * @since 1.0 
     130         *  
     131         * @return array 
     132         */ 
     133        public function getStats() 
     134        { 
     135                $db             = eZFluxBBDB::instance(); 
     136                /* Requête inbriquée pour récupérer toutes les stats */ 
     137                $stats          = $db->arrayQuery(      'SELECT SUM(f.num_topics) as num_topics, ' . 
     138                                                                                'SUM(f.num_posts) as num_posts, ' . 
     139                                                                                '(SELECT COUNT(id)-1 FROM '.$this->fluxBBConfig['db_prefix'].'users) as num_members ' .  
     140                                                                                'FROM '.$this->fluxBBConfig['db_prefix'].'forums f'); 
     141                /* Infos sur le dernier membre */ 
     142                $lastMember     = $db->arrayQuery(      'SELECT id, username FROM '.$this->fluxBBConfig['db_prefix'].'users     ORDER BY registered DESC LIMIT 1'); 
     143 
     144                $stats          = array_merge( $stats[0], array( 'last_member' => $lastMember[0] )); 
     145 
     146                return $stats; 
     147        } 
     148 
     149 
     150 
     151        /** 
     152         * Récupération des informations sur les membres en ligne 
     153         *  
     154         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     155         * @since 1.0 
     156         *  
     157         * @return array 
     158         */ 
     159        public function getOnline() 
     160        { 
     161                $db             = eZFluxBBDB::instance(); 
     162                 
     163                $getOnline      = array(        'total'         => 0, 
     164                                                                'guests'        => 0, 
     165                                                                'users'         => 0, 
     166                                                                'list'          => array() 
     167                                                        ); 
     168                 
     169                $online         = $db->arrayQuery(      'SELECT user_id, ident ' . 
     170                                                                                'FROM '.$this->fluxBBConfig['db_prefix'].'online ' . 
     171                                                                                'WHERE idle=0 ' . 
     172                                                                                'ORDER BY ident'); 
     173                $getOnline['total']             = count($online); 
     174                 
     175                foreach( $online as $user ) 
     176                { 
     177                        if ( $user['user_id'] > 1) 
     178                        { 
     179                                $getOnline['list'][]            = $user; 
     180                                $getOnline['users']++; 
     181                        } 
     182                        else 
     183                        { 
     184                                $getOnline['guests']++; 
     185                        } 
     186                } 
     187 
     188                return $getOnline; 
     189        } 
    117190 
    118191}       //EOC