2017-01-12 2 views
4

Ich aktualisiere eine MediaWiki-Erweiterung, die alle Bilder in einer Kategorie (CategoryGallery) zeigt.Mediawiki php: Wie bekomme ich den Namen des Benutzers, der eine Datei hochgeladen hat?

Ich möchte den Namen des Benutzers, der das Bild hochgeladen hat und dann möglicherweise nach Benutzer filtern.

Ein Teil des Codes ist wie folgt aus:

// Capitalize the first letter in the category argument, convert spaces to _ 
$params['cat'] = str_replace (' ', '_', ucfirst($params['cat'])); 

// Retrieve category members from database 
$dbr = wfGetDB(DB_SLAVE); 
$res = $dbr->select('categorylinks', 'cl_from', 
array ('cl_to' => $params['cat'], 
          'cl_type' => 'file')); 
$ids = array(); 

foreach ($res as $row) { 
    $ids[] = $row->cl_from; 
} 

// Create the gallery 
$titles = Title::newFromIDs ($ids); 
$text = ''; 

foreach ($titles as $title) { 
    $titlePrefixedDBKey = $title->getPrefixedDBKey(); 
    $text .= $titlePrefixedDBKey; 
    $text .= "|**Username**:\n"; 
} 

$output = $parser->renderImageGallery($text, $params) 

Wie kann ich den Namen des Benutzers abrufen, den das Foto hochgeladen es in der Bildergalerie zu zeigen (wo ich Benutzername gestellt habe)?

+0

'$ title-> getFirstRevision() -> getUserText()' – Tgr

+0

Danke für Ihre Hilfe @Tgr! – user1084363

Antwort

0

Ihre $title Variable ist eine Title object. Sie sollten das nutzen können den Autor der letzten Revision zu erhalten:

$currentRevID = $title->getLatestRevID(); 
$revAuthors = $title->getAuthorsBetween($currentRevID, $currentRevID, 1, 'include_both'); //1=limit 
$authorName = $revAuthors[0]; 

Diese Funktion verwendet, die Autoren zwischen zwei Revisionen zurückkommt, aber wir geben nur die aktuelle Version, da sowohl die Min- und Max-Revision.

Beachten Sie, dass das Bearbeiten der Bildüberschrift als Revision gilt. Daher kann dieser Code den Namen eines Benutzers zurückgeben, der die Datei nicht hochgeladen hat. Wie wahrscheinlich das ist, hängt wahrscheinlich davon ab, wie dein Wiki benutzt wird.

+1

FWIW sowohl dieses als auch mein Code-Schnipsel oben ruhen auf der Annahme, dass der Autor der ersten Revision und der Uploader der Datei gleich ist, was unter exotischen Umständen nicht stimmen kann. Nicht etwas, worüber ich mir Sorgen machen würde, nur notieren. – Tgr

Verwandte Themen