2011-11-22 5 views
1

MediaWiki의 확장 기능을 개발 중입니다.이 기능은 위의 1.16.5 버전보다 향상된 Mediawiki 설치에서 작동하지 않는 다른 확장 기능 (자체 개발)을 기반으로합니다. 특정 네임 스페이스에 속한 페이지에 자바 스크립트를 포함해야하며 ResourceLoaderhttp://www.mediawiki.org/wiki/ResourceLoader을 사용할 수 없습니다.mediawiki 1.16.5 : 특정 네임 스페이스에 대한 javacript로드

간단하게 처리 할 수 ​​있는지 아는 사람이 있습니까? 네임 스페이스에 속한 페이지의 사용자 정의 렌더링을 위해 JQuery 및 Datatables를 포함해야합니다.

답변

2

적어도 3 가지 방법이 있습니다.

제 1 회 접근 방식은 마법 페이지 MediaWiki:Common.js을 편집하고 다음과 같이 뭔가를 추가하는 것입니다 : 당신은 블록에 임의의 자바 스크립트를 배치 할 수 있습니다

if(wgNamespaceNumber == 0) { // NS_MAIN 
    importScript('MediaWiki:MyScript.js'); 
} 

importScript 비트 위키 페이지에 저장된 자바 스크립트를 실행하는 존재하지만, JS를 즉시 포함시키는 다른 방법도 있습니다 (예 : this question 참조). 사물의 MediaWiki 측면에 대한 자세한 내용은 Manual:Interface/JavaScript을 참조하십시오.

두 번째 방법은 MediaWiki 페이지를 생성하는 PHP를 해킹하여 현재 네임 스페이스에 따라 <script> 태그를 삽입하는 것입니다.하지만 좀 더 복잡합니다. 사용자 정의 확장 프로그램을 빌드하고 적절한 지점. ParserAfterTidy 훅이 적합 해 보입니다 (Hooks 참조).

세 번째 방법은 단순히 스킨을 편집하고 위키의 모든 페이지에 JS를로드하는 것입니다. 모든 페이지에서이 작업을 수행하지 않으려는 이유가 있습니까? 어쨌든 그들은 캐시되어있어 한번의 공격 만합니다.

+0

감사합니다. 그게 제가 찾고 있던 대답입니다. 나는'MediaWiki : Common.js' 접근 방식을 갈 것입니다. 링크 주셔서 감사합니다! –

관련 문제