This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
MatritumCantat_Web/www/administrator/components/com_statistics/admin.statistics.php

215 lines
6.4 KiB
PHP
Raw Permalink Normal View History

<?php
/**
* @version $Id: admin.statistics.php 10002 2008-02-08 10:56:57Z willebil $
* @package Joomla
* @subpackage Statistics
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
require_once( $mainframe->getPath( 'admin_html' ) );
switch ($task) {
case 'searches':
showSearches( $option, $task );
break;
case 'searchesresults':
showSearches( $option, $task, 1 );
break;
case 'pageimp':
showPageImpressions( $option, $task );
break;
default:
showSummary( $option, $task );
break;
}
function showSummary( $option, $task ) {
global $database, $mainframe;
// get sort field and check against allowable field names
$field = strtolower( mosGetParam( $_REQUEST, 'field', '' ) );
if (!in_array( $field, array( 'agent', 'hits' ) )) {
$field = '';
}
// get field ordering or set the default field to order
$order = strtolower( mosGetParam( $_REQUEST, 'order', 'asc' ) );
if ($order != 'asc' && $order != 'desc' && $order != 'none') {
$order = 'asc';
} else if ($order == 'none') {
$field = 'agent';
$order = 'asc';
}
// browser stats
$order_by = '';
$sorts = array();
$tab = mosGetParam( $_REQUEST, 'tab', 'tab1' );
$sort_base = "index2.php?option=$option&task=$task";
switch ($field) {
case 'hits':
$order_by = "hits $order";
$sorts['b_agent'] = mosHTML::sortIcon( "$sort_base&tab=tab1", "agent" );
$sorts['b_hits'] = mosHTML::sortIcon( "$sort_base&tab=tab1", "hits", $order );
$sorts['o_agent'] = mosHTML::sortIcon( "$sort_base&tab=tab2", "agent" );
$sorts['o_hits'] = mosHTML::sortIcon( "$sort_base&tab=tab2", "hits", $order );
$sorts['d_agent'] = mosHTML::sortIcon( "$sort_base&tab=tab3", "agent" );
$sorts['d_hits'] = mosHTML::sortIcon( "$sort_base&tab=tab3", "hits", $order );
break;
case 'agent':
default:
$order_by = "agent $order";
$sorts['b_agent'] = mosHTML::sortIcon( "$sort_base&tab=tab1", "agent", $order );
$sorts['b_hits'] = mosHTML::sortIcon( "$sort_base&tab=tab1", "hits" );
$sorts['o_agent'] = mosHTML::sortIcon( "$sort_base&tab=tab2", "agent", $order );
$sorts['o_hits'] = mosHTML::sortIcon( "$sort_base&tab=tab2", "hits" );
$sorts['d_agent'] = mosHTML::sortIcon( "$sort_base&tab=tab3", "agent", $order );
$sorts['d_hits'] = mosHTML::sortIcon( "$sort_base&tab=tab3", "hits" );
break;
}
$query = "SELECT *"
. "\n FROM #__stats_agents"
. "\n WHERE type = 0"
. "\n ORDER BY $order_by"
;
$database->setQuery( $query );
$browsers = $database->loadObjectList();
$query = "SELECT SUM( hits ) AS totalhits, MAX( hits ) AS maxhits"
. "\n FROM #__stats_agents"
. "\n WHERE type = 0"
;
$database->setQuery( $query );
$bstats = null;
$database->loadObject( $bstats );
// platform statistics
$query = "SELECT *"
. "\n FROM #__stats_agents"
. "\n WHERE type = 1"
. "\n ORDER BY hits DESC"
;
$database->setQuery( $query );
$platforms = $database->loadObjectList();
$query = "SELECT SUM( hits ) AS totalhits, MAX( hits ) AS maxhits"
. "\n FROM #__stats_agents"
. "\n WHERE type = 1"
;
$database->setQuery( $query );
$pstats = null;
$database->loadObject( $pstats );
// domain statistics
$query = "SELECT *"
. "\n FROM #__stats_agents"
. "\n WHERE type = 2"
. "\n ORDER BY hits DESC"
;
$database->setQuery( $query );
$tldomains = $database->loadObjectList();
$query = "SELECT SUM( hits ) AS totalhits, MAX( hits ) AS maxhits"
. "\n FROM #__stats_agents"
. "\n WHERE type = 2"
;
$database->setQuery( $query );
$dstats = null;
$database->loadObject( $dstats );
HTML_statistics::show( $browsers, $platforms, $tldomains, $bstats, $pstats, $dstats, $sorts, $option );
}
function showPageImpressions( $option, $task ) {
global $database, $mainframe, $mosConfig_list_limit;
$query = "SELECT COUNT( id )"
. "\n FROM #__content"
;
$database->setQuery($query);
$total = $database->loadResult();
$limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $mosConfig_list_limit );
$limitstart = $mainframe->getUserStateFromRequest( "view{$option}{$task}limitstart", 'limitstart', 0 );
require_once( $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php' );
$pageNav = new mosPageNav( $total, $limitstart, $limit );
$query = "SELECT id, title, created, hits"
. "\n FROM #__content"
. "\n ORDER BY hits DESC"
;
$database->setQuery($query, $pageNav->limitstart, $pageNav->limit);
$rows = $database->loadObjectList();
HTML_statistics::pageImpressions( $rows, $pageNav, $option, $task );
}
function showSearches( $option, $task, $showResults=null ) {
global $database, $mainframe, $mosConfig_list_limit;
global $_MAMBOTS;
$limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $mosConfig_list_limit );
$limitstart = $mainframe->getUserStateFromRequest( "view{$option}{$task}limitstart", 'limitstart', 0 );
// get the total number of records
$query = "SELECT COUNT(*)"
. "\n FROM #__core_log_searches"
;
$database->setQuery( $query );
$total = $database->loadResult();
require_once( $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php' );
$pageNav = new mosPageNav( $total, $limitstart, $limit );
$query = "SELECT *"
. "\n FROM #__core_log_searches"
. "\n ORDER BY hits DESC"
;
$database->setQuery( $query, $pageNav->limitstart, $pageNav->limit );
$rows = $database->loadObjectList();
if ($database->getErrorNum()) {
echo $database->stderr();
return false;
}
$_MAMBOTS->loadBotGroup( 'search' );
$total = count($rows);
for ($i=0, $n = $total; $i < $n; $i++) {
// determine if number of results for search item should be calculated
// by default it is `off` as it is highly query intensive
if ( $showResults ) {
$results = $_MAMBOTS->trigger( 'onSearch', array( $rows[$i]->search_term ) );
$count = 0;
$total = count( $results );
for ($j = 0, $n2 = $total; $j < $n2; $j++) {
$count += count( $results[$j] );
}
$rows[$i]->returns = $count;
} else {
$rows[$i]->returns = null;
}
}
HTML_statistics::showSearches( $rows, $pageNav, $option, $task, $showResults );
}
?>