Gov.php: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Sysop (Diskussion | Beiträge) (Created page with "<source lang='php'> <?php require_once('HttpClient.class.php'); $wgExtensionFunctions[] = "wfGovExtension"; function wfGovExtension() { global $wgParser; $wgParser->setHook( "gov", "completeGovTable" ); } function completeGovTable( $text, $args, $parser ) { global $wgLanguageCode,$wgParser; $objectId = $parser->recursiveTagParse($text); if( $objectId == '' ) { return '<p>Für diesen Artikel wurde noch keine GO...") |
Sysop (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 48: | Zeile 48: | ||
?> | ?> | ||
</source> | </source> | ||
[[Category:GOV]] |
Aktuelle Version vom 6. März 2025, 15:00 Uhr
<?php
require_once('HttpClient.class.php');
$wgExtensionFunctions[] = "wfGovExtension";
function wfGovExtension() {
global $wgParser;
$wgParser->setHook( "gov", "completeGovTable" );
}
function completeGovTable( $text, $args, $parser ) {
global $wgLanguageCode,$wgParser;
$objectId = $parser->recursiveTagParse($text);
if( $objectId == '' ) {
return '<p>Für diesen Artikel wurde noch keine GOV-Kennung eingetragen.</p>';
}
$client = new HttpClient('gov.genealogy.net');
$client->accept_language=$wgLanguageCode;
if (!$client->get('/item/wikihtml/'.$objectId)) {
return '<p>Request failed!</p>';
} else {
$content = $client->getContent();
# Links auf Objekte im GOV durch Links im GenWiki ersetzen
$content = preg_replace('/href="\//','href="http://gov.genealogy.net/',$content);
$content = preg_replace('/src="\//','src="http://gov.genealogy.net/',$content);
$content = preg_replace('/http:\/\/gov.genealogy.net\/item\/show\//','/GOV:',$content);
# den letzten verbleibenden externen GOV-Link als extern markieren
$content = preg_replace("/href=.\/GOV:$objectId/"," class=\"external free\" href=\"http://gov.genealogy.net/item/show/$objectId",$content);
# Tabelle mit untergeordneten Objekten hübsch und sortierbar machen
$content = preg_replace('/<table>/','<table class="wikitable sortable">',$content);
# Nachsehen, ob es die Umleitung im GOV-Namensraum auf diese Seite schon gibt.
$redirectTitle = Title::newFromText($objectId,NS_GOV);
if( $redirectTitle!=NULL && !$redirectTitle->exists() ) {
$content .= $wgParser->parse("[[GOV:$objectId|Umleitung fehlt]]",$wgParser->mTitle, $wgParser->mOptions, false, false)->getText();
}
return $content;
}
}
?>