*/
use MediaWiki\MediaWikiServices;
+use Wikimedia\Rdbms\DatabaseDomain;
/**
* Helper tools for dealing with other locally-hosted wikis.
$path .= '?' . $urlParts['query'];
}
- $canonicalServer = isset( $urlParts['scheme'] ) ? $urlParts['scheme'] : 'http';
+ $canonicalServer = $urlParts['scheme'] ?? 'http';
$canonicalServer .= '://' . $urlParts['host'];
return new WikiReference( $canonicalServer, $path );
*
* @param string $wikiID Wiki'd id (generally database name)
* @param string $user User name (must be normalised before calling this function!)
- * @param string $text Link's text; optional, default to "User:$user"
+ * @param string|null $text Link's text; optional, default to "User:$user"
* @return string HTML link or false if the wiki was not found
*/
public static function foreignUserLink( $wikiID, $user, $text = null ) {
*
* @param string $wikiID Wiki'd id (generally database name)
* @param string $page Page name (must be normalised before calling this function!)
- * @param string $text Link's text; optional, default to $page
+ * @param string|null $text Link's text; optional, default to $page
* @return string|false HTML link or false if the wiki was not found
*/
public static function makeForeignLink( $wikiID, $page, $text = null ) {
return false;
}
+
+ /**
+ * Get the wiki ID of a database domain
+ *
+ * This is like DatabaseDomain::getId() without encoding (for legacy reasons)
+ *
+ * @param string|DatabaseDomain $domain
+ * @return string
+ */
+ public static function getWikiIdFromDomain( $domain ) {
+ if ( !( $domain instanceof DatabaseDomain ) ) {
+ $domain = DatabaseDomain::newFromId( $domain );
+ }
+
+ return strlen( $domain->getTablePrefix() )
+ ? "{$domain->getDatabase()}-{$domain->getTablePrefix()}"
+ : $domain->getDatabase();
+ }
}