$lang['tuto'] = "hướng dẫn"; ?>$lang['tuto'] = "hướng dẫn"; ?>$lang['tuto'] = "hướng dẫn"; ?> Cách thêm Phiên bản có thể in vào Menu Điều

Cách thêm "Phiên bản có thể in" vào Menu Điều hướng MediaWiki

Sidebar

Cải thiện Menu Điều hướng MediaWiki của bạn

Việc tùy chỉnh menu điều hướng MediaWiki của bạn có thể nâng cao đáng kể trải nghiệm người dùng, cho phép sử dụng các công cụ chức năng và dễ truy cập hơn. Nếu bạn đang chạy MediaWiki 1.39 với chủ đề Vượt thời gian, bạn có thể thấy khó khăn khi thêm các tùy chọn cụ thể như "Phiên bản có thể in được". Nhiệm vụ này không đơn giản do cấu hình độc đáo của menu thanh bên.

Một mục tiêu chung của các quản trị viên là cung cấp cho người dùng một cách nhanh chóng để truy cập các trang có thể in được. Tính năng này rất cần thiết cho các môi trường nơi tài liệu ngoại tuyến hoặc bản cứng thường được tham chiếu, chẳng hạn như wiki học thuật hoặc công ty. Tuy nhiên, nhiều người nhận thấy quá trình này kém trực quan hơn mong đợi. 🖨️

Trong hướng dẫn này, chúng ta sẽ khám phá cách kết hợp liên kết "Phiên bản có thể in" vào menu điều hướng, cụ thể là trong tùy chọn "Trang ngẫu nhiên". Việc sử dụng MediaWiki:Sidebar để sửa đổi đòi hỏi sự hiểu biết chắc chắn về cú pháp và hành vi của nó trong chủ đề Vượt thời gian.

Nếu bạn gặp khó khăn hoặc gặp vấn đề, đừng lo lắng! Khi kết thúc hướng dẫn này, bạn sẽ không chỉ biết cách triển khai thay đổi mà còn hiểu rõ hơn về cách hoạt động của thanh bên MediaWiki. Hãy đi sâu vào cải tiến thực tế này. 🌟

Yêu cầu Ví dụ về sử dụng
$wgHooks['SkinBuildSidebar'][] Lệnh này đăng ký một hook tùy chỉnh trong MediaWiki cho phép sửa đổi cấu trúc thanh bên trong quá trình hiển thị của nó. Nó dành riêng cho việc tùy chỉnh các menu điều hướng một cách linh hoạt.
$skin->$skin->msg() Truy xuất các tin nhắn hoặc liên kết đã bản địa hóa trong MediaWiki. Trong ngữ cảnh này, nó tự động tìm nạp URL cho tính năng "Phiên bản có thể in" bằng cài đặt ngôn ngữ tích hợp.
document.addEventListener('DOMContentLoaded') Đảm bảo rằng logic JavaScript chỉ thực thi sau khi DOM được tải đầy đủ, điều này rất quan trọng để sửa đổi linh hoạt menu điều hướng hiện có.
document.createElement() Tạo các phần tử HTML mới, chẳng hạn như li và thẻ, được thêm động vào menu điều hướng trong giải pháp giao diện người dùng.
arrayHasKey Được sử dụng trong các thử nghiệm đơn vị để xác minh xem một khóa cụ thể có tồn tại trong một mảng hay không, đảm bảo tùy chọn "Phiên bản có thể in" được thêm chính xác vào cấu trúc thanh bên.
if (!defined('MEDIAWIKI')) Đảm bảo rằng tập lệnh được thực thi trong khung MediaWiki, ngăn chặn việc thực thi trái phép hoặc độc lập.
$GLOBALS['wgHooks'] Truy cập các móc nối toàn cầu trong MediaWiki, cho phép các nhà phát triển thêm hoặc sửa đổi chức năng một cách linh hoạt tại các điểm cụ thể trong vòng đời của ứng dụng.
link.href Đặt động URL của siêu liên kết mới được tạo trong JavaScript, thêm các tham số truy vấn như ?printable=yes để kích hoạt phiên bản có thể in được.
SkinBuildSidebar Một hook MediaWiki cụ thể cho phép thao tác trực tiếp với các thành phần thanh bên, khiến nó rất phù hợp để thêm các liên kết hoặc mục menu mới.
TestCase::createMock() Tạo các đối tượng mô phỏng để kiểm tra đơn vị, mô phỏng lớp Skin của MediaWiki để xác thực các sửa đổi thanh bên mà không yêu cầu phiên bản MediaWiki đầy đủ.

Cách tùy chỉnh Menu điều hướng MediaWiki

Các tập lệnh được cung cấp ở trên tập trung vào việc nâng cao menu điều hướng MediaWiki bằng cách thêm tùy chọn "Phiên bản có thể in" bên dưới liên kết "Trang ngẫu nhiên". Việc sửa đổi này có thể đạt được thông qua tùy chỉnh phụ trợ bằng cách sử dụng hook hoặc tập lệnh giao diện người dùng bằng JavaScript. Ví dụ: tập lệnh PHP tận dụng mảng và móc "SkinBuildSidebar" để chèn động một mục điều hướng mới. Cách tiếp cận này đảm bảo rằng phần bổ sung tích hợp liền mạch với cấu trúc thanh bên hiện có, thích ứng với các giao diện khác nhau như chủ đề Vượt thời gian. 🖥️

Giải pháp JavaScript giao diện người dùng cung cấp giải pháp thay thế năng động hơn, nhắm mục tiêu vào menu điều hướng sau khi DOM được tải đầy đủ. Bằng cách sử dụng các lệnh như và thêm các mục danh sách mới tạo vào menu điều hướng, phương pháp này không yêu cầu sửa đổi mã phụ trợ. Ví dụ: một wiki của trường đại học có thể nhanh chóng triển khai tính năng "Phiên bản có thể in" cho sinh viên truy cập tài liệu khóa học, đảm bảo sự gián đoạn tối thiểu đối với trang web trực tiếp. Tính linh hoạt này khiến nó trở nên lý tưởng cho các tình huống mà quyền truy cập phụ trợ bị hạn chế hoặc không khả dụng. 📄

Một khía cạnh quan trọng khác của các tập lệnh được cung cấp là tính mô-đun của chúng và tập trung vào các phương pháp hay nhất. Tập lệnh PHP bao gồm việc xử lý lỗi để đảm bảo nó chỉ chạy trong khung MediaWiki. Tương tự, logic JavaScript xác thực sự hiện diện của menu điều hướng trước khi cố gắng sửa đổi nó, giảm nguy cơ lỗi thời gian chạy. Ví dụ: trong wiki công ty, việc đảm bảo độ tin cậy là rất quan trọng vì thanh bên thường là trung tâm điều hướng trung tâm để nhân viên truy cập các tài liệu hoặc báo cáo của dự án.

Các bài kiểm tra đơn vị bổ sung cho các tập lệnh bằng cách xác minh rằng liên kết "Phiên bản có thể in" được thêm chính xác trong các trường hợp khác nhau. Bằng cách mô phỏng môi trường MediaWiki bằng các đối tượng mô phỏng, các thử nghiệm này đảm bảo giải pháp hoạt động trên nhiều cấu hình khác nhau. Quá trình thử nghiệm này đặc biệt có giá trị đối với các nhà phát triển quản lý nhiều wiki vì nó cung cấp biện pháp bảo vệ chống lại các vấn đề triển khai. Cuối cùng, cho dù thông qua các hook phụ trợ PHP, JavaScript giao diện người dùng hay thử nghiệm đơn vị mạnh mẽ, các tập lệnh đều cung cấp các phương pháp linh hoạt để nâng cao khả năng điều hướng MediaWiki với hiệu suất và độ tin cậy tối ưu. 🌟

Thêm tùy chọn "Phiên bản có thể in" trong Điều hướng MediaWiki

Tập lệnh phía máy chủ để sửa đổi cấu hình Thanh bên MediaWiki bằng 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
//

Sử dụng cấu hình thanh bên MediaWiki để thêm liên kết mới

Phương pháp thủ công để chỉnh sửa trang MediaWiki:Sidebar trong chủ đề Vượt thời gian.

* 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.

Giải pháp JavaScript Front-End động

Tập lệnh phía máy khách sử dụng JavaScript để tự động thêm tùy chọn "Phiên bản có thể in".

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);
    }
});

Kiểm tra đơn vị để sửa đổi thanh bên

Đơn vị PHP kiểm tra để xác thực tích hợp "Phiên bản có thể in" trên phần phụ trợ.

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.

Nâng cao MediaWiki với các tùy chỉnh nâng cao

Việc thêm các tính năng tùy chỉnh vào một phiên bản MediaWiki có thể vượt xa những sửa đổi menu điều hướng đơn giản. Ví dụ: quản trị viên thường tìm cách nâng cao chức năng cho nhu cầu cụ thể của người dùng, chẳng hạn như tích hợp các tùy chọn xuất hoặc tùy chỉnh bố cục dựa trên vai trò của người dùng. Những cải tiến này, bao gồm cả việc thêm "Phiên bản có thể in", rất quan trọng để làm cho wiki trở nên năng động hơn và thân thiện với người dùng hơn. Việc tích hợp các liên kết mới trong có thể được điều chỉnh để phù hợp với các yêu cầu riêng của cổng thông tin đại học hoặc tài liệu nội bộ của công ty.

Một lĩnh vực đáng khám phá là bản địa hóa các tùy chọn menu mới được thêm vào. Ví dụ: việc đảm bảo rằng nhãn "Phiên bản có thể in" được dịch linh hoạt dựa trên tùy chọn ngôn ngữ của người dùng sẽ bổ sung thêm một lớp tính toàn diện. Sử dụng các phương pháp bản địa hóa tích hợp của MediaWiki, chẳng hạn như , cho phép các nhà phát triển điều chỉnh các tùy chỉnh của họ theo tiêu chuẩn toàn cầu của MediaWiki. Điều này đặc biệt hữu ích trong các tổ chức đa quốc gia nơi nhân viên hoặc cộng tác viên truy cập wiki bằng nhiều ngôn ngữ. 🌍

Một cân nhắc quan trọng khác là sự tương tác giữa các tùy chỉnh và chủ đề MediaWiki đã chọn. các chẳng hạn, sử dụng một cấu trúc duy nhất yêu cầu kiểm tra kỹ lưỡng mọi thay đổi để đảm bảo tính tương thích. Ví dụ: thành phần điều hướng nổi bật về mặt hình ảnh như "Phiên bản có thể in" có thể cần điều chỉnh CSS bổ sung để duy trì giao diện trên các thiết bị. Những sửa đổi sắc thái này đảm bảo rằng giao diện vẫn trực quan và chuyên nghiệp bất kể thiết bị hoặc kích thước màn hình của người dùng. 📱

  1. Làm cách nào tôi có thể chỉnh sửa thanh bên MediaWiki?
  2. Bạn có thể chỉnh sửa thanh bên bằng cách sửa đổi trang MediaWiki:Sidebar. Sử dụng các lệnh như Và để xác định các liên kết mới.
  3. Chủ đề "Vượt thời gian" là gì và nó tác động đến việc tùy chỉnh như thế nào?
  4. Chủ đề vượt thời gian là giao diện MediaWiki hiện đại với thiết kế đáp ứng. Các tùy chỉnh như thay đổi thanh bên có thể yêu cầu thử nghiệm bổ sung để đảm bảo chúng hiển thị chính xác.
  5. Có thể thêm bản địa hóa cho các tùy chọn thanh bên mới không?
  6. Có, bạn có thể sử dụng để tìm nạp các nhãn đã bản địa hóa cho các mục trong menu của bạn, đảm bảo khả năng tương thích với các wiki đa ngôn ngữ.
  7. Tôi có thể thêm các tính năng mới mà không cần sửa đổi mã phụ trợ không?
  8. Có, các giải pháp JavaScript giao diện người dùng như sử dụng cho phép bạn tự động thêm các liên kết hoặc tính năng mà không cần thay đổi phụ trợ.
  9. Làm cách nào để kiểm tra các tính năng mới của thanh bên?
  10. Sử dụng các bài kiểm tra đơn vị PHP hoặc khung kiểm tra như PHPUnit, mô phỏng các sửa đổi thanh bên để đảm bảo chúng hoạt động như mong đợi.

Việc thêm tùy chọn "Phiên bản có thể in" vào điều hướng MediaWiki mang lại khả năng sử dụng và tổ chức tốt hơn cho wiki của bạn. Với các phương pháp tiếp cận được nêu chi tiết ở đây, từ viết kịch bản PHP đến JavaScript, tất cả quản trị viên đều có thể tùy chỉnh dễ dàng và hiệu quả.

Bằng cách ưu tiên bản địa hóa và khả năng tương thích chủ đề, wiki của bạn trở thành nguồn tài nguyên đáng tin cậy cho nhiều đối tượng khác nhau. Những cải tiến này không chỉ cải thiện chức năng mà còn mang lại trải nghiệm thân thiện với người dùng, phản ánh một nền tảng được duy trì tốt và dễ tiếp cận. 🌟

  1. Tài liệu MediaWiki chính thức về tùy chỉnh thanh bên: Hướng dẫn sử dụng thanh bên MediaWiki
  2. Thảo luận cộng đồng và ví dụ về cấu hình chủ đề Vượt thời gian: Chủ đề vượt thời gian của MediaWiki
  3. Hình ảnh ví dụ minh họa bố cục menu điều hướng: Ví dụ về menu điều hướng
  4. Tài liệu PHP về hook và phần mở rộng: Hướng dẫn sử dụng PHP