/** * Common function for databases that don't understand the MySQLish syntax of interwiki.sql. * * @return Status */ public function populateInterwikiTable() { $status = $this->getConnection(); if (!$status->isOK()) { return $status; } $this->db->selectDB($this->getVar('wgDBname')); if ($this->db->selectRow('interwiki', '*', [], __METHOD__)) { $status->warning('config-install-interwiki-exists'); return $status; } global $IP; MediaWiki\suppressWarnings(); $rows = file("{$IP}/maintenance/interwiki.list", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); MediaWiki\restoreWarnings(); $interwikis = []; if (!$rows) { return Status::newFatal('config-install-interwiki-list'); } foreach ($rows as $row) { $row = preg_replace('/^\\s*([^#]*?)\\s*(#.*)?$/', '\\1', $row); // strip comments - whee if ($row == "") { continue; } $row .= "|"; $interwikis[] = array_combine(['iw_prefix', 'iw_url', 'iw_local', 'iw_api', 'iw_wikiid'], explode('|', $row)); } $this->db->insert('interwiki', $interwikis, __METHOD__); return Status::newGood(); }