본문 바로가기
미디어위키

Extension HeadScript

by 다움위키 2023. 12. 28.

HeadScript 확장은 스크립트를 위키의 </head> 앞에 쉽게 추가하는 것을 허용합니다.

헤드 스크립트에 대해 코드는 "LocalSettings.php"에 정의되고 변수에 의해 제어됩니다. 이 구현은 경험 없는 사용자에게 위키의 </head> 앞에 헤드 스크립트를 쉽게 구현하도록 만듭니다. 그것은 역시 헤드 스크립트가 사이트 공지에 추가되면 위키 관리자에 의해 가능하게 되는 것처럼 변경하거나 제거될 수 없는 헤드 스크립트를 추가하도록 만듭니다. 이것은 쿠키 동의 플러그인 또는 CSS 스타일 링크를 배치하는 데 확장 프로그램이 특히 유용한데, 왜냐하면 그러한 콘텐츠는 악의적인 관리자에 의해 제거할 수 없기 때문입니다.

Installation

미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.

미디어위키 설정 LocalSettings.php 파일에 다음을 추가합니다:

wfLoadExtension( 'HeadScript' );

필요하다면 구성하십시오.

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인하십시오.

Configuration

하나 이상의 헤드 스크립트는 위키에 추가될 수 있습니다. 헤드 스크립트는 HTML 및/또는 JavaScript로 구성될 수 있습니다.

헤드 스크립트를 구성하기 위해, "LocalSettings.php"에 해당 확장 설치 줄 뒤에 다음을 추가하십시오:

$wgHeadScriptCode = <<<'START_END_MARKER'
<script></script>
START_END_MARKER;

START_END_MARKER 항목으로 첫 번째와 마지막 줄을 그대로 둬야 하는데, 이것은 PHP의 특수 구문이기 때문입니다 (이것이 없으면, 스크립트 내에서 아포스트로피를 처리하기가 까다로울 것입니다). 마지막 줄의 마커 주위에 공백을 추가하지 마십시오, 그러면 중단됩니다 (이 구문에 대한 자세한 내용). 뒤에 새 줄을 추가하십시오.

추가적인 스크립트를 더하기 위해, 단순히 마커 사이에 스크립트를 포함하십시오:

$wgHeadScriptCode = <<<'START_END_MARKER'
<script></script>
<script></script>
<script></script>
START_END_MARKER;

필요하다면 역시 스크립트의 이름도 지정할 수 있으며, 해당 확장 설치 줄 뒤에 다음을 추가하십시오:

$wgHeadScriptName = 'my-wonderful-script';

META 및 LINK 요소는 역시 다음처럼 더해질 수 있습니다:

$wgHeadScriptCode = <<<'START_END_MARKER'
<meta name="author" content="Wikimedia Foundation" />
<link rel="author" type="text/plain" href="/humans.txt" />
<script></script>
START_END_MARKER;

Google analytics

Extension:Google Analytics Integration 확장이 호환성과 관련된 업데이트만 진행되고, 새로운 구글 애널리틱스에서 지원되지 않을 전망입니다. 기존 버전의 구글 애널리틱스는 2023년 7월 말에 서비스가 종료될 예정입니다. 따라서, 대안적인 방법이 요구되며, Extension:Google Analytics Integration 확장에서 이에 관한 내용이 있습니다.

한편, 그 대안 중 하나는 이 확장이며, 새로운 버전에서 정보를 획득하기 위해, TRACKING_ID는 G- 뒤에 오는 열 자리의 영문자로 측정됩니다.

설정이 작동하는지 여부는 실시간 정보를 통해 확인할 수 있고, 날짜가 바뀐 후에 전날의 데이터가 애널리틱스 홈페이지에 기록됩니다.

이를 위해, 미디어위키 LocalSettings.php 파일에 위의 확장 로드 줄 아래에 다음을 추가하십시오:

$wgHooks['BeforePageDisplay'][] = function( OutputPage &$out, Skin &$skin ) {
     $code = <<<HTML
<!-- Global site tag (gtag.js) - Google Analytics -->
 <script>  window.dataLayer = window.dataLayer || [];  function gtag(){dataLayer.push(arguments);}  gtag('js', new Date());  gtag('config', 'TRACKING_ID'); </script> HTML; $out->addHeadItem( 'gtag-insert', $code ); return true; };
위의 코드에서 2곳에 나오는 TRACKING_ID를 자신의 id로 수정하셔야 합니다!!

External Resources