Sådan oprettes et Zero MediaWiki-tema

Mange websites bruger MediaWiki-softwaren, herunder wikiHow! Som du måske har bemærket, selvom MediaWiki kommer med flere skind (temaer) klar til brug, mange sites som wikiHow, foretrækker at skabe deres egen hud at give en visuel og en unik oplevelse. Du kan tilpasse udseendet på et MediaWiki-baseret websted på en række måder, når du bruger skins. I de fleste tilfælde er det ikke nødvendigt at lave en hud fra bunden for at få det ønskede resultat. Du kan vælge at oprette en hud ved hjælp af en, der allerede eksisterer som en base, som f.eks. MonoBook, og juster den efter dine behov. Men hvis du virkelig ønsker at ændre wiki-formatet helt, skal du muligvis oprette din egen hud fra bunden. Denne artikel vil guide dig gennem processen på en systematisk, organiseret og enkel måde! Til demonstrationen antager vi, at navnet på den nye hud vil være TrialSkin

. Du skal ændre alle forekomster af navnet "TrialSkin" ved det valgte navn.

trin

  1. 1
    Opret den grundlæggende hudfilstruktur. Dette omfatter at oprette filer og mapper nedenfor (de skal alle være i mappen skind MediaWiki-installation):
    • TrialSkin.php fil - i det, vil du placere det meste af koden og definere layoutet på siderne.
    • TrialSkin.deps.php fil - standardfil, der sandsynligvis altid vil have samme kode. Det er designet til at rette en bug af PHP.
    • Trialskin-mappe - alle andre hudrelaterede filer skal være i den pågældende mappe, herunder stilark (CSS) og billeder.
    • Fil / skins / trialskin/main.css - vil indeholde det vigtigste hudarkiv - [det er valgfrit, men det vil du nok have brug for.]
    • Kig efter stilarkkorrektioner, som den der leveres af /skins/trialskin/IE60Fixes.css - [valgfrit men anbefalet.]
  2. 2
    Tilføj opstartskoden nedenfor i afsnittet "Startkode" i denne artikel. udskifte TrialSkin med det valgte navn til huden og trialskin med samme navn, men denne gang kun med små bogstaver.
  3. 3
    Tilføj "Category list fix" -koden som vist i det tilsvarende afsnit nedenfor.
  4. 4
    Indstil funktionen execute (), som vil blive kaldt for at give indholdet af siderne til klientens browser.
  5. 5
    Erklære den globale variabel $ wgUser i funktionen execute () og brug dens getSkin () metode til at få en objekt eller $ skin variabel. Du har sikkert brug for denne variabel, men hvis det ikke er tilfældet, spring over dette trin. Du finder et standardeksempel på sætningen af ​​funktionen execute () i afsnittet "Hovedkode for udførelsen () -funktionen".
  6. 6
    Begynd at tilføje PHP og XHTML kode for at udføre wiki rendering. Selvom du skal ændre standardlayoutet væsentligt, kan du muligvis gøre det samme sæt informationer som standardskindene giver (måske med nogle ændringer). De elementer, komponenter og blokke, der oftest tilføjes til siderne, findes nedenfor. Du kan også konsultere det tilsvarende afsnit for at få vist detaljerne eller få prøvekoder:
    • XHTML-koden, som åbner (og til sidst lukker) HTML-output, der sendes til klientens browser.
    • Elementet hoved (Header), som importerer stylesheets og scripts, sætter siden metadata og specificerer titel, der skal vises i browseren bar, når det bliver set.
    • Åbningstaggen krop (krop), som starter hovedelementet på siden og angiver, hvad der sker, når det læses eller kontrolleres, når der er handlere (fejlhåndtering).
    • Blokken, der indeholder webstedets navn.
    • Billedet indeholdende webstedets logo.
    • Sloganet på webstedet.
    • Meddelelsesblokken.
    • Meddelelsesmeddelelsesblokken for brugeren (om nødvendigt).
    • Brugerens proceslinje.
    • Navigationsblok i selve siden.
    • Søg.
    • Værktøjskasse.
    • Links til andre sprog.
    • Navn på siden.
    • Undertekst på siden.
    • Page recovery warning.
    • Indholdet på siden.
    • Links til kategorier.
    • Side proceslinje.
    • Sidefod.
    • Afsluttende koder.

Metode 1
Startkode

  • Handel SkinTrialSkin by SkinSucker`s Name, trialskin by Dit navn og TrialSkinTemplate af Sucker`s NameSkabelon.
TrialSkinTemplate udvider QuickTemplate {// Andre dele af koden vil blive tilføjet til klassens krop

Metode 2
Kategori liste korrektion kode

  • Kopiere og indsætte koden nedenfor legemet af skabelonen klassen (som er TrialSkinTemplate klasse, i dette eksempel), fortrinsvis efter initialisering kode.
/ * Anskaf den kategori af funktioner til at skabe en passende liste * / funktion GetCategories () {$ catlinks = $ this-> getCategoryLinks () - (! Tomme ($ catlinks)), hvis {return "
    {$ catlinks}
"- getCategoryLinks}} function () {$ overordnede wgOut, $ wgUser, wgTitle $, $ $ wgUseCategoryBrowser-globale-wgContLang hvis (count ($ wgOut-> mCategoryLinks) == 0) tilbagevenden `` - = $ $ hud wgUser- > getSkin () - # $ separator september = "" - // bruge Unicode-tegn indlejret bidi karakter overlay // at sikre, at links er ikke rodet på skærmen $ dir = $ wgContLang-> isRTL () `RTL`? : `ltr` - $ embed = "
  • "- $ pop = `
  • `- $ t = $ embed. implodere ( "{$ pop} {} {$ september $ embed}" $ wgOut-> mCategoryLinks). Msg $ = $ pop wfMsgExt ( `pagecategories` array ( `parsemag`,` flugt `), tæller ($ wgOut-> mCategoryLinks)) - $ r $ = hud-> makeLinkObj (afsnit :: newFromText (wfMsgForContent (` pagecategorieslink `)), $ msg). t # $ valgfri - explorer kategorier som dmoz - vises på listen # af kategorier, hvortil genstanden tilhører if ($ wgUseCategoryBrowser) {$ s =`.

    `- # skabe en bred vifte af spindler (forælder) $ $ wgTitle- parenttree => getParentCategoryTree () - # Objektet skal sendes som reference, da det ikke kan tilgås i # Sub drawCategoryBrowser af $ tempout = eksplodere ($ parenttree, $ this)) - # ryd den oprindelige falske post og sorter den unset ($ tempout [0]) - asort ($ tempout) - # udskrive en pr. linje $ s = implodere ("
    n ", $ tempout) -} returner $ s-}

    Metode 3
    Hovedkoden for execute () -funktionen

    Video: American Radical, Pacifist and Activist for Nonviolent Social Change: David Dellinger Interview

    • Du kan fjerne linjer, der erklærer $ wgUser, $ wgSitename og $ skin variablerne, hvis du ikke bruger dem.
    funktion run () {// erklære globale variable og opnå objekter hud, hvis det er nødvendigt i futuroglobal $ wgUser, wgSitename- $ $ $ wgUser- hud => getSkin () - // få sitet navn $ dette -> sæt (`sitename`, $ wgSitename) - // undertrykke advarsler for at forhindre underretninger om indekser, der ikke findes i $ this-> datawfSuppressWarnings ()

    Metode 4
    Hovedstruktur for XHTML-koden

    • Indledende kode - her skal du konfigurere huden til at skrive HTML-tags og erklære de nødvendige XHTML navneområder. Koden nedenfor er en standardopgørelse. Du kan ændre det, men det er nok ikke nødvendigt.
    ?>dato [`xhtmlnamespaces`] som $ tag => $ ns) {?> xmlns:tekst (`lang`)?> "lang ="tekst (`lang`)?> "dir ="tekst (`dir`)?> ">
    • Elementet hoved - her vil du skrive indholdet af hovedelementet. Dette omfatter links til stilark, klientside-scripts og metadata til robotter og browsere. Koden, der er inkluderet her, er standard, så du skal muligvis ændre det for at inkludere brugerdefinerede scripts eller stilark.
      • For at koden skal fungere korrekt, skal du have filerne herunder (du kan fjerne linjen, der importerer et af disse stilark, hvis du ikke har brug for dem):
        • /common/commonPrint.css - stilark for at vise sider. Du kan ændre stien til dette stilark, hvis du ikke vil bruge standardversionen.
        • main.css, content.css - hud. Det skal være i hovedhudmappen (/ skins / trialskin, i dette eksempel).
        • håndholdt.css - et stilark til håndtering af mobile enheder.
        • IE50Fixes.css, IE55Fixes.css, IE60Fixes.css, IE70Fixes.css - fejlkorrektion for flere browsere. Du kan kopiere disse filer fra nogen af ​​de eksisterende skind og indsætte, som du sandsynligvis ikke behøver at ændre noget i dem.
      • I de sidste linjer, som starter i kommentaren "/ *** Forskellige scripts og stilarter relateret til MediaWiki *** /", Du kan finde specifikke stilark til brugere, til sider og til hele webstedet. Hvis du ikke vil implementere disse funktioner, skal du blot flytte de tilsvarende rækker til det kommenterede afsnit, der begynder at kommentere.
      • Det har vist sig, at opkaldet $ this-> html (`headscripts`) kan medføre problemer. Så hvis noget går galt, så prøv at fjerne det.
      • Hvis koden ikke virker af en eller anden grund, så prøv at glemme denne kode og skriv din egen ved at tilføje links til stilark, scripts og tags selv!
    html (`headlinks`)?><?php $this->tekst (`pagetitle`)?>/ *tekst (`stylepath`)?> /tekst (`stylename`)?> / main.css?tekst (`stylepath`)?> /tekst (`stilnavn`)?> / contents.css?data [`printable`]))) {?> media = "print"tekst (`stylepath`)?> / fælles / commonPrint.css?dato) -?>data [`jsvarurl`]) {?>data [`pagecss`]) {?>dato [`usercss`]) {?>data [`userjs`]) {?>data [`userjsprev`]) {?>data [`trackbackhtml`]) print $ this-> data [`trackbackhtml`] -?>html (`headscripts`)?>
    • Tag, der udfører kropets (krops) udførelse af koden. Du vil sandsynligvis ikke brug for at ændre dette afsnit, medmindre du ønsker at ændre koden karrosseriformer inden for tag selv, som kan betragtes som en lille "hardcodede" også.

    Video: A Pride of Carrots - Venus Well-Served / The Oedipus Story / Roughing It

    data [`body_ondblclick`]) {?> ondblclick = "tekst (`body_ondblclick`)?> "data [`body_onload`]) {?> onload = "tekst (`body_onload`)?> "tekst (`nsclass`)?> tekst (`dir`)?> tekst (`sideklasse`)?> ">
    • Afsluttende koder - tilføjes til slutningen af ​​filen. De lukker åbne tags, scripts, PHP koder og så videre. Alle koder vist her skal placeres før disse linjer, som skal være de sidste i filen.
    html (`bundskript`) - / * JS kalder for at køreBodyonloadHook * /?>html (`rapporttid`)?>data [`debug`]):?>

    Metode 5
    Standardkode for webstedets elementer

    • Bemærk brugen af ​​$ this-> text ($ msg) og $ this-> html ($ msg) opkald. De vil vise sig meget i huden.
    • Webstedets navn:
    tekst (`sitename`)?>
    • Site logo:
    • Site slogan:

    msg (`tagline`)?>

    • Bulletin board - Indeholder side advarsler. Det bliver normalt redigeret og tilføjet til WikiMedia messaging-siden: Sitenotice.
    data [`sitenotice`]) {?>
    html (`sitenotice`)?>
    • Meddelelsesblok til brugerbesked:
    dato [`newtalk`]) {?>

    html (`newtalk`)?>
    • Inderside navigationsblok - valgfri.
    data [`showjumplinks`]) {?>
    msg (`jumpto`)?> msg (`jumptonavigation`)?>, msg (`jumptosearch`)?>

    Metode 6
    Standardkode for sideelementer

    • Navn på siden:

    data [`displaytitle`]! = ""? $ this-> html (`title`): $ this-> tekst (`title`)?>

    • Side Undertekst:
    html (`undertekst`)?>
    • Sideindhold:
    html (`bodytext`)?>
    • Links af kategorier:
    data [`catlinks`]) {?>
    • Footer - Denne kode er interaktiv, så pas på, når du kopierer den!

    advarsler

    • Sikkerhedskopier altid databasen, installationsmappen og alle MediaWiki-relaterede emner, før du forsøger at oprette en ny hud.
    • Ovennævnte procedure skal udføres af en person (eller i det mindste med tilsyn), som har en betydelig viden om MediaWiki-software og PHP-sproget. Fejl i koden kan forårsage uventede resultater og fejl.

    tips

    • Da koden bliver større, skal du adskille den i forskellige filer og inkludere dem i hovedfilen.
    • Du kan oprette specifikke funktioner for at gøre visse dele af grænsefladen. At gøre det hjælper meget i dele, der kræver lange strækninger af kode eller som kræver konstante ændringer.
    • Det kan være en god idé at gennemføre en minimalistisk hud og bruge hendes klasse som grundlag for andre skind.
    • Alle ovenstående koder viser standardminimumimplementeringen. Deres job er at lære læseren at udtrække informationer fra skabelonklassens skabelon og bedre visualisere, hvad der kan ændres i hvert afsnit, da du kan (og sandsynligvis vil) ændre standardimplementeringen vist her.
    Del på sociale netværk:

    Relaterede
    © 2024 HodTari.com