Ce n'est pas exactement ce que vous vouliez, mais ce pourrait être un bon début. C'est une page spéciale simple dont le seul but est d'afficher les noms de pages et le nombre d'auteurs.
$wgAutoloadClasses['SpecialPagesAuthors'] = $IP . '/additions.php';
$wgSpecialPages['PagesAuthors'] = 'SpecialPagesAuthors';
class SpecialPagesAuthors extends SpecialPage {
function __construct() {
parent::__construct('PagesAuthors');
}
Il s'agit simplement d'enregistrer la page.
function execute($par) {
global $wgOut;
$dbr = wfGetDB(DB_SLAVE);
$output = <<<WIKITEXT
{| class="wikitable"
! Page !! Authors
WIKITEXT;
Nous mettons tout dans une belle table.
$query_result = $dbr->select(
array('revision', 'page'),
array('rev_page', 'page_id', 'page_namespace', 'page_title',
'COUNT(DISTINCT(rev_user_text)) AS unique_authors'),
null,
__METHOD__,
array('GROUP BY' => 'rev_page', 'ORDER BY' => 'unique_authors DESC'),
array('page' => array('LEFT JOIN', 'page_id=rev_page'))
);
Ici, nous interroger la base de données pour les pages et le nombre d'auteurs (qui est essentiellement le nombre de noms d'utilisateurs uniques et adresses IP qui ont édité la page).
foreach($query_result as $row) {
$title = Title::newFromRow($row);
$page_title = $title->getPrefixedText();
$output .= <<<WIKITEXT
|-
| {$page_title} || {$row->unique_authors}
WIKITEXT;
}
$dbr->freeResult($query_result);
Ici, nous affichons le nom de la page et le nombre d'auteurs dans la table et libérons le résultat de la requête DB.
$output .= "|}";
$this->setHeaders();
$wgOut->addWikiText($output);
}
}
Où est mon deuxième tumbleweed ?! – Wikis