Hoe om `n MediaWiki-vel van nuuts af te skep
Baie webwerwe gebruik MediaWiki-sagteware, en wikiHow is een van hulle! Soos u kan sien, alhoewel MediaWiki reeds met `n stel vel gereed is om te gebruik, besluit baie webwerwe, soos wikiHow, om hul eie vel te skep om die webwerf `n unieke voorkoms te gee. Daar is baie maniere om die voorkoms van `n webwerf op grond van MediaWiki aan te pas, en almal behels skins. Gewoonlik is dit nie nodig om `n nuwe vel van nuuts af te skep vir baie persoonlike vlakke nie. In ander gevalle sal dit genoeg wees om `n reeds bestaande vel aan te pas wat dit aanpas by die behoeftes van elkeen. As jy egter `n radikale verandering in die ontwerp van die wiki wil maak, sal dit nodig wees om jou eie vel van nuuts af te skep. Hierdie artikel sal u lei sodat u dit op `n georganiseerde, eenvoudige en sistematiese wyse kan doen.
Vir demonstrasiedoeleindes sal die artikel aanvaar dat u nuwe vel genoem sal word TrialSkin. U moet alle verwysings na "TrialSkin" vervang met die naam van u vel.
stappe
- `N TrialSkin.php lêer. Dit is waar jy die meeste van die kode sal plaas en die ontwerp van die bladsye moet definieer.
- `N TrialSkin.deps.php lêer. Dit is `n standaard lêer wat waarskynlik dieselfde kode bevat. Dit is geskep om enige probleem met die PHP-lêer op te los.
- Die proefskerm gids. In hierdie gids sal die res van die lêers wat verband hou met jou vel, insluitend stylvelle en beelde, gestoor word.
- `N Lêer / skins / skyfskyf / skyfie, wat die hoofstylvel vir die vel bevat. Hierdie lêer is opsioneel, maar dit is baie waarskynlik dat jy dit moet gebruik.
- Blaaier-spesifieke herstelstyllêers, soos /skins/trialskin/IE60Fixes.css. Hierdie lêers is opsioneel, maar dit word aanbeveel om dit te gebruik.
Metode 1
InitialiseringskodeVervang SkinTrialSkin met SkinDie naam van jou vel, proefskin deur thetupielnaam en TrialSkinTemplate by TemplateDie naam van jou vel.
Php // kode inicializaciónif (gedefinieer ( `MediaWiki`)!) Die ( "Dit vel lêer is nie `n geldige inskrywing punt.") - require_once ( `sluit / SkinTemplate.php`) - // geërf het die SkinTemplate belangrikste kode en stel die CSS en filter strek plantillaclass SkinTrialSkin SkinTemplate {funksie initPage ($ uit) {SkinTemplate :: initPage ($ uit) - $ this-> SkinName = `trialskin` - $ this-> stylename = `trialskin` - $ this-> sjabloon = `TrialSkinTemplate` -}} klas TrialSkinTemplate strek QuickTemplate {// ander afdelings van die kode is bygevoeg om die liggaam van hierdie soort
Metode 2
Stel kode vir kategorielys vas- Net kopieer en plak die volgende kode in die liggaam van die sjabloon klas (TrialSkinTemplate vir hierdie voorbeeld), verkieslik na die initialisasie kode.
/ * Kategorie funksies verkry om `n toepaslike lys * / funksie getCategories skep () {$ catlinks = $ this-> getCategoryLinks () - as (leë ($ catlinks)) {return "{$ catlinks}" -} } funksie getCategoryLinks () {globale $ wgOut, $ wgUser, $ wgTitle, $ wgUseCategoryBrowser-globale $ wgContLang-as (telling ($ wgOut-> mCategoryLinks) == 0) terugkeer `` - $ vel = $ wgUser-> getSkin ( ) - # separator $ September = "" - // Unicode bidi gebou met behulp van oortrek karakters // om te verseker dat die skakels nie aan mekaar raak so deurmekaar $ r = $ wgContLang-> isRTL ()? `rtl`: `ltr` - $ embed = "
`- # kry `n groot boom onder ouer $ parenttree = $ wgTitle-> getParentCategoryTree () - # die vel voorwerp oorgedra word deur verwysing en wat nie kan verkry word binne die metode # subfunksie drawCategoryBrowser $ tempout = ontplof ( " n "Skin :: drawCategoryBrowser ($ parenttree, $ hierdie)) - # skoon die eerste dummy inskrywing en bestellings ontstel ($ tempout [0]) - asort ($ tempout) - # een getoon deur line = $ s. implodeer ("
n ", $ tempout) -} retour $ s-}
Metode 3
Kode van die belangrikste metode uitgevoer ()- As u nie die lyne sal gebruik wat $ wgUser, $ wgSitename en $ skin verklaar nie, kan u dit verwyder.
VOER funksie () {// verklaring van globale veranderlikes en die verkryging van vel voorwerp in die geval wat jy nodig het om dit te gebruik tardeglobal $ wgUser, wgSitename- $ $ $ wgUser- vel => getSkin () - // $ webwerf naam herstel hierdie-> stel ( `SITENAME` $ wgSitename) - // waarskuwings onderdruk om kruip waarskuwings oor verlore $ this-> datawfSuppressWarnings () te voorkom -
Metode 4
Kode van die struktuur Hoof XHTML- Opening kode Hier vertel jy die vel om die HTML-tag uit te voer en al die nodige XHTML-naamruimtes te verklaar. Die volgende kode is `n tipiese stelling wat u kan aanpas as u wil, maar dit is waarskynlik nie nodig nie.
?> data [`xhtmlnamespaces`] as $ tag => $ ns) {?> xmlns: php echo "{$ tag} = " {$ ns} "" -}?> xml: lang = " php $ this-> teks (`lang`)?> "lang =" php $ this-> text (`lang`)?> "dir =" php $ this-> text (`dir`)?>
- Die kopelement. Hier uitvoer jy die hoofelement saam met al die inhoud daarvan. Dit sluit in skakels na style sheets, kliënt kant skrifte en metadata vir robots en blaaiers. Die kode wat hier ingesluit is, is `n tipiese kode wat u dalk moet wysig om enige aangepaste skrif of stylblad in te sluit.
- Vir hierdie kode om te werk soos verwag, moet u die volgende lêers hê (as u dit nie benodig nie, kan u die lyne verwyder waar enige van hierdie style sheets ingevoer word):
- /common/commonPrint.css. Stylvel vir die druk van bladsye. As jy nie die standaarddrukstylvel wil gebruik nie, kan jy die pad verander waar dit is.
- main.css, contents.css. Die belangrikste stylvelle vir jou vel. Hierdie moet in u velmap (/ skins / proefskink in hierdie voorbeeld wees)
- handheld.css. `N Stylvel wat gebruik word met draagbare toestelle.
- IE50Fixes.css, IE55Fixes.css, IE60Fixes.css, IE70Fixes.css. Reëlings vir verskillende blaaiers. U kan hierdie lêers kopieer van dié van `n bestaande vel, aangesien u waarskynlik niks hoef te verander nie.
- Die laaste lyne, begin in "/ *** Verskeie skrifte en style wat verband hou met MediaWiki *** /" sluit stylvelle spesifiek vir die gebruiker, die bladsy en die breedte van die bladsy in. As jy nie hierdie funksies gaan gebruik nie, moet jy net alles verwyder wat bo die kommentaar is .
- Dit is waargeneem dat die oproep $ this-> html (`headscripts`) in sommige gevalle tot foute lei, so as iets nie goed werk nie, probeer om dit te verwyder.
- As die kode vir een of ander rede nie behoorlik werk nie, kan jy heeltemal uitlaat hierdie kode en skryf jou eie kode, insluitend skakels na style sheets, draaiboeke en titel tag, alles op jou eie!
- Die openingsteken van die liggaam. Skep die openingsteken van die liggaam. Die kans is dat jy dit nie moet verander nie, tensy jy die lyfstyl op die etiket wil kodeer.
- Sluitingsnommer. Dit word bygevoeg aan die einde van die lêer. Maak enige etiket, skrip of PHP-kode wat oop is, oop. Al die kode wat hier volg moet voor dit geplaas word, dit moet die laaste reël van die vellêer wees.
- Let op die gebruik van $ this-> teks ($ msg) en $ this-> html ($ msg). Hulle sal baie langs die vel gebruik word.
- Naam van die webwerf:
- Beeld van die webwerf logo
- Site slagspreuk:
- Terrein waarskuwingsblok. Die inhoud van die webwerf word gewoonlik gewysig en bygevoeg aan die WikiMedia-bladsyboodskap: Sitenotice.
- Gebruikersboodskap-kennisgewingblok:
- Intra-bladsy navigasie blok (opsioneel):
- Naam van die bladsy:
- Ondertitel van die bladsy:
- Inhoud van die bladsy:
- Kategorie skakels:
- Footer. Hierdie kode is iteratief, dus jy moet versigtig wees wanneer jy dit kopieer!
- Gebruiker se nutsbalk Hierdie kode skep die gebruiker se navigasie skakels soos die gebruiker se bladsy, besprekingsblad, sluitingstydperk, ens.
- Toolbar van die bladsy. Hierdie kode bevat die redigering-, skeppings- en besprekings skakels, saam met ander afhangende van die gebruiker se groep.
- Kennisgewing van bladsy herstel. As die bladsy voorheen verwyder is en die gebruiker die bladsye kan ophaal, moet hierdie skakel verskyn (as jy kies)
- Soek portlet (die soekkassie). Dit is `n implementering met die minimum inhoud wat net wys wat moet uitgaan vir die soekbalk om te werk.
- Toolbar portlet:
- tooltipAndAccesskey (`t-whatlinkshere`)?> php $ this-> msg (`whatlinkshere`)?> phpif ($ this-> data [`nav_urls`] [`recentchangeslinked`]) {?>
- tooltipAndAccesskey (`t-recentchangeslinked`)?> php $ this-> msg (`recentchangeslinked`)?> php}} as (isset ($ this-> data [`nav_urls`] [`trackbacklink`])))
- tooltipAndAccesskey (`t-trackbacklink`)?> php $ this-> msg (`trackbacklink`)?> php} as ($ this-> data [`feeds`]) {?>
- php foreach ($ this-> data [`feeds`] as $ key => $ feed) {?> tooltipAndAccesskey (`feed -`. $ key)?> php echo htmlspecialchars ($ feed [`text`])?> - php}?> Php} foreach (array ( `Bydraes`, `Blockip "," Email User`, `upload`, `specialpages`) as $ spesiale) {if ($ this-> data [ `nav_urls`] [$ spesiale]) { ?> tooltipAndAccesskey (`t -`. $ special)?> php $ this-> msg ($ special)?> php}} as (! leeg ($ this-> data [`nav_urls`] [`print`] [`href`])))
- tooltipAndAccesskey (`t-print`)?> php $ this-> msg (`printable version`)?> php} as (! leeg ($ this-> data [`nav_urls`] [`permalink`] [`href`])) {?>
- tooltipAndAccesskey (`t-permalink`)?> php $ this-> msg (`permalink`)?> php} elseif ($ this-> data [`nav_urls`] [`permalink`] [`href`] === ``) {?> php echo $ skin-> tooltip (`t-ispermalink`)?> php $ this-> msg (`permalink`)?> php} wfRunHooks (`TrialSkinTemplateToolboxEnd`, array ( $ hierdie)) -?>
- Taal skakels
- Voordat u jou nuwe vel wil skep of verander, moet u altyd `n rugsteun van die databasis, die installeringsgids en enige ander element verwant aan u MediaWiki maak.
- Hierdie prosedure moet gedoen word deur iemand (of ten minste onder toesig van iemand) wat `n matige kennis van die MediaWiki-sagteware en die PHP-taal het. Foute in die kode kan foute en onverwagte resultate oplewer.
- Soos u kode groei, kan dit gerieflik wees om `n deel daarvan in `n ander lêer te skei en dit dan in die hooflêer van u vel in te sluit.
- U kan afsonderlike funksies gebruik om spesifieke dele van die koppelvlak te skep. Dit is veral nuttig vir partye wat `n groot hoeveelheid kode benodig en veranderinge van u kant vereis.
- Dit kan nuttig wees om `n vel met die minimum inhoud te implementeer en dit dan as `n basisklas vir die res van jou velle te gebruik.
- Al die kode wat in hierdie artikel getoon word, bied `n minimum standaard implementering. Dit is bedoel om die leser te wys hoe om inligting uit die vel sjabloon klas te onttrek en wat om te oorweeg vir elke stuk inligting. U kan (en sekerlik) die standaard gedrag wat by hierdie implementering ingesluit word, verander.
- Hoe om `skins` in Minecraft te kry
- Hoe om `n fotografie webwerf te skep
- Hoe om `n webwerf te skep sonder om HTML te gebruik
- Hoe om `n gratis webblad te skep
- Hoe om `n webwerf te ontwerp wat professioneel gratis lyk
- Hoe om `n sjabloon vir `n webwerf te ontwerp
- Hoe om RPM pakkette te onttrek
- Hoe om geld te maak met `n wiki
- Hoe om `n webwerf te maak met behulp van WordPress
- Hoe om `n Wiki in minder as 20 minute te installeer
- Hoe om die posisionering van jou bladsy in Google en Alexa te verbeter
- Hoe om jou musiekversameling te organiseer met MediaWiki
- Hoe om `n kamer te ontwerp
- Hoe om verwysings in Wikipedia by te voeg
- Hoe om verwysings vir jou webwerf te kry
- Hoe om `n Web ryk in `n jaar te bou
- Hoe om `n wiki te skep
- Hoe om besigheidskaartjies aanlyn te maak
- Hoe om te soek op wikiHow
- Hoe om `n wiki te gebruik
- Hoe om `n sagteware-ontwikkelingswerk te kry
teks (`mimetype`)?> - charset =teks (`charset`)?> "/> php $ this-> html (`headlinks`)?>php $ this-> text (`pagetitle`)?> php / *** algemene style sheets *** /?> php / *** media spesifieke style sheets *** /?>data [`printable`]))) (?> media = "print" php}?> href = " php $ this-> text (`stylepath`)?> / common / commonPrint.css? php echo $ GLOBALS [`wgStyleVersion`]?> "/> php / *** blaaier spesifieke style sheets *** /?> php / *** IE algemene regstellings *** /?> php print Skin :: makeGlobalVariablesScript ($ this-> data) -?> php / *** Verskeie skrifte en style verwant aan MediaWiki *** /?> phpif ($ this-> data [`jsvarurl`]) {?> php}?> phpif ($ this-> data [`pagecss`]) {?> php} as ($ this-> data [`usercss`]) {?> php} as ($ this-> data [`userjs`]) {?> php} as ($ this-> data [`userjsprev`]) {?> php} as ($ this-> data [`trackbackhtml`]) druk $ this-> data [`trackbackhtml`] -?> php $ this-> html (`headscripts`)?>
data [`body_ondblclick`]) {?> ondblclick = " php $ this-> teks (`body_ondblclick`)?> " php}?> php as ($ this-> data [`body_onload`]) {?> onload = " php $ this-> teks (`body_onload`)?> " php}?> class = "mediawiki php $ this-> teks (`nsclass`)?> php $ this-> text (`dir`)?> php $ this-> teks (`page class`)?>
php $ this-> html (`bottomscripts`) - / * JS oproepe runBodyonloadHook * /?> php $ this-> html (`report time`)?> php as ($ this-> data [`debug`]):?> php endif -?> phpwfRestoreWarnings () -} // einde van die uitvoering ()} metode // einde van die klas?>
Metode 5
Algemene elemente van die werfkodephp echo $ this-> teks (`site name`)?>
php $ this-> msg (`tagline`)?>
php as ($ this-> data [`sitenotice`]) {?>
php as ($ this-> data [`newtalk`]) {?>
php as ($ this-> data [`showjumplinks`]) {?>
Metode 6
Algemene elemente van die bladsy kodephp $ this-> html (`body text`)?>
php as ($ this-> data [`catlinks`]) {?>
- Php $ footerlinks = array ( `lastmodified`, `númerodevisitas`, `númerodeusuariosmirando` `` derechosdeautor `krediete "," privaatheid "," acercade`, `avisolegal "," slagspreuk ") - foreach ($ footerlinks as $ aLink) {if (isset ($ this-> data [$ aLink]) $ this-> data [$ aLink]) {?> php $ this-> html ($ aLink)?> php}}?>
Metode 7
Kode van algemene werkbalkephp $ this-> msg (`personal tools`)?>
- php foreach ($ this-> data [`personal_urls`] as $ key => $ item) {?> phpif ($ item [`aktief`]) {?> class = "aktief" php}?> tooltipAndAccesskey (`pt -`. $ key)?> phpif (! leeg ($ item [`class`])))? (?> class = " phpecho htmlspecialchars ($ item [`class`])?> " php}?> phpecho htmlspecialchars ($ item [`text`])?> php}?>
php $ this-> msg (`views`)?>
- php foreach ($ this-> data [`content_actions`] as $ key => $ tab) {?> phpif ($ tab [`class`]) {?> class = " php echo htmlspecialchars ($ tab [`class`])?> " php}?> tooltipAndAccesskey (`ca -`. $ key)?> phpecho htmlspecialchars ($ tab [`text`])?> php}?>
php as ($ this-> data [`undelete`]) {?>
Metode 8
Portlets (hoof navigasie blokke)php $ this-> msg (`toolbox`)?>
- phpif ($ this-> data [`notspecialpage`]) {?>
php as ($ this-> data [`language_urls`]) {?>
php $ this-> msg (`other languages`)?>
- php foreach ($ this-> data [`language_urls`] as $ langlink) {?> php}?>