[ Index ]
 

Code source de Joomla 1.0.13

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/administrator/components/com_statistics/ -> admin.statistics.php (source)

   1  <?php
   2  /**
   3  * @version $Id: admin.statistics.php 4502 2006-08-13 22:45:33Z eddiea $
   4  * @package Joomla
   5  * @subpackage Statistics
   6  * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
   7  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
   8  * Joomla! is free software. This version may have been modified pursuant
   9  * to the GNU General Public License, and as distributed it includes or
  10  * is derivative of works licensed under the GNU General Public License or
  11  * other free or open source software licenses.
  12  * See COPYRIGHT.php for copyright notices and details.
  13  */
  14  
  15  // no direct access
  16  defined( '_VALID_MOS' ) or die( 'Restricted access' );
  17  require_once( $mainframe->getPath( 'admin_html' ) );
  18  
  19  switch ($task) {
  20      case 'searches':
  21          showSearches( $option, $task );
  22          break;
  23  
  24      case 'searchesresults':
  25          showSearches( $option, $task, 1 );
  26          break;
  27      
  28      case 'pageimp':
  29          showPageImpressions( $option, $task );
  30          break;
  31  
  32      default:
  33          showSummary( $option, $task );
  34          break;
  35  }
  36  
  37  function showSummary( $option, $task ) {
  38      global $database, $mainframe;
  39  
  40      // get sort field and check against allowable field names
  41      $field = strtolower( mosGetParam( $_REQUEST, 'field', '' ) );
  42      if (!in_array( $field, array( 'agent', 'hits' ) )) {
  43          $field = '';
  44      }
  45  
  46      // get field ordering or set the default field to order
  47      $order = strtolower( mosGetParam( $_REQUEST, 'order', 'asc' ) );
  48      if ($order != 'asc' && $order != 'desc' && $order != 'none') {
  49          $order = 'asc';
  50      } else if ($order == 'none') {
  51          $field = 'agent';
  52          $order = 'asc';
  53      }
  54  
  55      // browser stats
  56      $order_by = '';
  57      $sorts = array();
  58      $tab = mosGetParam( $_REQUEST, 'tab', 'tab1' );
  59      $sort_base = "index2.php?option=$option&task=$task";
  60  
  61      switch ($field) {
  62          case 'hits':
  63              $order_by = "hits $order";
  64              $sorts['b_agent']     = mosHTML::sortIcon( "$sort_base&tab=tab1", "agent" );
  65              $sorts['b_hits']     = mosHTML::sortIcon( "$sort_base&tab=tab1", "hits", $order );
  66              $sorts['o_agent']     = mosHTML::sortIcon( "$sort_base&tab=tab2", "agent" );
  67              $sorts['o_hits']     = mosHTML::sortIcon( "$sort_base&tab=tab2", "hits", $order );
  68              $sorts['d_agent']     = mosHTML::sortIcon( "$sort_base&tab=tab3", "agent" );
  69              $sorts['d_hits']     = mosHTML::sortIcon( "$sort_base&tab=tab3", "hits", $order );
  70              break;
  71  
  72          case 'agent':
  73          default:
  74              $order_by = "agent $order";
  75              $sorts['b_agent']     = mosHTML::sortIcon( "$sort_base&tab=tab1", "agent", $order );
  76              $sorts['b_hits']     = mosHTML::sortIcon( "$sort_base&tab=tab1", "hits" );
  77              $sorts['o_agent']     = mosHTML::sortIcon( "$sort_base&tab=tab2", "agent", $order );
  78              $sorts['o_hits']     = mosHTML::sortIcon( "$sort_base&tab=tab2", "hits" );
  79              $sorts['d_agent']     = mosHTML::sortIcon( "$sort_base&tab=tab3", "agent", $order );
  80              $sorts['d_hits']     = mosHTML::sortIcon( "$sort_base&tab=tab3", "hits" );
  81              break;
  82      }
  83  
  84      $query = "SELECT *"
  85      . "\n FROM #__stats_agents"
  86      . "\n WHERE type = 0"
  87      . "\n ORDER BY $order_by"
  88      ;
  89      $database->setQuery( $query );
  90      $browsers = $database->loadObjectList();
  91  
  92      $query = "SELECT SUM( hits ) AS totalhits, MAX( hits ) AS maxhits"
  93      . "\n FROM #__stats_agents"
  94      . "\n WHERE type = 0"
  95      ;
  96      $database->setQuery( $query );
  97      $bstats = null;
  98      $database->loadObject( $bstats );
  99  
 100      // platform statistics
 101      $query = "SELECT *"
 102      . "\n FROM #__stats_agents"
 103      . "\n WHERE type = 1"
 104      . "\n ORDER BY hits DESC"
 105      ;
 106      $database->setQuery( $query );
 107      $platforms = $database->loadObjectList();
 108  
 109      $query = "SELECT SUM( hits ) AS totalhits, MAX( hits ) AS maxhits"
 110      . "\n FROM #__stats_agents"
 111      . "\n WHERE type = 1"
 112      ;
 113      $database->setQuery( $query );
 114      $pstats = null;
 115      $database->loadObject( $pstats );
 116  
 117      // domain statistics
 118      $query = "SELECT *"
 119      . "\n FROM #__stats_agents"
 120      . "\n WHERE type = 2"
 121      . "\n ORDER BY hits DESC"
 122      ;
 123      $database->setQuery( $query );
 124      $tldomains = $database->loadObjectList();
 125  
 126      $query = "SELECT SUM( hits ) AS totalhits, MAX( hits ) AS maxhits"
 127      . "\n FROM #__stats_agents"
 128      . "\n WHERE type = 2"
 129      ;
 130      $database->setQuery( $query );
 131      $dstats = null;
 132      $database->loadObject( $dstats );
 133  
 134      HTML_statistics::show( $browsers, $platforms, $tldomains, $bstats, $pstats, $dstats, $sorts, $option );
 135  }
 136  
 137  function showPageImpressions( $option, $task ) {
 138      global $database, $mainframe, $mosConfig_list_limit;
 139  
 140      $query = "SELECT COUNT( id )"
 141      . "\n FROM #__content"
 142      ;
 143      $database->setQuery($query);
 144      $total = $database->loadResult();
 145  
 146      $limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $mosConfig_list_limit );
 147      $limitstart = $mainframe->getUserStateFromRequest( "view{$option}{$task}limitstart", 'limitstart', 0 );
 148  
 149      require_once( $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php' );
 150      $pageNav = new mosPageNav( $total, $limitstart, $limit  );
 151  
 152      $query = "SELECT id, title, created, hits"
 153      . "\n FROM #__content"
 154      . "\n ORDER BY hits DESC"
 155      ;
 156      $database->setQuery($query, $pageNav->limitstart, $pageNav->limit);
 157  
 158      $rows = $database->loadObjectList();
 159  
 160      HTML_statistics::pageImpressions( $rows, $pageNav, $option, $task );
 161  }
 162  
 163  function showSearches( $option, $task, $showResults=null ) {
 164      global $database, $mainframe, $mosConfig_list_limit;
 165      global $_MAMBOTS;
 166  
 167      $limit         = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $mosConfig_list_limit );
 168      $limitstart = $mainframe->getUserStateFromRequest( "view{$option}{$task}limitstart", 'limitstart', 0 );
 169  
 170      // get the total number of records
 171      $query = "SELECT COUNT(*)"
 172      . "\n FROM #__core_log_searches"
 173      ;
 174      $database->setQuery( $query );
 175      $total = $database->loadResult();
 176  
 177      require_once( $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php' );
 178      $pageNav = new mosPageNav( $total, $limitstart, $limit );
 179  
 180      $query = "SELECT *"
 181      . "\n FROM #__core_log_searches"
 182      . "\n ORDER BY hits DESC"
 183      ;
 184      $database->setQuery( $query, $pageNav->limitstart, $pageNav->limit );
 185  
 186      $rows = $database->loadObjectList();
 187      if ($database->getErrorNum()) {
 188          echo $database->stderr();
 189          return false;
 190      }
 191  
 192      $_MAMBOTS->loadBotGroup( 'search' );
 193  
 194      $total = count($rows);
 195      for ($i=0, $n = $total; $i < $n; $i++) {
 196          // determine if number of results for search item should be calculated
 197          // by default it is `off` as it is highly query intensive
 198          if ( $showResults ) {
 199              $results = $_MAMBOTS->trigger( 'onSearch', array( $rows[$i]->search_term ) );
 200      
 201              $count = 0;
 202              $total = count( $results );
 203              for ($j = 0, $n2 = $total; $j < $n2; $j++) {
 204                  $count += count( $results[$j] );
 205              }
 206      
 207              $rows[$i]->returns = $count;
 208          } else {
 209              $rows[$i]->returns = null;
 210          }
 211      }
 212  
 213      HTML_statistics::showSearches( $rows, $pageNav, $option, $task, $showResults );
 214  }
 215  ?>


Généré le : Wed Nov 21 14:43:32 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics