Recherche chaud: urine mousseuse chat Vinaigre de Cidre Prostate inconvénients du pareto creme de tartre cigarette tegles declutter comment faire mangeoire porc le point débullition de méthane roth ira contribution limit 2017
Index Loisirs Santé Technologie

Comment créer une peau MediaWiki from Scratch

Publié:2013-03-11Source: général
Advertisement

Huit Méthodes: Initialisation Liste CodeCategory Fix CodeMain execute () CodeCommon Barres CodePortlets (principaux blocs de navigation) de CodeCommon éléments de la page de Méthode CodeMain XHTML Structure CodeCommon site Elements

De nombreux sites utilisent le logiciel MediaWiki, y compris wikiHow! Comme vous pouvez le voir, malgré le fait que MediaWiki est livré avec un ensemble de prêts à l'utilisation de peaux, de nombreux sites, tels que wikiHow, choisir d'avoir leur propre peau pour donner au site un look unique. Personnaliser la manière d'un site basé regards MediaWiki peuvent être atteints dans de nombreuses façons toutes les peaux impliquant. Habituellement, la création d'une nouvelle peau à partir de zéro est pas nécessaire pour de nombreux niveaux de personnalisations. Dans d'autres situations, la création d'une peau en fonction de l'un de ceux déjà mis en œuvre, tels que MonoBook, puis peaufiner à vos besoins sera plus que suffisant. Toutefois, si vous voulez vraiment changer radicalement la mise en page du wiki, vous pourriez avoir besoin pour créer votre propre peau à partir du sol. Cet article va vous guider avec le faire d'une manière systématique, organisée et facile!

Aux fins de la démonstration, l'article va assumer votre nouvelle peau sera appelé TrialSkin. Vous devez remplacer toutes les références à "TrialSkin" avec le nom de votre peau.

Étapes

1

Créer la structure du fichier de base pour votre nouvelle peau Cela inclut la création des fichiers et dossiers suivants (qui devraient tous être ajoutés au dossier de la peau de votre installation de MediaWiki).:

Un fichier TrialSkin.php - Ceci est où vous allez mettre la plupart du code et de définir la mise en page des pages.

Un fichier TrialSkin.deps.php - Ceci est un fichier standard qui sera plus susceptibles de contenir le même code. Il est créé pour corriger un bug avec PHP.

Le répertoire de trialskin - Tous les autres fichiers liés à votre peau devrait aller dans ce répertoire, y compris des feuilles de style et les images.

Un fichier /skins/trialskin/main.css qui contiendra la feuille de style principale pour la peau - [facultatif, mais plus probablement à être nécessaire]

Navigateur feuille de style spécifique fixe fichiers, tels que /skins/trialskin/IE60Fixes.css - [facultatif, mais préféré]

2

Ajouter le code d'initialisation énumérés ci-dessous dans le "code d'initialisation" sous-section de cet article. Remplacer TrialSkin avec le nom de votre peau et trialskin avec le nom de votre peau après avoir toutes les lettres à la petite affaire.

3

Ajoutez le code "liste Catégorie de Fix" comme indiqué dans le paragraphe correspondant ci-dessous.

4

Définir la fonction execute (), qui sera appelée à la sortie du contenu des pages pour les navigateurs clients.

5

Déclarez la variable $ wgUser mondial dans la fonction execute () et utiliser sa méthode getSkin () pour obtenir une variable $ de la peau / objet. Vous aurez probablement besoin de cette variable. Toutefois, si vous ne avez pas besoin, alors il n'y a pas besoin de faire cette étape. Vous trouverez un exemple type de déclarer la fonction execute () avec le code le plus couramment utilisé dans la «Déclaration de l'exécuter () Fonction" sous-section.

6

Commencer à ajouter le code (à la fois PHP et XHTML) pour rendre les pages de votre wiki. Très probablement, bien que vous pourriez avoir besoin de changer radicalement la mise en page, mais vous aurez besoin pour rendre le même ensemble d'informations que les peaux normales font (peut-être avec quelques modifications ). Les éléments / components / blocs le plus souvent ajoutés pour une page sont (voir sous-sections pour plus de détails et / ou des exemples de codes correspondant):

Le code XHTML qui ouvre (et éventuellement ferme) la sortie HTML qui sera envoyé au navigateur du client.

L'élément de tête, qui importe des feuilles de style, scripts, définit les méta-données de la page, et spécifie le titre à afficher dans la barre de titre du navigateur pour la page spécifique en cours de visualisation.

La balise d'ouverture du corps. Cette balise ouvre l'élément de corps de la page et indique ce qui arrive quand la page se charge, ou un double-clic si ces gestionnaires existent.

Nom du bloc du site.

L'image du site de logo.

Tag-line du site

Bloc de l'Avis du site.

Utilisateur bloc de notification de message (si il ya un besoin pour elle)

La barre d'outils de l'utilisateur.

Intrapage bloc de navigation.

Recherche.

Boîte à outils.

Liens linguistiques.

Nom de la page.

La page de sous-titres.

Undelete préavis.

Le contenu de la page.

Catégorie liens.

Barre d'outils de la page.

Pied de page.

Fermeture piste.

Méthode 1 de 8: code d'initialisation

Remplacer SkinTrialSkin avec YourSkinName de la peau, trialskin avec yourskinname et TrialSkinTemplate avec YourSkinName modèle.

php // code d'initialisation <if (défini («MediaWiki ')!) die (" Ce fichier de la peau est pas un point d'entrée valide. "); require_once ('comprend / SkinTemplate.php'); // Hériter code principal de SkinTemplate, réglez le CSS et le filtre de modèle classe SkinTrialSkin étend SkinTemplate {function initPage (& $ out) {SkinTemplate :: initPage ($ out); $ this-> nomskin = 'trialskin'; $ this-> stylename = 'trialskin'; $ this-> template = 'TrialSkinTemplate'; }} TrialSkinTemplate de classe étend QuickTemplate {// Autres sections de code seront ajoutés à ce corps de classe

Méthode 2 de 8: Catégorie Liste Fix code

Il suffit de copier et coller le code ci-dessous pour le corps de la classe de modèle (TrialSkinTemplate dans cet exemple), de préférence après le code d'initialisation)

/ * Catégorie de détournement fonctions pour créer un appropriées GetCategories liste * / de fonction () {$ catlinks = $ this-> getCategoryLinks (); si {return "<ul id = 'de catlinks'> {catlinks $} </ ul>" (vide (catlinks $)!); }} Function getCategoryLinks () {global $ wgOut, wgUser $, $ wgTitle, wgUseCategoryBrowser $; wgContLang globale $; if (count ($ wgOut-> mCategoryLinks) == 0) return ''; $ peau = $ wgUser-> getSkin (); # Séparateur $ Sép = ""; // Utiliser bidi Unicode incluant des caractères de remplacement, // pour vous assurer que les liens ne brisent pas les uns les autres de façon laides $ dir = $ wgContLang-> isRTL ()? «RTL»: «LTR»; Intégrer $ = "<li dir = '$ dir'>"; $ pop = '</ li>'; $ t = $ Intégrer. imploser ("{} {$ pop septembre $} {$ Intégrer}", $ wgOut-> mCategoryLinks). $ pop; $ msg = wfMsgExt ('pagecategories', array ('parsemag', 'Escape'), count ($ wgOut-> mCategoryLinks)); $ s = $ peau-> makeLinkObj (Titre :: newFromText (wfMsgForContent ('pagecategorieslink')), $ msg). t $; . # Option «DMOZ comme« catégorie navigateur - sera affiché dans la liste des catégories # un article appartient à if ($ wgUseCategoryBrowser) {$ s = '<br /> <hr />'; # Obtenir un grand tableau de l'arbre des parents $ parenttree = $ wgTitle-> getParentCategoryTree (); # Objet de la peau passé par référence, car il ne peut pas être # accessible selon la méthode sous-fonction drawCategoryBrowser $ tempout = explode ("\ n", Peau :: drawCategoryBrowser ($ parenttree, $ this)); # Nettoyer bidon première entrée et les trier unset (tempout $ [0]); asort ($ tempout); . # Sortie un par ligne $ s = implode ("<br /> \ n", $ tempout); } Return $ s; }

Méthode 3 de 8: Principal execute () Code de la méthode

Vous pouvez supprimer les lignes qui déclarent $ wgUser, wgSitename $ et $ peau si vous prévoyez de ne pas les utiliser.

fonction execute () {// déclarer des variables globales et d'obtenir l'objet de la peau dans le cas où vous avez besoin de les utiliser plus tard globale $ wgUser, wgSitename $; $ peau = $ wgUser-> getSkin (); // Récupérer le nom du site $ this-> set ('nomdusite', $ wgSitename); // Supprimer les avertissements pour prévenir des avis sur les index manquant dans $ this-> wfSuppressWarnings de données ();

Méthode 4 de 8: Principal XHTML code de structure

Code d'ouverture - ici, vous demandez la peau à la sortie de la balise HTML et déclarez tous les espaces de noms XHTML nécessaires. Le code suivant est une déclaration standard que vous pourriez personnaliser mais plus probablement ne devrez pas.

?> <! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns = ? «? <? php $ this-> texte (« de xhtmldefaultnamespace ')> «<? php foreach ($ this-> data [' xhtmlnamespaces '] as $ tag => $ ns) {> Les xmlns: <? php echo"? {$ tag} = \ "{$ ns} \" "; }>? Xml:? Lang = "<? Php $ this-> texte ('lang')>" lang = "<? Php $ this-> texte ('lang')>" dir = "<? Php $ this-> texte ('dir')?> ">

L'élément de tête - ici, vous la sortie de l'élément de tête avec tout son contenu. Cela comprend des feuilles de style des liens, des scripts côté client et les méta-données pour les robots et les navigateurs. Le code inclus ici est un code standard que vous pourriez avoir besoin de modifier pour y inclure tous les scripts personnalisés ou des feuilles de style pour être inclus.

Pour que ce code fonctionne comme prévu, vous aurez besoin d'avoir les fichiers suivants (vous pouvez supprimer les lignes importateurs une de ces feuilles de style si vous ne les utilisez pas):

  • /common/commonPrint.css - feuille de style pour les pages d'impression. Vous pouvez modifier le chemin de cette feuille de style si vous ne voulez pas utiliser le style d'impression feuilles standard.

    main.css, contents.css - principales feuilles de style pour votre peau. Ceux-ci doivent être dans le répertoire de votre peau (/ skins / trialskin dans cet exemple)

    handheld.css - une feuille de style à utiliser avec des appareils portatifs.

    IE50Fixes.css, IE55Fixes.css, IE60Fixes.css, IE70Fixes.css - correctifs pour différents navigateurs. Vous pouvez copier ces fichiers à partir de l'une des peaux déjà existants, plus probable que vous aurez besoin de rien changer sur ces fichiers.

    Les dernières lignes, à partir de "/ *** divers scripts et les styles liés MediaWiki-*** /" comprennent utilisateur spécifique, page spécifique et des feuilles de style spécifiques au niveau du site. Si vous ne soutenez pas ces caractéristiques, il suffit de retirer tous jusqu'à les <! - Scripts Head -> commentaire.

    Il a été remarqué que le $ this-> html ('') headscripts appel provoque parfois de la difficulté, donc si quelque chose va mal essayer de l'enlever.

    Dans le cas où le code ne fonctionne pas pour une raison quelconque, vous pourriez oublier ce code tout à fait et écrire votre propre, y compris les liens de feuille de style, scripts et balise de titre toutes écrites par votre propre code!

<head> <meta http-equiv = contenu "Content-Type" = "<? php $ this-> texte (type MIME)?>; <? php $ this->? charset = texte ('charset')> "/> <? php $ this-> html ('headlinks')?> <title> <? php $ this-> Texte> </ title> <? php / *** feuilles de style en général? ('pagetitle')? *** /?> <style type = "text / css" media = "écran, projection"> / * <! [CDATA [* /import "<? php $ this-> texte ('stylepath')?> / <? php $ this-> texte ('stylename')> / main.css <? php echo $ GLOBALS ['wgStyleVersion']> "????; php echo $import "<? php $ this-> texte ('stylepath')?> / <? php $ this-> texte (" styleName ')?> / contents.css? <? GLOBALS [' wgStyleVersion '] ?> "; / *]]> * / </ style> <? php / *** feuilles de style spécifiques aux médias *** /?> <link rel = "stylesheet" type = "text / css" <? php if (vide ( $ this-> data ['imprimer'])) {?> media = "print" <? php}?> href = "<? php $ this-> texte ('stylepath')?> / common / commonPrint.css ? <? php echo $ GLOBALS ['wgStyleVersion']?> "/> <link rel =" stylesheet "type =" text / css "media =" poche "href =" <? php $ this-> texte ('stylepath ')?> / <? php $ this-> texte (' stylename ')?> / handheld.css? <? php echo $ GLOBALS [' wgStyleVersion ']?> "/> <? php / *** browser- feuilles de style spécifiques *** /> ​​<-?!? [si lt IE 5.5000]> <style type = "text / css"> @ l'importation "<? php $ this-> texte ('stylepath')> / < ? php $ this-> texte ('stylename')> / IE50Fixes.css <? php echo $ GLOBALS ['wgStyleVersion']> ";????!! </ style> <! [endif] -> <- [si IE 5.5000]> <style type = "text / css"> @ importation "<? php $ this-> texte ('stylepath')?> / <? php $ this-> texte ('stylename')?> /IE55Fixes.css?<?php echo $ GLOBALS ['wgStyleVersion']>? ";! </ style> <! [endif] -> <! - [if IE 6]> <style type =" text / css ">import" <? php $ this-> texte ('stylepath')?> / <? php $ this-> texte ('stylename')?> / IE60Fixes.css? <? php echo $ GLOBALS ['wgStyleVersion ?]>? ";! </ style> <! [endif] -> <! - [if IE 7]> <style type =" text / css "> @ importation" <? php $ this-> Texte ( 'stylepath') this-> / <? php $> de texte ('stylename')> / IE70Fixes.css <? php echo $ GLOBALS ['wgStyleVersion']> ";??????! </ style> <! [endif ] -> <? php / *** générale IE fixe *** /> ​​<-?! [if lt IE 7]> <script type = "<? php $ this-?> texte ('jsmimetype')? > "src =" <? php $ this-> texte ('stylepath')?> / / IEFixes.js? <? php echo commune $ GLOBALS ['wgStyleVersion']?> "> </ script> <meta de type HTTP equiv = contenu "de imagetoolbar" = "no" /> <! [endif] - php impression> <Peau :: makeGlobalVariablesScript ($ this-> data)!?; ?> <? Php / *** divers scripts et les styles liés MediaWiki-*** /?> <Script type = "<? Php $ this-> texte ('jsmimetype')?>" Src = "<? Php $ this-> texte ('stylepath')> / common / de wikibits.js <? php echo $ GLOBALS ['wgStyleVersion']> "> <-????! wikibits js -> </ script> <? php if ($ this-> data ['jsvarurl']) {?> <script type = "<? php $ this-> texte ('jsmimetype')?>" src = "<? php $ this-> texte ('jsvarurl '?)> "> <! - js site -> </ script> <php}?> <? php if ($ this-> data??? [' pagecss ']) {> <style type =?" texte / css "> <? php $ this-> html ('pagecss')?> </ style> <? php} if ($ this-> data ['usercss']) {?> <style type =" text / css "> <? php $ this-> html ('usercss')?> </ style> <? php} if ($ this-> data ['UserJS']) {?> <de script type =" <? php $ this-> texte ('jsmimetype')?> "src =" <? php this-> texte ('UserJS »)?>"> </ script> <? php} $ si ($ this-> data [' userjsprev ']) {?> <script type = "<? php $ this-> texte (' jsmimetype ')?>"> <? php $ this-> html (' userjsprev ')?> </ script> <? php} if ($ this-> data ['trackbackhtml']) print $ this-> data ['trackbackhtml']; ?> <! - Scripts Head -?> <? Php $ this-> html ('headscripts')> </ head>?

Le corps balise d'ouverture - rend la balise body d'ouverture. Très probablement, vous aurez pas besoin de modifier cette sauf si vous voulez coder en dur les styles de carrosserie dans la balise.

<! - Corps -> <body <? Php if ($ this-> data ['body_ondblclick']) {?> Ondblclick = "text ('body_ondblclick')> <? Php $ this-?>?" <? php}?> <? php if ($ this-> data ['body_onload']) {?> onload = "<? php $ this-> texte ('body_onload')?>« <? php}?> class = «MediaWiki <? php $ this-> texte ('nsclass')?> <? php $ this-> texte ('dir')?> <? php $ this-> texte ('pageclass')?>">

Fermeture randonnée - cela est ajouté à la fin du fichier. Il ferme les balises toute ouverts, des scripts, code php ... etc. Tout code suivant doit être mis avant cela, il devrait être les dernières lignes du fichier de la peau.

<! - Les scripts et les informations de débogage -> <? Php $ this-> html ('bottomscripts'); ?? / * JS appeler pour runBodyOnloadHook * /> <? Php $ this-> html ('reporttime')> <? Php if ($ this-> data ['debug']):???!> <- La sortie de débogage <? php $ this->: texte ('debug'); Endif> <php ->;? ?> </ Body> </ html> <wfRestoreWarnings php (?); Méthode} // fin de execute ()} // fin de la classe?>

Méthode 5 de 8: Code 'Common Elements site

Notez l'utilisation de $ this-> Texte ($ msg) et $ this-> html ($ msg). il sera beaucoup utilisé à travers la peau.

Le nom de site:

<? php echo $ this-> texte ('nomdusite')?>

Logo l'image de site:

<div class = id "de portlet" = "p-logo"> <a style="background-image: url(<?php $this-> texte ('logopath')>);? " <? php?> href = "<? php echo htmlspecialchars ($ this-> data ['nav_urls'] ['mainpage'] ['href'])?>« <? php echo $ peau-> tooltipAndAccesskey ('n -mainpage ') >> </a> </ div> <script type = "<? php $ this-> Texte (??' jsmimetype ')?>"> if (window.isMSIE55) fixalpha (); </ script> <! - IE transparence alpha fix ->

Tag-line de site:

<h3 id = "siteSub"> <? php $ this-> msg ('slogan')?> </ h3>

Le site préavis bloc - Avis de site de contenu est généralement édité et ajouté à la WikiMedia: page de message Sitenotice.

<? php if ($ this-> data ['sitenotice']) {?> <div id = "Sitenotice"> <? php $ this-> html ('sitenotice')?> </ div> <? php} ?>

Utilisateur bloc de notification de message:

<? php if ($ this-> data ['newtalk']) {?> <div class = "UserMessage"> <? php $ this-> html ('newtalk')?> </ div> <? php} ?>

Bloc de navigation Intrapage - ceci est optionnel

<? php if ($ this-> data [''] showjumplinks) {?> <div id = "jump-to-nav"> <? php $ this-> msg ('jumpto')?> <a href = "# colonne-un"> <? php $ this-> msg ('Jumptonavigation')?> </a>, <a href="#searchInput"> <? php $ this-> msg ('Jumptosearch')? > </a> </ div> <? php}?>

Méthode 6 de 8: Code page Common Elements

Nom de la page:

<h1 class = "firstHeading"> <? php $ this-> data ['displaytitle'] = "" $ this-> html ('title'):!?? $ this-> texte ('title')> < / h1>

La page de sous-titres:

<div id = "contentSub"> <? php $ this-> html ("sous-titre")?> </ div>

Contenu de la page:

<? php $ this-> html ('bodytext')?>

Catégorie liens:

<? php if ($ this-> data ['']) catlinks {?> <div id = "catlinks"> <? php $ this-> html ('catlinks »)?> </ div> <? php} ?>

Pied de page - ce code est itérative afin de prendre soin tout en copiant!

<div id = "footer"> <? php if ($ this-> data ['poweredbyico']) {?> <div id = "f-poweredbyico"> <? php $ this-> html ('poweredbyico') > </ div> <? php}? if ($ this-> data ['copyrightico']) {?> <div id = "f-copyrightico"> <? php $ this-> html ('copyrightico')? > </ div> <? php} // générer des liens de bas de page supplémentaires?> <ul id = "f-list"> <? php $ footerlinks = array ('lastmod', 'Viewcount', 'numberofwatchingusers »,« crédits » , «copyright», «vie privée», «à propos», «disclaimer», «slogan»,); foreach ($ footerlinks que $ aLink) {if (isset ($ this-> data [$ aLink]) && $ this-> data [$ aLink]) {?> <li id ​​= "<? php echo $ aLink?> "> <? php $ this-> html ($ aLink)?> </ li> <? php}}?> </ ul> </ div>

Méthode 7 de 8: Code Barres d'outils commune

La barre d'outils de l'utilisateur - ce qui rend les liens de navigation de l'utilisateur, tels que la page de l'utilisateur, page de discussion, lien de déconnexion ... etc.

<div class = "portlet" id = "p-personnelle"> <h5> <? php $ this-?> msg ('Personaltools')> </ h5> <-?! Barre d'outils de l'utilisateur Label / Légende [facultatif] - -> <div class = "pBody"> <ul> php foreach <($ this-> data [''] personal_urls que $ key => $ item) {> <li id ​​= "pt - <? php echo? Sanitizer :: escapeId ($ key)?> «<? php if ($ item ['active']) {?> class =" active "<? php}? >> <a href =" <? php echo htmlspecialchars? ( ? $ item ['href'])> «<? php echo peau- $> tooltipAndAccesskey ('pt -'.? $ key)> <? php if (empty ($ item [" class "]!)) {? > class = "<? php echo htmlspecialchars ($ item [« classe »])?>« <? php}? de htmlspecialchars >> <? php echo ($ item ['texte'])?> </a> </ li> <? php}?> </ ul> </ div> </ div>

Barre d'outils de la page - qui comprend le modifier, créer, discuter des liens avec les autres le long selon le groupe de l'utilisateur

<div id = "P-cactions" class = "portlet"> <h5> <? php $ this-?> msg ('vues')> </ h5> <-?! Barre d'outils de la page Label / Légende [facultatif] - -> <div class = "pBody"> <ul> php foreach <($ this-> data ['content_actions'] as $ key => $ tab) {> <li id ​​= "ca - <? php echo? Sanitizer :: escapeId ($ key)?> «<? php if ($ onglet ['classe']) {?> class =" <? htmlspecialchars php echo (de $ tab [«classe»])?> «<? php } >> <a href="<?php écho htmlspecialchars($tab['href']) ?> "tooltipAndAccesskey <? php echo $ peau-?>? (« ca - '. $ key) >> <? php htmlspecialchars écho ($ onglet ['texte'])?> </a> </ li> <? php}?> </ ul> </ div> </ div>

Undelete préavis - si la page a été supprimée avant et l'utilisateur peut restaurer des pages, ce lien devrait apparaître (si vous choisissez de)

<? php if ($ this-> data ['Undelete']) {?> <div id = "contentSub2"> <? php $ this-> html ('Undelete')?> </ div> <? php} ?>

Méthode 8 de 8: Portlets (principaux blocs de navigation)

Recherche portlet - la boîte de recherche. Ceci est une mise en œuvre minimale qui ne montre ce qui doit être délivré pour la boîte de recherche fonctionne.

<div id = "p-recherche" class = "portlet"> <label for = "searchInput"> <h5> <? php $ this-> msg ('search')?> </ label> </ h5> < div id = classe "searchBody" = "pBody"> <form action = "<? this- php $> texte ('searchaction')?>" id => <div> <input "de searchform" id = nom "searchInput" = "rechercher" type = "text" tooltipAndAccesskey ('search') <? php echo $ peau-?>; if (isset ($ this-> data ['search'])) {?> value = "<? php $ this-> texte ('search')?>« <? php}> /> <input type? = 'submit' name = "go" class = id = valeur "searchButton" "searchGoButton" = "<? php $ this-> msg ('searcharticle')?>« <? php echo $ peau-> tooltipAndAccesskey ('Recherche- aller '); ?> /> & Nbsp; <input type = = "document" class = id "searchButton" = valeur 'submit' de nom "mw-searchButton" = "<? php $ this-> msg ('searchbutton')?>« <? php echo peau- $ > tooltipAndAccesskey ('search-document'); ?> /> </ Div> </ form> </ div> </ div>

Boîte à outils portlet:

<div class = id "de portlet" = "p-tb"> <h5> <? php $ this-> msg ('boîte à outils')?> </ h5> <div class = "pBody"> <ul> <? php if ($ this-> data ['notspecialpage']) {?> <li id ​​= "t-WhatLinksHere"> <a href="<?php écho htmlspecialchars($this-> data ['nav_urls'] [' WhatLinksHere '] [' href '])?> «<? php echo $ peau-> tooltipAndAccesskey (' t-WhatLinksHere ')? >> <? php $ this-> msg (' WhatLinksHere ')?> </a> </ li> <? php if ($ this-> data ['nav_urls'] ['recentchangeslinked']) {?> <li id ​​= "t-recentchangeslinked"> <a href = "<? htmlspecialchars php echo ($ this-> data ['nav_urls'] ['recentchangeslinked'] ['href'])?> «<? php echo $ peau-> tooltipAndAccesskey ('t-recentchangeslinked')? >> <? php $ this-> msg ('recentchangeslinked')?> </a> </ li> <? php}} if (this- isset ($> data ['nav_urls'] ['Trackbacklink'])) {?> <li id ​​= "t -trackbacklink "> <a href="<?php écho htmlspecialchars($this-> data ['nav_urls'] ['Trackbacklink'] ['href'])?>« <? php echo $ peau-> tooltipAndAccesskey (' t-Trackbacklink ')? >> <? php $ this-> msg (' Trackbacklink ')?> </a> </ li> <? php} if ($ this-> data [' RSS ']) {? > <li id ​​= "feedLinks"> <? php foreach ($ this-> de données ['nourrit'] as $ key => $ feed) {> <span id = "feed -? <? php echo Sanitizer :: escapeId ($ key)> "> <a href="<?php écho htmlspecialchars($feed['href']) ?>" <? php echo $ peau-> tooltipAndAccesskey??? ('feed -'. $ key)> htmlspecialchars php echo> <($ feed ['text'])> </a> & nbsp;????? </ span> <php}> </ li> <? php} foreach (array («contributions», « ? Blockip ',' emailuser ',' upload ',' specialpages ') que $ spéciale) {if ($ this-> data [' nav_urls '] [$ spéciale]) {> <li id ​​= "t - <? php echo $ spéciale?> "> <a href="<?php écho htmlspecialchars($this-> data ['nav_urls'] [$ spéciale] ['href'])?>« <? php echo $ peau-> tooltipAndAccesskey ('t -'. $ spéciale)? >> <? php $ this-> msg ($ spéciale)> </a> </ li> <php}} if (vide ($ this-> de données [?! 'nav_urls'] ['print'] ['href'])) {?> <li id ​​= "t-print"> <a href="<?php écho htmlspecialchars($this-> data ['nav_urls'] ['print'] ['href'])?> «<? php echo $ peau-> tooltipAndAccesskey ('t-print»)? >> <? php $ this-> msg (' printableversion ')?> </ a> </ li> <? php} if (! empty ($ this-> data ['nav_urls'] ['permalien'] ['href'])) {?> <li id ​​= "t-permalien"> <a href="<?php écho htmlspecialchars($this-> data ['nav_urls'] ['permalien'] ['href'])?> «<? php echo $ peau-> tooltipAndAccesskey ('t-permalien' )? >> <? php $ this-> msg ('permalien')?> </a> </ li> <? php} elseif ($ this-> data ['nav_urls'] ['permalien'] [' href '] ===' ') {?> <li id ​​= "t-ispermalink" <? php echo $ peau-> Info-bulle (' t-ispermalink ')? >> <? php $ this-> msg (' permalien '?)> </ li> <? php} wfRunHooks (' TrialSkinTemplateToolboxEnd ', array (& $ this)); ?> </ Ul> </ div> </ div>

Liens linguistiques:

<? php if ($ this-> data ['']) language_urls {?> <div id = "p-lang" class = "portlet"> <h5> <? php $ this-> msg ('otherlanguages') ?> </ h5> <div class = "pBody"> <ul> php foreach <? ($ this-> data ['language_urls'] que langlink $) {?> <de li class = "<? php echo htmlspecialchars? ( $ langlink [«classe»])?> "> <? php?> <a href="<?php écho htmlspecialchars($langlink['href']) ?>" php echo> <? $ langlink ['texte' ]?> </a> </ li> <? php}?> </ ul> </ div> </ div> <? php}?>

Merci pour ton aide! S'il vous plaît nous dire ce que vous savez à propos de

...

Avertissements

Toujours sauvegarder votre base de données de MediaWiki, répertoire d'installation et tous les éléments connexes avant de tenter de créer ou modifier votre nouvelle peau.

Cette procédure doit être effectuée par une personne (ou au moins sous la supervision d'une personne) avec une connaissance modérée du logiciel MediaWiki et le langage PHP. Erreurs dans le code pourraient entraîner des résultats et des bugs inattendus.

Conseils

Comme votre code pousse plus, vous voudrez peut-être séparer certaines d'entre elles dans un fichier séparé et l'inclure dans votre fichier principal de la peau.

Vous pouvez créer des fonctions distinctes pour rendre des parties spécifiques de l'interface. Ceci est particulièrement utile pour les pièces soit sa taille code long et nécessitant des modifications de votre côté.

Il pourrait être utile de mettre en œuvre une peau minimes et l'utiliser comme une classe de base pour vos autres peaux.

Tout le code dans cet article fournit une implémentation standard minimum. Il est destiné à montrer au lecteur comment extraire des informations à partir de la classe de modèle de peau et ce qu'il / elle doit prendre en considération à propos de chaque élément d'information. Vous pouvez (et très probablement) modifier les comportements par défaut inclus dans cette mise en œuvre.

[Rédacteur: Admin]
Je vous imagine comme

Articles recommandés

Cliquez Top Ranking