http://www.mediawiki.org/wiki/Special:Code/MediaWiki/65294
Revision: 65294 Author: tstarling Date: 2010-04-20 10:20:06 +0000 (Tue, 20 Apr 2010) Log Message: ----------- Active task force list as requested by Eugene, see http://strategy.wikimedia.org/wiki/Proposal:Activity_bot_for_strategy_proposals,_task_forces Added Paths: ----------- trunk/extensions/StrategyWiki/ trunk/extensions/StrategyWiki/ActiveTaskForces/ trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php trunk/extensions/StrategyWiki/README Added: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php =================================================================== --- trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php (rev 0) +++ trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php 2010-04-20 10:20:06 UTC (rev 65294) @@ -0,0 +1,7 @@ +<?php + +$messages = array(); +$messages['en'] = array( + 'activetaskforces' => 'Active task forces', + 'active-task-forces-intro' => 'Number of edits to task force pages in the last $1 days.', +); Property changes on: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php =================================================================== --- trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php (rev 0) +++ trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php 2010-04-20 10:20:06 UTC (rev 65294) @@ -0,0 +1,20 @@ +<?php + +/** + * Period for edit counts, in seconds + */ +$wgActiveTaskForcesPeriod = 7 * 86400; + + +/* Registration */ +$wgHooks['wgQueryPages'][] = 'wfActiveTaskForcesRegister'; +$wgSpecialPages['ActiveTaskForces'] = 'ActiveTaskForcesSP'; +$wgExtensionMessagesFiles['ActiveTaskForces'] = dirname( __FILE__ ) .'/ActiveTaskForces.i18n.php'; +$wgAutoloadClasses['ActiveTaskForcesSP'] + = $wgAutoloadClasses['ActiveTaskForcesQP'] + = dirname( __FILE__ ) .'/ActiveTaskForces_body.php'; + +function wfActiveTaskForcesRegister( &$pages ) { + $pages[] = array( 'ActiveTaskForcesQP', 'ActiveTaskForces' ); + return true; +} Property changes on: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php =================================================================== --- trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php (rev 0) +++ trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php 2010-04-20 10:20:06 UTC (rev 65294) @@ -0,0 +1,76 @@ +<?php + +class ActiveTaskForcesSP extends SpecialPage { + function __construct() { + parent::__construct( 'ActiveTaskForces' ); + } + + function execute() { + global $wgOut, $wgLang, $wgActiveTaskForcesPeriod; + $this->setHeaders(); + $wgOut->addWikiMsg( 'active-task-forces-intro', + $wgLang->formatNum( round( $wgActiveTaskForcesPeriod / 86400, 1 ) ) ); + $qp = new ActiveTaskForcesQP; + list( $limit, $offset ) = wfCheckLimits(); + $qp->doQuery( $offset, $limit ); + } +} + +class ActiveTaskForcesQP extends QueryPage { + function getName() { + return 'ActiveTaskForces'; + } + + function isExpensive() { + return true; + } + + function isSyndicated() { + return false; + } + + function getSQL() { + global $wgActiveTaskForcesPeriod; + + $dbr = wfGetDB( DB_SLAVE ); + $revisionTable = $dbr->tableName( 'revision' ); + $pageTable = $dbr->tableName( 'page' ); + $start = time() - $wgActiveTaskForcesPeriod; + $encPeriodStart = $dbr->addQuotes( $dbr->timestamp( $start ) ); + + $sql = <<<SQL + SELECT + 'ActiveTaskForces' AS type, + page_namespace AS namespace, + page_title AS title, + COUNT(*) AS value + FROM $revisionTable + JOIN $pageTable ON page_id = rev_page + WHERE + page_namespace = 0 AND + page_title LIKE 'Task_force/%' AND + rev_timestamp > $encPeriodStart + GROUP BY page_namespace, page_title +SQL; + $sql = strtr( $sql, "\r\n\t", ' ' ); + return $sql; + } + + function formatResult( $skin, $result ) { + global $wgContLang, $wgLang; + + $title = Title::makeTitle( $result->namespace, $result->title ); + $text = $wgContLang->convert( $title->getPrefixedText() ); + $pageLink = $skin->linkKnown( $title, $text ); + + $numberLink = $skin->linkKnown( + $title, + wfMsgExt( 'nrevisions', array( 'parsemag', 'escape' ), + $wgLang->formatNum( $result->value ), + array(), + array( 'action' => 'history' ) + ) ); + return wfSpecialList( $pageLink, $numberLink ); + } +} + Property changes on: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/extensions/StrategyWiki/README =================================================================== --- trunk/extensions/StrategyWiki/README (rev 0) +++ trunk/extensions/StrategyWiki/README 2010-04-20 10:20:06 UTC (rev 65294) @@ -0,0 +1 @@ +Extensions for strategy.wikimedia.org _______________________________________________ MediaWiki-CVS mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
