MediaWiki 탐색 메뉴 개선하기
MediaWiki 탐색 메뉴를 사용자 정의하면 사용자 경험이 크게 향상되어 더 접근하기 쉽고 기능적인 도구를 사용할 수 있습니다. Timeless 테마로 MediaWiki 1.39를 실행하는 경우 "인쇄 가능한 버전"과 같은 특정 옵션을 추가하는 것이 어려울 수 있습니다. 사이드바 메뉴의 고유한 구성으로 인해 이 작업은 간단하지 않습니다.
관리자들의 공통 목표 중 하나는 사용자에게 인쇄 가능한 페이지에 빠르게 액세스할 수 있는 방법을 제공하는 것입니다. 이 기능은 학술 또는 기업 위키와 같이 오프라인 또는 하드 카피 자료를 자주 참조하는 환경에 필수적입니다. 그러나 많은 사람들은 프로세스가 예상보다 덜 직관적이라고 생각합니다. 🖨️
이 가이드에서는 탐색 메뉴, 특히 "임의 페이지" 옵션 아래에 "인쇄 가능한 버전" 링크를 통합하는 방법을 살펴보겠습니다. 수정을 위해 미디어위키:사이드바를 사용하려면 Timeless 테마 내에서의 구문과 동작에 대한 확실한 이해가 필요합니다.
막히거나 문제가 발생하더라도 걱정하지 마세요! 이 연습이 끝나면 변경 사항을 구현하는 방법뿐만 아니라 MediaWiki 사이드바가 작동하는 방식에 대한 통찰력도 얻게 됩니다. 이 실질적인 개선 사항에 대해 자세히 살펴보겠습니다. 🌟
명령 | 사용예 |
---|---|
$wgHooks['SkinBuildSidebar'][] | 이 명령은 렌더링 중에 사이드바 구조를 수정할 수 있는 사용자 정의 후크를 MediaWiki에 등록합니다. 탐색 메뉴를 동적으로 사용자 정의하는 데만 해당됩니다. |
$skin->$skin->msg() | MediaWiki에서 현지화된 메시지나 링크를 검색합니다. 이 컨텍스트에서는 내장된 언어 설정을 사용하여 "인쇄 가능한 버전" 기능에 대한 URL을 동적으로 가져옵니다. |
document.addEventListener('DOMContentLoaded') | DOM이 완전히 로드된 후에만 JavaScript 논리가 실행되도록 보장합니다. 이는 기존 탐색 메뉴를 동적으로 수정하는 데 중요합니다. |
document.createElement() | 프런트 엔드 솔루션의 탐색 메뉴에 동적으로 추가되는 li 및 태그와 같은 새 HTML 요소를 만듭니다. |
arrayHasKey | 배열에 특정 키가 있는지 확인하기 위해 단위 테스트에 사용되며 "인쇄 가능한 버전" 옵션이 사이드바 구조에 올바르게 추가되었는지 확인합니다. |
if (!defined('MEDIAWIKI')) | 스크립트가 MediaWiki 프레임워크 내에서 실행되도록 보장하여 승인되지 않은 실행이나 독립 실행형 실행을 방지합니다. |
$GLOBALS['wgHooks'] | MediaWiki 내의 전역 후크에 액세스하여 개발자가 응용 프로그램 수명 주기의 특정 지점에서 동적으로 기능을 추가하거나 수정할 수 있도록 합니다. |
link.href | 인쇄 가능한 버전을 활성화하려면 ?printable=yes와 같은 쿼리 매개변수를 추가하여 JavaScript에서 새로 생성된 하이퍼링크의 URL을 동적으로 설정합니다. |
SkinBuildSidebar | 사이드바 요소를 직접 조작할 수 있는 특정 MediaWiki 후크로, 새 링크나 메뉴 항목을 추가하는 데 관련성이 높습니다. |
TestCase::createMock() | 전체 MediaWiki 인스턴스가 필요 없이 사이드바 수정 사항을 검증하기 위해 MediaWiki의 Skin 클래스를 시뮬레이션하여 단위 테스트를 위한 모의 개체를 만듭니다. |
미디어위키 탐색 메뉴를 사용자 정의하는 방법
위에 제공된 스크립트는 "임의 페이지" 링크 아래에 "인쇄 가능한 버전" 옵션을 추가하여 미디어위키 탐색 메뉴를 향상시키는 데 중점을 두고 있습니다. 이러한 수정은 후크를 사용한 백엔드 사용자 정의 또는 JavaScript를 사용한 프런트엔드 스크립팅을 통해 수행할 수 있습니다. 예를 들어, PHP 스크립트는 다음을 활용합니다. 배열과 "SkinBuildSidebar" 후크를 사용하여 새 탐색 항목을 동적으로 삽입합니다. 이 접근 방식을 사용하면 추가 항목이 기존 사이드바 구조와 원활하게 통합되어 Timeless 테마와 같은 다양한 스킨에 적응할 수 있습니다. 🖥️
프런트엔드 JavaScript 솔루션은 DOM이 완전히 로드된 후 탐색 메뉴를 대상으로 하는 보다 동적인 대안을 제공합니다. 다음과 같은 명령을 사용하여 새로 생성된 목록 항목을 탐색 메뉴에 추가하는 경우 이 방법에서는 백엔드 코드를 수정할 필요가 없습니다. 예를 들어, 대학 위키에서는 강의 자료에 액세스하는 학생들을 위해 "인쇄 가능 버전" 기능을 신속하게 배포하여 실제 사이트에 대한 중단을 최소화할 수 있습니다. 이러한 유연성 덕분에 백엔드 액세스가 제한되거나 사용할 수 없는 상황에 이상적입니다. 📄
제공된 스크립트의 또 다른 주요 측면은 모듈성과 모범 사례에 중점을 둔 것입니다. PHP 스크립트에는 MediaWiki 프레임워크 내에서만 실행되도록 하는 오류 처리 기능이 포함되어 있습니다. 마찬가지로 JavaScript 로직은 탐색 메뉴를 수정하기 전에 해당 메뉴의 존재 여부를 확인하여 런타임 오류의 위험을 줄입니다. 예를 들어 기업 위키에서는 사이드바가 프로젝트 문서나 보고서에 액세스하는 직원을 위한 중앙 탐색 허브인 경우가 많기 때문에 안정성을 보장하는 것이 중요합니다.
단위 테스트는 "인쇄 가능한 버전" 링크가 다양한 시나리오에 올바르게 추가되었는지 확인하여 스크립트를 보완합니다. 모의 개체를 사용하여 MediaWiki 환경을 시뮬레이션함으로써 이러한 테스트는 솔루션이 다양한 구성에서 작동하는지 확인합니다. 이 테스트 프로세스는 배포 문제에 대한 보호 기능을 제공하므로 여러 Wiki를 관리하는 개발자에게 특히 유용합니다. 궁극적으로 PHP 백엔드 후크, 프론트엔드 JavaScript 또는 강력한 단위 테스트를 통해 스크립트는 최적의 성능과 안정성으로 MediaWiki 탐색을 향상시키는 다양한 방법을 제공합니다. 🌟
미디어위키 탐색에 "인쇄 가능한 버전" 옵션 추가하기
PHP를 사용하여 미디어위키 사이드바 구성을 수정하는 서버 측 스크립트입니다.
//php
// Load MediaWiki's core files
if ( !defined( 'MEDIAWIKI' ) ) {
die( 'This script must be run from within MediaWiki.' );
}
// Hook into the Sidebar generation
$wgHooks['SkinBuildSidebar'][] = function ( &$sidebar, $skin ) {
// Add the "Printable version" link below "Random page"
$sidebar['navigation'][] = [
'text' => 'Printable version',
'href' => $skin->msg( 'printable' )->inContentLanguage()->text(),
'id' => 'n-printable-version'
];
return true;
};
// Save this script in a custom extension or LocalSettings.php
//
새 링크 추가를 위해 MediaWiki 사이드바 구성 사용
Timeless 테마에서 MediaWiki:사이드바 페이지를 편집하는 수동 방법.
* navigation
mainpage|mainpage-description
recentchanges-url|recentchanges
randompage-url|randompage
printable-version|Printable version
* SEARCH
* TOOLBOX
// Save changes in the MediaWiki:Sidebar special page.
// Ensure "printable-version" message key is properly defined.
동적 프런트엔드 JavaScript 솔루션
"인쇄 가능한 버전" 옵션을 동적으로 추가하기 위해 JavaScript를 사용하는 클라이언트 측 스크립트입니다.
document.addEventListener('DOMContentLoaded', function () {
const navList = document.querySelector('.mw-portlet-navigation ul');
if (navList) {
const printableItem = document.createElement('li');
printableItem.id = 'n-printable-version';
const link = document.createElement('a');
link.href = window.location.href + '?printable=yes';
link.textContent = 'Printable version';
printableItem.appendChild(link);
navList.appendChild(printableItem);
}
});
사이드바 수정을 위한 단위 테스트
백엔드에서 "인쇄 가능한 버전" 통합을 검증하기 위한 PHP 단위 테스트입니다.
use PHPUnit\Framework\TestCase;
class SidebarTest extends TestCase {
public function testPrintableVersionLinkExists() {
$sidebar = []; // Simulate Sidebar data structure
$skinMock = $this->createMock(Skin::class);
$callback = $GLOBALS['wgHooks']['SkinBuildSidebar'][0];
$this->assertTrue($callback($sidebar, $skinMock));
$this->assertArrayHasKey('Printable version', $sidebar['navigation']);
}
}
// Run using PHPUnit to ensure robust testing.
고급 사용자 정의로 MediaWiki 향상
MediaWiki 인스턴스에 사용자 정의 기능을 추가하는 것은 단순한 탐색 메뉴 수정 이상의 작업을 수행할 수 있습니다. 예를 들어, 관리자는 내보내기 옵션 통합, 사용자 역할에 따른 레이아웃 사용자 정의 등 특정 사용자 요구 사항에 맞게 기능을 향상시키는 방법을 모색하는 경우가 많습니다. "인쇄 가능한 버전" 추가를 포함한 이러한 개선 사항은 위키를 더욱 동적이고 사용자 친화적으로 만드는 데 필수적입니다. 새로운 링크 통합 대학 포털이나 회사 내부 문서의 고유한 요구 사항에 맞게 맞춤화할 수 있습니다.
살펴볼 가치가 있는 영역 중 하나는 새로 추가된 메뉴 옵션의 현지화입니다. 예를 들어, "인쇄 가능한 버전" 라벨이 사용자의 언어 기본 설정에 따라 동적으로 번역되도록 하면 포괄성이 강화됩니다. 다음과 같은 MediaWiki에 내장된 현지화 방법을 사용합니다. 를 통해 개발자는 자신의 사용자 정의를 MediaWiki의 글로벌 표준에 맞출 수 있습니다. 이는 직원이나 기여자가 여러 언어로 Wiki에 액세스하는 다국적 조직에서 특히 유용합니다. 🌍
또 다른 중요한 고려 사항은 사용자 정의와 선택한 MediaWiki 테마 간의 상호 작용입니다. 그만큼 예를 들어, 호환성을 보장하기 위해 모든 변경 사항을 철저히 테스트해야 하는 고유한 구조를 사용합니다. 예를 들어 '인쇄 가능한 버전'과 같이 시각적으로 눈에 띄는 탐색 요소는 여러 기기에서 모양을 유지하기 위해 추가 CSS 조정이 필요할 수 있습니다. 이러한 미묘한 수정을 통해 사용자의 장치나 화면 크기에 관계없이 인터페이스가 직관적이고 전문적으로 유지됩니다. 📱
- 미디어위키 사이드바를 어떻게 편집할 수 있나요?
- MediaWiki:사이드바 페이지를 수정하여 사이드바를 편집할 수 있습니다. 다음과 같은 명령을 사용하십시오. 그리고 새 링크를 정의합니다.
- "Timeless" 테마는 무엇이며, 맞춤화에 어떤 영향을 미치나요?
- Timeless 테마는 반응형 디자인을 갖춘 현대적인 MediaWiki 스킨입니다. 사이드바 변경과 같은 사용자 정의는 올바르게 표시되는지 확인하기 위해 추가 테스트가 필요할 수 있습니다.
- 새로운 사이드바 옵션에 현지화를 추가할 수 있나요?
- 예, 사용할 수 있습니다 메뉴 항목에 대한 현지화된 라벨을 가져와 다국어 위키와의 호환성을 보장합니다.
- 백엔드 코드를 수정하지 않고도 새 기능을 추가할 수 있나요?
- 예, 다음과 같은 프런트엔드 JavaScript 솔루션을 사용합니다. 백엔드 변경 없이 링크나 기능을 동적으로 추가할 수 있습니다.
- 새로운 사이드바 기능을 어떻게 테스트합니까?
- PHP 단위 테스트 또는 PHPUnit과 같은 테스트 프레임워크를 사용하여 사이드바 수정 사항을 시뮬레이션하여 예상대로 작동하는지 확인하세요.
미디어위키 탐색에 "인쇄 가능한 버전" 옵션을 추가하면 위키의 유용성과 구성이 더욱 향상됩니다. PHP 스크립팅부터 JavaScript까지 여기에 자세히 설명된 접근 방식을 사용하면 모든 관리자가 사용자 정의에 액세스하고 효과적으로 사용할 수 있습니다.
현지화 및 테마 호환성을 우선시함으로써 귀하의 위키는 다양한 청중을 위한 신뢰할 수 있는 리소스가 됩니다. 이러한 향상된 기능은 기능을 향상시킬 뿐만 아니라 잘 관리되고 접근 가능한 플랫폼을 반영하여 사용자 친화적인 경험을 제공합니다. 🌟
- 사이드바 사용자 정의에 대한 공식 미디어위키 문서: 미디어위키 사이드바 매뉴얼
- Timeless 테마 구성의 커뮤니티 토론 및 예: MediaWiki 시대를 초월한 테마
- 탐색 메뉴 레이아웃을 보여주는 예시 이미지: 탐색 메뉴 예
- 후크 및 확장에 대한 PHP 문서: PHP 매뉴얼