Centrum Społeczności
(Dodano nową stronę „Globalna funkcja JavaScript <code>importArticles()</code> udostępnia wspólny interfejs do wgrywania na wikii artykułów, które zawierają skrypty i style. Jej funk...”)
Znacznik: sourceedit
 
Znacznik: apiedit
Linia 150: Linia 150:
 
[[Kategoria:JS]]
 
[[Kategoria:JS]]
   
[[en:Help:Including_additional_CSS_and_JS/technical]]
 
 
[[de:Hilfe:Einbinden von zusätzlichem CSS und JS/technisch]]
 
[[de:Hilfe:Einbinden von zusätzlichem CSS und JS/technisch]]
 
[[en:Help:Including additional CSS and JS/technical]]
 
[[es:Ayuda:Incluyendo JavaScript y CSS adicional/técnico]]
 
[[es:Ayuda:Incluyendo JavaScript y CSS adicional/técnico]]
 
[[fr:Aide:Inclure du CSS et JS supplémentaires/technique]]
 
[[it:Aiuto:Includere CSS e JS aggiuntivi/avanzato]]
 
[[it:Aiuto:Includere CSS e JS aggiuntivi/avanzato]]
  +
[[ja:ヘルプ:追加のJavaScriptとCSSをインクルードする/技術情報]]
[[ru:Справка:Включение дополнительных JS и CSS/Техническая часть]]
 
[[pt:Ajuda:Como_incluir_JavaScript_e_CSS_adicionais/Técnico]]
 
 
[[ko:도움말:자바 스크립트 및 CSS 불러오기/importArticles]]
 
[[ko:도움말:자바 스크립트 및 CSS 불러오기/importArticles]]
  +
[[pt:Ajuda:Como incluir JavaScript e CSS adicionais/Técnico]]
 
[[ru:Справка:Включение дополнительных JS и CSS/Техническая часть]]
 
[[vi:Trợ giúp:Bao gồm JavaScript và CSS bổ sung/kỹ thuật]]
 
[[vi:Trợ giúp:Bao gồm JavaScript và CSS bổ sung/kỹ thuật]]
 
[[zh:Help:導入更多JavaScript與CSS/技術]]
 
[[zh:Help:導入更多JavaScript與CSS/技術]]
[[fr:Aide:Inclure du CSS et JS supplémentaires/technique]]
 

Wersja z 12:48, 22 sty 2016

Globalna funkcja JavaScript importArticles() udostępnia wspólny interfejs do wgrywania na wikii artykułów, które zawierają skrypty i style.

Jej funkcjonalność jest podobna jest podobna do funkcji importScriptPage i importStylesheetPage. Jednak, importArticles() pozwala na import artykułów z innych wikii, scalać kilka artykułów w jeden, minifikować je oraz zwracaj w formie pojedynczego żądania. To zmniejsza zarówno rozmiar pliku jak i ruch wywołany pobraniem pliku, dzięki czemu wiki, która używa dużej ilości dodatkowych plików ładuje się szybciej.

Użycie

Funkcja importArticles() wymaga na zdefiniowaniu modułów do wgrania artykułów. Moduły są obiektami JavaScript z własnościami w formie klucz/wartość. Poniższe właściwości są wymagane dla każdego modułu:

  • type – oznacza typ artykułów jaki zostanie zawarty w tym module. Wspierane typy to:
  • articles – artykuły, które mają zostać zaimportowane. Więcej informacji na temat co tutaj wpisać znajdziesz w sekcji Namierzanie artykułów poniżej.

Do importArticles() można przekazać dowolną ilość modułów. Ale wszystkie artykuły w danym module muszą być tego samego typu.

Szablon:Notatka

Namierzanie artykułów

Do namierzania artykułów do zaimportowania jest używana prosta składnia. Jest bardzo podobna do i kompatybilna z linkami interwiki:

(Prefiks:{NazwaWiki}:){Artykuł}

To co w nawiasach jest opcjonalne, a to co w klamrach stanowi wartość wpisywaną przez użytkownika. Dwukropek służy do oddzielenia segmentów do parsowania. Prefiksy pozwalają na określenie gdzie i jak chcesz szukać artykułów i po nim z reguły następuje nazwa wiki, z wyjątkiem artykułów na lokalnej wikii.

Lokalne artykuły

Artykuły znajdujące się na lokalnej wiki można namierzyć podając ich tytuł w ten sam sposób jak można je zalinkować. Nie wymagają prefiksu czy nazwy wiki, ale dla wygody dostępny jest również prefiks local (lub w skrócie "l"). Przykładowo, jeśli chcesz zaimportować artykuł MediaWiki:Common.js, zadziała dowolna z poniższych wartości:

MediaWiki:Common.js
l:MediaWiki:Common.js
local:MediaWiki:Common.js

Artykuły zewnętrzne

Artykuły z innych wikii również mogą zostać zlokalizowane w ten sam sposób jak ich zalinkowanie. Jednak, w przeciwieństwie do lokalnych artykułów, zewnętrzne wymagają użycia prefiksu oraz nazwy wiki w celu określenia, z której wikii mają zostać zaimportowane. Wikia wspiera wybieranie na podstawie nazwy bazy danych, gdzie z reguły jest to angielska nazwa wiki, lub na podstawie jej adresu URL. Poszukiwanie na podstawie nazwy bazy danych wykonuje się za pomocą prefiksu external (lub "remote" albo "w" w skrócie), a lokalizowanie na podstawie URL wykonuje się za pomocą prefiksu url (lub w skrócie "u"). Przykładowo, jeśli chcesz zaimportować artykuł {{#NewWindowLink:w:c:dev:Highlight/code.css|Highlight/code.css}} z {{#NewWindowLink:w:c:dev|Wikia Developers Wiki}}, zadziała dowolna z poniższych wartości:

w:dev:Highlight/code.css
remote:dev:Highlight/code.css
external:dev:Highlight/code.css
u:dev:Highlight/code.css
url:dev:Highlight/code.css
u:dev.wikia.com:Highlight/code.css
url:dev.wikia.com:Highlight/code.css

Ta składnia działa też dla wiki w innych językach. Na przykład, jeśli chcesz dodać artykuł {{#NewWindowLink:w:c:it.onepiece:MediaWiki:Common.js|MediaWiki:Common.js}} z włoskiej {{#NewWindowLink:w:c:it.onepiece|One Piece Wiki}}:

u:it.onepiece:MediaWiki:Common.js
url:it.onepiece:MediaWiki:Common.js
url:it.onepiece.wikia.com:MediaWiki:Common.js

Z reguły łatwiej namierzyć zasoby na innych wikiach za pomocą URL niż bazy danych, ponieważ nie zawsze się zgadzają.

Zaawansowane użycie

Za kulisami, funkcja importArticles() wykonuje trzy kluczowe zadania:

  1. Generowanie odpowiednie sformatowanego URL do użycia z ResourceLoaderem,
  2. Wykonanie Sanity testu na modułach w celu sprawdzenia czy są poprawnie sformatowane,
  3. Wyświetlenie informacji użytkownikowi w przypadku wystąpienia błędu.

Niemniej jednak, użycie tej funkcji nie jest wymagane żeby uzyskać korzyści z łączenia i minifikowania wielu artykułów w jedno żądanie. Jeśli chcesz, możesz ręcznie wygenerować URL i użyć go do wgrania zasobów ręcznie za pomocą innych metod jak @import w CSS czy jQuery.getScript w JavaScript.

Chociaż jest wiele parametrów, które można dodać do URL, poniższe prawdopodobnie będą najbardziej przydatne:

Parametr Opis
mode Mówi ResourceLoaderowi, że będziemy wgrywać artykuły. Powinien mieć wartość "articles".
articles Lista artykułów. Jeśli ma zostać wgranych kilka artykułów, powinny zostać oddzielone za pomocą pionowej kreski "|".
only Typ artykułów do zaimportowania. Powinien mieć wartość "scripts" (JS) lub "styles" (CSS).
debug Ten parametr nie jest domyślnie wymagany, ale można podać wartość "true", która pozwoli na wyłączenie minifikacji co ułatwi znalezienie problemów w artykułach po imporcie.

Na koniec powinien powstać adres URL, który wygląda mniej więcej tak:

/load.php?mode=articles&articles=MediaWiki:Jeden.css|MediaWiki:Dwa.css&only=styles

Który może zostać użyty w połączeniu z @import, w ten sposób:

@import url("/load.php?mode=articles&articles=MediaWiki:Jeden.css|MediaWiki:Dwa.css&only=styles");

Przykłady

Importowanie kilku artykułów ze skryptami, jeden z lokalnej wiki, drugi z innej wikii:

importArticles({
    type: "script",
    articles: [
        "MediaWiki:MyCustomJavaScript.js",
        "external:dev:MediaWiki:External_include.js"
    ]
});

Importowanie kilku artykułów ze stylami, jeden z lokalnej wiki, drugi z innej wikii:

importArticles({
    type: "style",
    articles: [
        "MediaWiki:Common.css",
        "external:starwars:MediaWiki:External_include.css"
    ]
});

Importowanie kilku modułów w jednym wywołaniu funkcji:

importArticles({
    type: "script",
    articles: [
        "MediaWiki:MyCustomJavaScript.js",
        "external:dev:MediaWiki:External_include.js"
    ]
}, {
    type: "style",
    article: "MediaWiki:Common.css"
});

Przykłady alternatywnej składni

Funkcja importArticles() pozwala również na uproszczoną, alternatywną składnię dla typowych użyć. Dla wygody zdefiniowana jest również funkcja importArticle().

Importowanie jednego pliku na lokalnej wiki:

importArticle({
    type: "style",
    article: "MediaWiki:Common.css"
});

Zobacz również