Jump to content

Extension:Oberflächen-Anpasser

From mediawiki.org
This page is a translated version of the page Extension:SkinCustomiser and the translation is 98% complete.
MediaWiki-Erweiterungen
SkinCustomiser
Freigabestatus: stabil
Einbindung Benutzeroberfläche , MeinWiki , Hook
Beschreibung Passt bestehende Oberflächen an. Fügt Skripte und Meta-Daten kurz vor dem ‎</head>-Tag des Wikis ein.
Autor(en) WikiMANNia (WikiForMenDiskussion)
Letzte Version 2.0.1 (2024-05-02)
MediaWiki 1.25+
PHP 5.4+
Datenbankänderungen Nein
Lizenz GNU General Public License 2.0 oder neuer
Herunterladen

  • $wgSkinCustomiserHeadItems
  • $wgSkinCustomiserMetaItems
  • $wgSkinCustomiserDisplayBottom
  • $wgSkinCustomiserScripts

Die SkinCustomiser-Erweiterung passt die bestehenden Oberflächen für eine komplette Wiki-Familie an. Sie fügt Skripte und Metadaten direkt vor dem ‎</head>-Tag des Wikis ein und übersetzt einzelne Einträge in der Navigationsleiste .

Hintergrund

Oberflächen anpassen

MediaWiki-Oberflächen können jeweils in den MediaWiki:Cologneblue.css, MediaWiki:Modern.css, MediaWiki:Monobook.css, MediaWiki:Timeless.css, MediaWiki:Vector.css, MediaWiki:Mobile.css, MediaWiki:Common.css-Dateien angepasst werden. Wenn jedoch eine Wiki-Farm betrieben wird, ist es unpraktisch, diese Dateien in jedem Wiki dieser Farm separat einzurichten und zu pflegen.

Stattdessen können alle diese CSS-Anweisungen zentral in dieser Erweiterung gesammelt und global in alle Wikis der Wikifarm eingebunden werden.

Zur Anpassung gehören auch weitere Einträge über die Navigationsleiste , die zum einen zentral in einer Wikifarm verwaltet werden sollen und zum anderen auch in andere Sprachen übersetzt werden sollen.

Dies kann durch die Eingabe dieser Bezeichnungen und ihrer Übersetzungen in den i18n -Dateien dieser Erweiterung erfolgen.

Installation

  • Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens SkinCustomiser im Ordner extensions/ ablegen.
  • Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
    wfLoadExtension( 'SkinCustomiser' );
    
  • Konfiguriere nach Bedarf.
  • Yes Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.

Konfiguration

Im Gegensatz zu den meisten anderen Erweiterungen kann diese nicht in ihrem ursprünglichen Zustand verwendet werden, sondern muss erst für eine bestimmte Wiki-Farm angepasst werden.

Oberflächen

MediaWiki-Skins können in MediaWiki:Cologneblue.css, MediaWiki:Modern.css, MediaWiki:Monobook.css, MediaWiki:Vector.css, MediaWiki:Mobile.css, MediaWiki:Common.css-Dateien entsprechend angepasst werden. Wenn jedoch eine Wiki-Farm betrieben wird, ist es unpraktisch, diese Dateien in jedem Wiki dieser Farm einzurichten und zu pflegen.

Wenn ein anderer Skin verwendet wird, muss die AnotherSkin.css-Datei entsprechend umbenannt werden und diese Änderung muss auch in der extension.json-Datei vorgenommen werden.

  1. In der Dateibaumstruktur:
    * resources
    **css
    ***Common.css       // <=== put the stuff from the file "MediaWiki:Common.css" inside here (or let it be empty)
    ***Mobile.css       // <=== put the stuff from the file "MediaWiki:Mobile.css" inside here (or let it be empty)
    ***Cologneblue.css  // <=== put the stuff from the file "MediaWiki:Cologneblue.css" inside here (or let it be empty)
    ***Modern.css       // <=== put the stuff from the file "MediaWiki:Modern.css" inside here (or let it be empty)
    ***Monobook.css     // <=== put the stuff from the file "MediaWiki:Monobook.css" inside here (or let it be empty)
    ***Vector.css       // <=== put the stuff from the file "MediaWiki:Vector.css" inside here (or let it be empty)
    ***AnotherSkin.css  // <=== 1. rename this to "'YourSkin'.css" for supporting other skins
    **images            // <=== You may add some (background) images here
    
  2. In der extension.json-Datei:
    	"ResourceModules": {
    		"ext.skincustomiser.common": {
    			"styles": "css/Common.css"
    		},
    		"ext.skincustomiser.mobile": {
    			"styles": "css/mobile.css"
    		},
    		"ext.skincustomiser.cologneblue": {
    			"styles": "css/Cologneblue.css"
    		},
    		"ext.skincustomiser.modern": {
    			"styles": "css/Modern.css"
    		},
    		"ext.skincustomiser.monobook": {
    			"styles": "css/Monobook.css"
    		},
    		"ext.skincustomiser.vector": {
    			"styles": "css/Vector.css"
    		},
    		"ext.skincustomiser.anotherskin": {  // <=== 2. rename this to "ext.skincustomiser.'yourskin'"
    			"styles": "css/AnotherSkin.css"  // <=== rename this to "css/'YourSkin'.css"
    		}
    	},
    
  3. In der includes/Hooks.php-Datei:
    	private static function isSupported( $skinname ) {
    
    		// Add another supported skin here:
    		$mySkin = 'anotherskin';  // <=== 3. remember to rename this
    		return in_array( $skinname, [ 'cologneblue', 'modern', 'monaco, 'monobook', 'vector', $mySkin ] );
    	}
    


$wgLogos   = [ '1x' => "$wgResourceBasePath/extensions/SkinCustomiser/resources/images/logo.png" ];
$wgFavicon = "$wgResourceBasePath/extensions/SkinCustomiser/resources/images/favicon.ico";

Skin vector-2022

$wgLogos = [
	'1x' => "$wgResourceBasePath/extensions/SkinCustomiser/resources/images/logo.png",
	'icon' => "$wgResourceBasePath/extensions/SkinCustomiser/resources/images/logo-icon.svg",
	'wordmark' => [
		"src" => "$wgResourceBasePath/extensions/SkinCustomiser/resources/images/logo-wordmark.svg",
		"width" => 160,
		"height" => 24
	],
	'tagline' => [
		"src" => "$wgResourceBasePath/extensions/SkinCustomiser/resources/images/logo-tagline.svg",
		"width" => 160,
		"height" => 14
	]
];
$wgFavicon = "$wgResourceBasePath/extensions/SkinCustomiser/resources/images/favicon.ico";

Eine Wikifarm kann in der Navigationsleiste angepasst werden. Die individuellen Etiketten und ihre Übersetzungen können auf diese Weise verwaltet werden:

* i18n
**en.json  // <=== add the labels from the "MediaWiki:Sidebar" here
**de.json  // <=== add the German translations of the custom labels from the "MediaWiki:Sidebar" here
**es.json  // <=== add the Spanish translations of the custom labels from the "MediaWiki:Sidebar" here
**fr.json  // <=== add more translation files if needed

Darüber hinaus können dort auch einige Standardmeldungen aus Mediawiki angepasst werden.

Anpassung in der i18n/en.json-Datei:

{
	"@metadata": {
		"authors": [ "YOU" ]
	},
	"about": "About your wiki",           // <==== You may have an individual "about" link in the Sidebar
	"projectpage": "Project page",        // <==== You may link to an individual project page
	"registrate": "Ask for account",      // <==== You may have a link to an individual registration form
	"contact": "Contact",                 // <==== You may have a link to an individual contact form
	"interaction": "Interaction",         // <==== Custom translation for an "Interaction" portlet
	"portals": "Portals",                 // <==== Custom portlet for some custom portal pages
	"portal-1": "Your personal portal 1", // <==== Custom portal page 1
	"portal-2": "Your personal portal 2", // <==== Custom portal page 2
	"portal-3": "Your personal portal 3", // <==== Custom portal page 3
	"createacct-benefit-heading": "{{SITENAME}} is made by individuals like you." // <==== Customise a mediawiki message
}

Für mehr Details siehe: Format der Lokalisierungsdatei

Head-Daten

Deaktivieren mit: $wgSkinCustomiserHeadItems = [];

Schema

Um die Head-Daten zu konfigurieren, sind die folgenden Zeilen zu LocalSettings.php nach der Installationszeile hinzuzufügen:

$wgSkinCustomiserHeadItems = [
		[ "key1", "content1" ],
		[ "key2", "content2" ]
	];

Meta-Daten

Deaktivieren mit: $wgSkinCustomiserMetaItems = [];

Schema

Um die Meta-Daten zu konfigurieren, sind die folgenden Zeilen zu LocalSettings.php nach der Installationszeile hinzuzufügen:

$wgSkinCustomiserMetaItems = [
		[ "name1", "content1" ]
		[ "name2", "content2" ],
	];

Beispiele

Beispiel (aus Extension:Altersklassifizierung ):

$wgSkinCustomiserMetaItems = [
		[ "age-de-meta-label", "age=0 hash: yourdigitalcode v=1.0 kind=sl protocol=all" ],
	];

Skripte

Ein oder mehrere Head-Skripte können dem Wiki hinzugefügt werden. Die Head-Skripte können aus beliebigen HTML und/oder JavaScript bestehen.

Deaktivieren mit: $wgSkinCustomiserScripts = "";

Schema

Um das Head-Skript zu konfigurieren, sind folgende Zeilen zu LocalSettings.php nach der Installationszeile hinzuzufügen:

$wgSkinCustomiserScripts = <<<'START_END_MARKER'
<script></script>
START_END_MARKER;

Die erste und letzte Zeile mit dem START_END_MARKER-Zeug sollte unangetastet bleiben, dies ist eine spezielle Syntax von PHP (ohne sie wäre es schwierig, mit Apostrophen innerhalb des Skripts umzugehen). Es dürfen keine Leerzeichen um die Markierung der letzten Zeile eingefügt werden, das würde sie umbrechen (weitere Einzelheiten zu dieser Syntax). Zum Abschluss eine "Neue Zeile" einfügen.

Weitere Skripte werden hinzuzufügt, indem sie einfach zwischen den Markierungen eingetragen werden:

$wgSkinCustomiserScripts = <<<'START_END_MARKER'
<script></script>
<script></script>
<script></script>
START_END_MARKER;

Bei Bedarf kann auch ein Name für das Skript spezifiziert werden, indem nach der Installationszeile folgende Zeilen hinzugefügt werden:

$wgSkinCustomiserScripts = 'add_your_script_name_here';

Beispiele

Beispiel (aus Extension:Google Analytics Integration ):

$wgSkinCustomiserScripts = <<<'START_END_MARKER'
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-xxxxxxxx-xx', 'auto');
  ga('set', 'anonymizeIp', true);
  ga('send', 'pageview');
</script>
START_END_MARKER;
$wgHeadScriptName = 'googleanalytics';

Anzeige am Ende des Dokuments

$wgSkinCustomiserDisplayBottom fügt Elemente am Ende einer Seite hinzu, am unteren Rand, aber noch innerhalb des Inhaltsrahmens.

Deaktivieren mit: $wgSkinCustomiserDisplayBottom = "";

Beispiele

$wgSkinCustomiserDisplayBottom =
    '<p>Something at the bottom of every page.</p>';

Siehe auch

Die Erweiterung SkinCustomiser kombiniert die Funktionalität von