Changeset 200

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

Ajout des fetch stats et online

Location:
ez_publish/ezfluxbb/trunk
Files:
4 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 
  • ez_publish/ezfluxbb/trunk/classes/ezfluxbb12.php

    r194 r200  
    2525 * Fonctions dépendantes de ma la version de FluxBB. 
    2626 *  
    27  * @TODO : Comprendre les parties comentées 
     27 * @TODO : Comprendre les parties commantées ;-) 
    2828 * @TODO : Truc par défauts 
    2929 *  
     
    117117         
    118118         
    119         /** 
    120          * Enter description here... 
    121          *  
    122          * 
     119         
     120        /** 
     121         * Initialisation du l'utilisateur comme étant l'invité 
     122         * 
     123         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     124         * @author PunBB/FluxBB Team 
     125         * @since 1.0 
     126         *  
     127         * @param array &$fluxUser 
    123128         */ 
    124129        private function set_default_user( &$fluxUser ) 
  • ez_publish/ezfluxbb/trunk/classes/ezfluxbbfetchfonctions.php

    r199 r200  
    2323 * ###################### END LICENSE BLOCK #################### 
    2424 * 
    25  * Classes regroupant les différents fetche de l'extension 
     25 * Classes regroupant les différents fetche de l'extension 
    2626 *  
    2727 * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     
    5555         
    5656         
     57         
     58        /** 
     59         * Fonction fetch permettant de retourner les statistique sur la board. 
     60         * 
     61         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     62         * @since 1.0 
     63         *  
     64         * @return array 
     65         */ 
     66        function fetchStats() 
     67        { 
     68                $eZFluxBB               = eZFluxBB::instance(); 
     69                $stats                  = $eZFluxBB->getStats(); 
     70                 
     71                return array( 'result' => $stats ); 
     72        } 
     73         
     74 
     75         
     76        /** 
     77         * Fonction fetch permettant de retourner les statistique sur la board. 
     78         * 
     79         * @author Guillaume Kulakowski <guillaume_AT_llaumgui_DOT_com> 
     80         * @since 1.0 
     81         *  
     82         * @return array 
     83         */ 
     84        function fetchOnline() 
     85        { 
     86                $eZFluxBB               = eZFluxBB::instance(); 
     87                $online                 = $eZFluxBB->getOnline(); 
     88                 
     89                return array( 'result' => $online ); 
     90        } 
     91         
     92         
     93         
    5794        /** 
    5895         * XXX 
  • ez_publish/ezfluxbb/trunk/modules/ezfluxbb/function_definition.php

    r198 r200  
    4545 
    4646 
    47 $FunctionList['topics']                 = array( 
     47$FunctionList['stats']                  = array( 
     48        'name'                  => 'stats', 
     49        'operation_types'       => array( 'read' ), 
     50        'call_method'           => array( 
     51                'include_file'          => 'extension/ezfluxbb/classes/ezfluxbbfetchfonctions.php', 
     52                'class'                 => 'eZFluxBBFetchFonctions', 
     53                'method'                => 'fetchStats' 
     54        ), 
     55        'parameter_type'                => 'standard', 
     56        'parameters'            => array( ) 
     57); 
     58 
     59 
     60$FunctionList['online']                 = array( 
     61        'name'                  => 'online', 
     62        'operation_types'       => array( 'read' ), 
     63        'call_method'           => array( 
     64                'include_file'          => 'extension/ezfluxbb/classes/ezfluxbbfetchfonctions.php', 
     65                'class'                 => 'eZFluxBBFetchFonctions', 
     66                'method'                => 'fetchOnline' 
     67        ), 
     68        'parameter_type'                => 'standard', 
     69        'parameters'            => array( ) 
     70); 
     71 
     72 
     73/*$FunctionList['topics']               = array( 
    4874        'topics'                                => 'current_user', 
    4975        'operation_types'       => array( 'read' ), 
     
    6692                ), 
    6793        ) 
    68 ); 
     94);*/ 
    6995         
    7096 ?>