X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSpecialStatistics.php;h=a29811da98cce235fcd06b24cd1f19e5aeab51fd;hb=5137bd84c31e39e5e26b2a25345eb0bcc7c48497;hp=42ba7a0f8f34ccac6fb6a2aa692e6f2498d5bda0;hpb=454629b34281f293157cf986a7d33026fd3149d9;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialStatistics.php b/includes/SpecialStatistics.php index 42ba7a0f8f..a29811da98 100644 --- a/includes/SpecialStatistics.php +++ b/includes/SpecialStatistics.php @@ -1,65 +1,39 @@ getVal( 'action' ); - - $dbr =& wfGetDB( DB_SLAVE ); - extract( $dbr->tableNames( 'page', 'site_stats', 'user', 'user_groups' ) ); - - $row = $dbr->selectRow( 'site_stats', '*', false, $fname ); - $views = $row->ss_total_views; - $edits = $row->ss_total_edits; - $good = $row->ss_good_articles; - $images = $row->ss_images; - - # This code is somewhat schema-agnostic, because I'm changing it in a minor release -- TS - if ( isset( $row->ss_total_pages ) && $row->ss_total_pages == -1 ) { - # Update schema - $u = new SiteStatsUpdate( 0, 0, 0 ); - $u->doUpdate(); - $row = $dbr->selectRow( 'site_stats', '*', false, $fname ); - } - - if ( isset( $row->ss_total_pages ) ) { - $total = $row->ss_total_pages; - } else { - $sql = "SELECT COUNT(page_namespace) AS total FROM $page"; - $res = $dbr->query( $sql, $fname ); - $pageRow = $dbr->fetchObject( $res ); - $total = $pageRow->total; - } + $dbr = wfGetDB( DB_SLAVE ); - if ( isset( $row->ss_users ) ) { - $users = $row->ss_users; - } else { - $sql = "SELECT MAX(user_id) AS total FROM $user"; - $res = $dbr->query( $sql, $fname ); - $userRow = $dbr->fetchObject( $res ); - $users = $userRow->total; - } + $views = SiteStats::views(); + $edits = SiteStats::edits(); + $good = SiteStats::articles(); + $images = SiteStats::images(); + $total = SiteStats::pages(); + $users = SiteStats::users(); + $admins = SiteStats::admins(); + $numJobs = SiteStats::jobs(); - $admins = $dbr->selectField( 'user_groups', 'COUNT(*)', array( 'ug_group' => 'sysop' ), $fname ); - $numJobs = $dbr->selectField( 'job', 'COUNT(*)', '', $fname ); - - if ($action == 'raw') { + if( $wgRequest->getVal( 'action' ) == 'raw' ) { $wgOut->disable(); header( 'Pragma: nocache' ); echo "total=$total;good=$good;views=$views;edits=$edits;users=$users;admins=$admins;images=$images;jobs=$numJobs\n"; return; } else { - $text = '==' . wfMsg( 'sitestats' ) . "==\n" ; - $text .= wfMsg( 'sitestatstext', + $text = "__NOTOC__\n"; + $text .= '==' . wfMsg( 'sitestats' ) . "==\n"; + $text .= wfMsgExt( 'sitestatstext', array( 'parsemag' ), $wgLang->formatNum( $total ), $wgLang->formatNum( $good ), $wgLang->formatNum( $views ), @@ -68,36 +42,52 @@ function wfSpecialStatistics() { $wgLang->formatNum( sprintf( '%.2f', $edits ? $views / $edits : 0 ) ), $wgLang->formatNum( $numJobs ), $wgLang->formatNum( $images ) - ); - - $text .= "\n==" . wfMsg( 'userstats' ) . "==\n"; + )."\n"; - $text .= wfMsg( 'userstatstext', + $text .= "==" . wfMsg( 'userstats' ) . "==\n"; + $text .= wfMsgExt( 'userstatstext', array ( 'parsemag' ), $wgLang->formatNum( $users ), $wgLang->formatNum( $admins ), - '[[' . wfMsgForContent( 'administrators' ) . ']]', - // should logically be after #admins, damn backwards compatability! - $wgLang->formatNum( sprintf( '%.2f', $admins / $users * 100 ) ) - ); + '[[' . wfMsgForContent( 'grouppage-sysop' ) . ']]', # TODO somehow remove, kept for backwards compatibility + $wgLang->formatNum( sprintf( '%.2f', $admins / $users * 100 ) ), + User::makeGroupLinkWiki( 'sysop' ) + )."\n"; - $wgOut->addWikiText( $text ); - - global $wgDisableCounters, $wgUser, $wgLang; - if( !$wgDisableCounters ) { - $res = $dbr->query( "SELECT page_namespace, page_title, page_counter FROM {$page} WHERE page_is_redirect = 0 ORDER BY page_counter DESC LIMIT 0,10", __METHOD__ ); - if( $res ) { - $wgOut->addHtml( '

' . wfMsgHtml( 'statistics-mostpopular' ) . '

' ); - $skin =& $wgUser->getSkin(); - $wgOut->addHtml( '
    ' ); - while( $row = $dbr->fetchObject( $res ) ) { - $link = $skin->makeKnownLinkObj( Title::makeTitleSafe( $row->page_namespace, $row->page_title ) ); - $wgOut->addHtml( '
  1. ' . $link . ' [' . $wgLang->formatNum( $row->page_counter ) . ']
  2. ' ); + global $wgDisableCounters, $wgMiserMode, $wgUser, $wgLang, $wgContLang; + if( !$wgDisableCounters && !$wgMiserMode ) { + $res = $dbr->select( + 'page', + array( + 'page_namespace', + 'page_title', + 'page_counter', + ), + array( + 'page_is_redirect' => 0, + 'page_counter > 0', + ), + __METHOD__, + array( + 'ORDER BY' => 'page_counter DESC', + 'LIMIT' => 10, + ) + ); + if( $res->numRows() > 0 ) { + $text .= "==" . wfMsg( 'statistics-mostpopular' ) . "==\n"; + while( $row = $res->fetchObject() ) { + $title = Title::makeTitleSafe( $row->page_namespace, $row->page_title ); + if( $title instanceof Title ) + $text .= '* [[:' . $title->getPrefixedText() . ']] (' . $wgLang->formatNum( $row->page_counter ) . ")\n"; } - $wgOut->addHtml( '
' ); - $dbr->freeResult( $res ); + $res->free(); } } + $footer = wfMsg( 'statistics-footer' ); + if( !wfEmptyMsg( 'statistics-footer', $footer ) && $footer != '' ) + $text .= "\n" . $footer; + + $wgOut->addWikiText( $text ); } -} -?> + +} \ No newline at end of file