/**
* A query module to list all external URLs found on a given set of pages.
- *
- * @addtogroup API
+ *
+ * @ingroup API
*/
class ApiQueryExternalLinks extends ApiQueryBase {
}
public function execute() {
+ if ( $this->getPageSet()->getGoodTitleCount() == 0 )
+ return;
$this->addFields(array (
'el_from',
'el_to'
));
-
+
$this->addTables('externallinks');
$this->addWhereFld('el_from', array_keys($this->getPageSet()->getGoodTitles()));
$db = $this->getDB();
$res = $this->select(__METHOD__);
-
+
$data = array();
- $lastId = 0; // database has no ID 0
+ $lastId = 0; // database has no ID 0
while ($row = $db->fetchObject($res)) {
if ($lastId != $row->el_from) {
if($lastId != 0) {
}
$lastId = $row->el_from;
}
-
+
$entry = array();
ApiResult :: setContent($entry, $row->el_to);
$data[] = $entry;
$db->freeResult($res);
}
- private function addPageSubItems($pageId, $data) {
- $result = $this->getResult();
- $result->setIndexedTagName($data, 'el');
- $result->addValue(array ('query', 'pages', intval($pageId)),
- 'extlinks',
- $data);
- }
-
- protected function getDescription() {
+ public function getDescription() {
return 'Returns all external urls (not interwikies) from the given page(s)';
}
return __CLASS__ . ': $Id$';
}
}
-