Difference between revisions of "Template:InterProject/doc"

From blackwiki
Jump to navigation Jump to search
imported>Lukas²³
imported>WOSlinker
m (change source to syntaxhighlight)
 
(8 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<noinclude>{{Dokumentation/Dokuseite}}</noinclude>
+
{{Documentation subpage}}
Diese Vorlage dient dazu, Links zu Schwesterprojekten ähnlich wie [[Hilfe:Internationalisierung|Interwiki-Links]] anzuzeigen. Die Vorlage erzeugt hierzu eine Box mit den angegebenen Links über der Anzeige der Interwiki-Links in der Seitenleiste.
+
<!-- Categories go at the bottom of this page and interwikis go in Wikidata. -->
  
== Kopiervorlage ==
+
This template is used to generate links to sister projects similar to [[Help:Interlanguage links|Interlanguage links]]. The template creates a box with the listed links above the display of interwiki links in the sidebar. It is not intended for use in the article namespace.
 +
 
 +
== Usage ==
 
<pre style="white-space:pre-wrap;">
 
<pre style="white-space:pre-wrap;">
{{InterProjekt
+
{{InterProject
 
|meta=
 
|meta=
 
|metaglobal=
 
|metaglobal=
Line 15: Line 17:
 
|d=
 
|d=
 
|wikt=
 
|wikt=
 +
|voy=
 
|species=
 
|species=
 
|incubator=
 
|incubator=
Line 21: Line 24:
 
</pre>
 
</pre>
  
== Parameter ==
+
== Parameters ==
Für jeden Parameter muss der Seitenname explizit eingegeben. Hierbei ist zu beachten, dass die lokalisierte Bezeichnung des Zielwikis oder die internationale Bezeichnung für den Namensraum verwendet wird (zum Beispiel ''User'' für den Benutzernamensraum). Ein führender Doppelpunkt ist nicht erforderlich.
+
For every parameter the page name must be entered separately. It should be noted that the localized name of the target wiki or the international name is used for the namespace (for example, ''user'' for the user-namespaces). A leading colon is not required.
  
Pro Schwesterprojekt kann genau ein Link angegeben werden. Bei verschiedensprachigen Schwesterprojekten (wie Wikibooks) kann allerdings auf eine andere Sprache als deutsch verwiesen werden (mit <code><nowiki>{{InterProjekt|b=en:User:Beispiel}}</nowiki></code> wird auf das englischsprachige Wikibooks verlinkt).
+
For every sister project you can exactly specify one link. In sister projects with different languages (like Wikibooks), however, you can link to languages other than English: with <code><nowiki>{{Interprojekt|b=de:User:Example}}</nowiki></code> you link to the German-language Wikibooks.
  
== Programmierung ==
+
== Programming ==
Damit diese Vorlage funktioniert, muss Javascript aktiviert sein. Um diese Vorlage in ein anderes Wiki zu übertragen, ist folgender Javascript-Code nötig:
+
JavaScript must be enabled to use this template. To apply this template to a different wiki, the following javascript code is needed (see also [[MediaWiki:Common.js]] for the current code; see also [[wikt:de:MediaWiki:InterProject.js]]):
<source lang="javascript" style="height:30em; overflow:auto;">/** Code for [[Template:InterProject]] */
+
<syntaxhighlight lang="javascript" style="height:30em; overflow:auto;">/*
mw.loader.using( [ 'mediawiki.util' ], function() { jQuery( document ).ready(function() {
+
## ProjektLinks ##
     var iProject = document.getElementById("interProject");
+
by Skript von [[user:Merlissimo]] (Idee basierend auf http://de.wiktionary.org/wiki/MediaWiki:Common.js von [[User:Pathoschild]] und [[wikt:de:User:Melancholie]])
     if(!iProject) return;
+
erzeugt Sitebar-Interwiki zu Schwesterprojekten aufgrund von Vorlage [[Vorlage:InterProjekt]]
     var sistersibling = document.getElementById("p-lang");
+
siehe auch Feature-Request [[bugzilla:708]]
     if(!sistersibling) sistersibling= document.getElementById("p-tb");
+
*/
     if(!sistersibling) return;
+
if( mw.config.get( 'wgNamespaceNumber' ) > 0 ) {
     var sisterparent = sistersibling.parentNode;
+
  mw.loader.using( [ 'mediawiki.util' ], function() { $( function() {
     var sisterprojectnav = document.createElement("div");
+
     var iProject = $( '#interProject' );
     sisterprojectnav.id = "p-sisterprojects";
+
     if( !iProject.length ) {
     sisterprojectnav.className = sistersibling.className
+
        return;
     sisterprojectnav.innerHTML = '<h5>'+document.getElementById("sisterProjects").firstChild.innerHTML+'</h5><div><ul></ul></div>';
+
    }
     var sistersiblingsub = sistersibling.getElementsByTagName("div")[0];
+
     var sistersibling = $( '#p-lang' );
     if(sistersiblingsub){
+
     if( !sistersibling.length ) {
         sisterprojectnav.childNodes[1].className = sistersiblingsub.className;
+
        sistersibling = $( '#p-tb' );
 +
    }
 +
     if( !sistersibling.length ) {
 +
        return;
 +
    }
 +
    //Link auf Parennode des Portletmenues
 +
     var sisterparent = sistersibling.parent();
 +
 +
    //Erzeuge neues Portletmenue
 +
     var sisterprojectnav = $( document.createElement( 'div' ) );
 +
     sisterprojectnav.attr( 'id', 'p-sisterprojects' );
 +
     sisterprojectnav.attr( 'class', sistersibling.attr( 'class' ) );
 +
     var header = $( document.createElement( 'h3' ) );
 +
    header.text( $( '#sisterProjects:first' ).text() );
 +
    sisterprojectnav.append( header );
 +
    var portletDiv = $( document.createElement( 'div' ) );
 +
     var sistersiblingsub = sistersibling.find( 'div:first' );
 +
     if( sistersiblingsub.length ) {
 +
         portletDiv.attr( 'class', sistersiblingsub.attr( 'class' ) );
 
     } else {
 
     } else {
         sisterprojectnav.childNodes[1].className = "pBody";
+
         portletDiv.attr( 'class', 'pBody' );
 
     }
 
     }
     var sisternext = document.getElementById("p-lang");
+
     sisterprojectnav.append( portletDiv );
     if ( sisternext && sisternext.parentNode == sisterparent ){
+
         sisterparent.insertBefore( sisterprojectnav, sisternext );
+
    //Wenn möglich vor den Interwikis einfügen
     }else{
+
     if ( sisterparent.has( '#p-lang' ).length ) {
         sisterparent.appendChild(sisterprojectnav);
+
         sisterprojectnav.insertBefore( '#p-lang' );
 +
     } else {
 +
         sisterparent.append( sisterprojectnav );
 
     }
 
     }
     var sisterlinks = iProject.getElementsByTagName("a");
+
    for (var i = 0; i < sisterlinks.length; i++) {
+
    //Schwesterlinks ermitteln und einfügen
         var sistername = sisterlinks[i].firstChild.nodeValue
+
     iProject.find( 'a' ).each( function() {
         mw.util.addPortletLink('p-sisterprojects', sisterlinks[i].getAttribute("href") + '?uselang=' + mw.config.get( 'wgUserLanguage' ), sistername, "sister-"+ sistername, sistername);
+
        $this = $( this );
     }
+
         var sistername = $this.text();
})});
+
         mw.util.addPortletLink(
/** End of code for Template:Interproject */</source>
+
            'p-sisterprojects',
 +
            $this.attr( 'href' ) + '?uselang=' + mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) ),
 +
            sistername,
 +
            'sister-' + sistername,
 +
            sistername
 +
        );
 +
     });
 +
  })});
 +
}
 +
/** End of code for Template:Interproject */</syntaxhighlight>
 +
 
 +
<includeonly>{{Sandbox other||
 +
<!-- Categories below this line, please; interwikis at Wikidata -->
 +
[[Category:Link templates]]
 +
}}</includeonly>

Latest revision as of 12:02, 7 July 2020

This template is used to generate links to sister projects similar to Interlanguage links. The template creates a box with the listed links above the display of interwiki links in the sidebar. It is not intended for use in the article namespace.

Usage

{{InterProject
|meta=
|metaglobal=
|commons=
|b=
|n=
|q=
|s=
|v=
|d=
|wikt=
|voy=
|species=
|incubator=
|mw=
}}

Parameters

For every parameter the page name must be entered separately. It should be noted that the localized name of the target wiki or the international name is used for the namespace (for example, user for the user-namespaces). A leading colon is not required.

For every sister project you can exactly specify one link. In sister projects with different languages (like Wikibooks), however, you can link to languages other than English: with {{Interprojekt|b=de:User:Example}} you link to the German-language Wikibooks.

Programming

JavaScript must be enabled to use this template. To apply this template to a different wiki, the following javascript code is needed (see also MediaWiki:Common.js for the current code; see also wikt:de:MediaWiki:InterProject.js):

/*
## ProjektLinks ##
by Skript von [[user:Merlissimo]] (Idee basierend auf http://de.wiktionary.org/wiki/MediaWiki:Common.js von [[User:Pathoschild]] und [[wikt:de:User:Melancholie]])
erzeugt Sitebar-Interwiki zu Schwesterprojekten aufgrund von Vorlage [[Vorlage:InterProjekt]]
siehe auch Feature-Request [[bugzilla:708]]
*/
if( mw.config.get( 'wgNamespaceNumber' ) > 0 ) {
  mw.loader.using( [ 'mediawiki.util' ], function() { $( function() {
    var iProject = $( '#interProject' );
    if( !iProject.length ) {
        return;
    }
    var sistersibling = $( '#p-lang' );
    if( !sistersibling.length ) {
        sistersibling = $( '#p-tb' );
    }
    if( !sistersibling.length ) {
        return;
    }
    //Link auf Parennode des Portletmenues
    var sisterparent = sistersibling.parent();
 
    //Erzeuge neues Portletmenue
    var sisterprojectnav = $( document.createElement( 'div' ) );
    sisterprojectnav.attr( 'id', 'p-sisterprojects' );
    sisterprojectnav.attr( 'class', sistersibling.attr( 'class' ) );
    var header = $( document.createElement( 'h3' ) );
    header.text( $( '#sisterProjects:first' ).text() );
    sisterprojectnav.append( header );
    var portletDiv = $( document.createElement( 'div' ) );
    var sistersiblingsub = sistersibling.find( 'div:first' );
    if( sistersiblingsub.length ) {
        portletDiv.attr( 'class', sistersiblingsub.attr( 'class' ) );
    } else {
        portletDiv.attr( 'class', 'pBody' );
    }
    sisterprojectnav.append( portletDiv );
 
    //Wenn möglich vor den Interwikis einfügen
    if ( sisterparent.has( '#p-lang' ).length ) {
        sisterprojectnav.insertBefore( '#p-lang' );
    } else {
        sisterparent.append( sisterprojectnav );
    }
 
    //Schwesterlinks ermitteln und einfügen
    iProject.find( 'a' ).each( function() {
        $this = $( this );
        var sistername = $this.text();
        mw.util.addPortletLink(
            'p-sisterprojects',
            $this.attr( 'href' ) + '?uselang=' + mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) ),
            sistername,
            'sister-' + sistername,
            sistername
        );
    });
  })});
}
/** End of code for Template:Interproject */