Cara Menambahkan "Versi Cetak" ke Menu Navigasi MediaWiki

Sidebar

Meningkatkan Menu Navigasi MediaWiki Anda

Menyesuaikan menu navigasi MediaWiki Anda dapat meningkatkan pengalaman pengguna secara signifikan, memungkinkan alat yang lebih mudah diakses dan fungsional. Jika Anda menjalankan MediaWiki 1.39 dengan tema Timeless, Anda mungkin kesulitan menambahkan opsi spesifik seperti "Versi yang dapat dicetak". Tugas ini tidak mudah karena konfigurasi menu sidebar yang unik.

Salah satu tujuan umum di antara administrator adalah menyediakan cara cepat bagi pengguna untuk mengakses halaman yang dapat dicetak. Fitur ini penting untuk lingkungan di mana materi offline atau hardcopy sering dijadikan referensi, seperti wiki akademis atau perusahaan. Namun, banyak yang menganggap prosesnya kurang intuitif dari yang diharapkan. 🖨️

Dalam panduan ini, kita akan mempelajari cara memasukkan tautan "Versi cetak" ke dalam menu navigasi, khususnya di bawah opsi "Halaman acak". Menggunakan MediaWiki: Sidebar untuk modifikasi memerlukan pemahaman yang kuat tentang sintaksis dan perilakunya dalam tema Timeless.

Jika Anda mengalami kebuntuan atau mengalami masalah, jangan khawatir! Di akhir panduan ini, Anda tidak hanya akan mengetahui cara menerapkan perubahan namun juga mendapatkan wawasan tentang cara kerja sidebar MediaWiki. Mari selami peningkatan praktis ini. 🌟

Memerintah Contoh Penggunaan
$wgHooks['SkinBuildSidebar'][] Perintah ini mendaftarkan kait khusus di MediaWiki yang memungkinkan modifikasi struktur bilah sisi selama rendering. Ini khusus untuk menyesuaikan menu navigasi secara dinamis.
$skin->$skin->msg() Mengambil pesan atau tautan yang dilokalkan di MediaWiki. Dalam konteks ini, secara dinamis mengambil URL untuk fitur "Versi cetak" menggunakan pengaturan bahasa bawaan.
document.addEventListener('DOMContentLoaded') Memastikan logika JavaScript dijalankan hanya setelah DOM dimuat penuh, yang penting untuk memodifikasi menu navigasi yang ada secara dinamis.
document.createElement() Membuat elemen HTML baru, seperti tag li dan a, yang ditambahkan ke menu navigasi secara dinamis dalam solusi front-end.
arrayHasKey Digunakan dalam pengujian unit untuk memverifikasi apakah kunci tertentu ada dalam array, memastikan opsi "Versi yang dapat dicetak" telah ditambahkan ke struktur sidebar dengan benar.
if (!defined('MEDIAWIKI')) Memastikan bahwa skrip dijalankan dalam kerangka MediaWiki, mencegah eksekusi yang tidak sah atau mandiri.
$GLOBALS['wgHooks'] Mengakses kaitan global dalam MediaWiki, memungkinkan pengembang menambah atau memodifikasi fungsionalitas secara dinamis pada titik tertentu dalam siklus hidup aplikasi.
link.href Menyetel URL hyperlink yang baru dibuat secara dinamis dalam JavaScript, menambahkan parameter kueri seperti ?printable=yes untuk mengaktifkan versi yang dapat dicetak.
SkinBuildSidebar Kait MediaWiki khusus yang memungkinkan manipulasi langsung pada elemen bilah sisi, membuatnya sangat relevan untuk menambahkan tautan atau item menu baru.
TestCase::createMock() Membuat objek tiruan untuk pengujian unit, menyimulasikan kelas Skin MediaWiki untuk memvalidasi modifikasi bilah sisi tanpa memerlukan instance MediaWiki lengkap.

Cara Menyesuaikan Menu Navigasi MediaWiki

Skrip yang disediakan di atas berfokus pada penyempurnaan menu navigasi MediaWiki dengan menambahkan opsi "Versi cetak" di bawah tautan "Halaman acak". Modifikasi ini dapat dicapai melalui kustomisasi backend menggunakan hook atau skrip frontend dengan JavaScript. Misalnya, skrip PHP memanfaatkan array dan kait "SkinBuildSidebar" untuk menyisipkan item navigasi baru secara dinamis. Pendekatan ini memastikan bahwa penambahan tersebut terintegrasi secara mulus dengan struktur sidebar yang ada, beradaptasi dengan skin yang berbeda seperti tema Timeless. 🖥️

Solusi JavaScript frontend memberikan alternatif yang lebih dinamis, menargetkan menu navigasi setelah DOM dimuat sepenuhnya. Dengan menggunakan perintah seperti dan menambahkan item daftar yang baru dibuat ke menu navigasi, metode ini tidak memerlukan modifikasi kode backend. Misalnya, wiki universitas dapat dengan cepat menerapkan fitur "Versi yang dapat dicetak" bagi siswa yang mengakses materi pelajaran, memastikan gangguan minimal pada situs langsung. Fleksibilitas ini menjadikannya ideal untuk situasi ketika akses backend terbatas atau tidak tersedia. 📄

Aspek penting lainnya dari skrip yang disediakan adalah modularitasnya dan fokus pada praktik terbaik. Skrip PHP menyertakan penanganan kesalahan untuk memastikannya hanya berjalan dalam kerangka MediaWiki. Demikian pula, logika JavaScript memvalidasi keberadaan menu navigasi sebelum mencoba memodifikasinya, sehingga mengurangi risiko kesalahan runtime. Misalnya, di wiki perusahaan, memastikan keandalan sangatlah penting karena sidebar sering kali menjadi pusat navigasi bagi karyawan yang mengakses dokumen atau laporan proyek.

Pengujian unit melengkapi skrip dengan memverifikasi bahwa tautan "Versi yang dapat dicetak" ditambahkan dengan benar dalam skenario yang berbeda. Dengan menyimulasikan lingkungan MediaWiki menggunakan objek tiruan, pengujian ini memastikan solusi berfungsi di berbagai konfigurasi. Proses pengujian ini sangat berharga bagi pengembang yang mengelola banyak wiki, karena memberikan perlindungan terhadap masalah penerapan. Pada akhirnya, baik melalui backend hook PHP, JavaScript frontend, atau pengujian unit yang kuat, skrip ini menawarkan metode serbaguna untuk meningkatkan navigasi MediaWiki dengan kinerja dan keandalan optimal. 🌟

Menambahkan Opsi "Versi Cetak" di Navigasi MediaWiki

Skrip sisi server untuk mengubah konfigurasi Sidebar MediaWiki menggunakan 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
//

Menggunakan Konfigurasi Sidebar MediaWiki untuk Menambahkan Tautan Baru

Metode manual untuk mengedit halaman MediaWiki: Sidebar dalam tema Timeless.

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

Solusi JavaScript Front-End Dinamis

Skrip sisi klien menggunakan JavaScript untuk menambahkan opsi "Versi yang dapat dicetak" secara dinamis.

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

Tes Unit untuk Modifikasi Sidebar

Pengujian Unit PHP untuk memvalidasi integrasi "Versi yang dapat dicetak" di backend.

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.

Meningkatkan MediaWiki dengan Penyesuaian Tingkat Lanjut

Menambahkan fitur khusus ke instance MediaWiki dapat melampaui sekadar modifikasi menu navigasi. Misalnya, administrator sering kali mencari cara untuk meningkatkan fungsionalitas untuk kebutuhan pengguna tertentu, seperti mengintegrasikan opsi ekspor atau menyesuaikan tata letak berdasarkan peran pengguna. Penyempurnaan ini, termasuk penambahan "Versi yang dapat dicetak", sangat penting untuk menjadikan wiki lebih dinamis dan ramah pengguna. Integrasi tautan baru di dapat disesuaikan agar sesuai dengan persyaratan unik portal universitas atau dokumentasi internal perusahaan.

Salah satu area yang perlu ditelusuri adalah lokalisasi opsi menu yang baru ditambahkan. Misalnya, memastikan bahwa label "Versi cetak" diterjemahkan secara dinamis berdasarkan preferensi bahasa pengguna akan menambah lapisan inklusivitas. Menggunakan metode pelokalan bawaan MediaWiki, seperti , memungkinkan pengembang menyelaraskan penyesuaian mereka dengan standar global MediaWiki. Hal ini sangat berguna dalam organisasi multinasional dimana karyawan atau kontributor mengakses wiki dalam berbagai bahasa. 🌍

Pertimbangan penting lainnya adalah interaksi antara penyesuaian dan tema MediaWiki yang dipilih. Itu , misalnya, menggunakan struktur unik yang memerlukan pengujian setiap perubahan secara menyeluruh untuk memastikan kompatibilitas. Misalnya, elemen navigasi yang menonjol secara visual seperti "Versi yang dapat dicetak" mungkin memerlukan penyesuaian CSS tambahan untuk mempertahankan tampilannya di seluruh perangkat. Modifikasi bernuansa ini memastikan antarmuka tetap intuitif dan profesional, apa pun perangkat atau ukuran layar pengguna. 📱

  1. Bagaimana cara mengedit bilah sisi MediaWiki?
  2. Anda dapat mengedit sidebar dengan memodifikasi halaman MediaWiki:Sidebar. Gunakan perintah seperti Dan untuk menentukan tautan baru.
  3. Apa yang dimaksud dengan tema "Timeless" dan bagaimana pengaruhnya terhadap penyesuaian?
  4. Tema Timeless adalah skin MediaWiki modern dengan desain responsif. Penyesuaian seperti perubahan sidebar mungkin memerlukan pengujian tambahan untuk memastikannya ditampilkan dengan benar.
  5. Apakah mungkin menambahkan pelokalan untuk opsi sidebar baru?
  6. Ya, Anda bisa menggunakannya untuk mengambil label lokal untuk item menu Anda, memastikan kompatibilitas dengan wiki multibahasa.
  7. Bisakah saya menambahkan fitur baru tanpa mengubah kode backend?
  8. Ya, solusi JavaScript frontend suka menggunakan memungkinkan Anda menambahkan tautan atau fitur secara dinamis tanpa perubahan backend.
  9. Bagaimana cara menguji fitur sidebar baru?
  10. Menggunakan pengujian unit PHP atau kerangka pengujian seperti PHPUnit, simulasikan modifikasi sidebar untuk memastikannya berfungsi seperti yang diharapkan.

Menambahkan opsi "Versi cetak" ke navigasi MediaWiki akan memberikan kegunaan dan pengorganisasian yang lebih baik pada wiki Anda. Dengan pendekatan yang dirinci di sini, mulai dari skrip PHP hingga JavaScript, penyesuaian dapat diakses dan efektif untuk semua administrator.

Dengan memprioritaskan lokalisasi dan kompatibilitas tema, wiki Anda menjadi sumber daya yang dapat diandalkan untuk beragam audiens. Peningkatan ini tidak hanya meningkatkan fungsionalitas tetapi juga memberikan pengalaman yang ramah pengguna, mencerminkan platform yang terpelihara dengan baik dan dapat diakses. 🌟

  1. Dokumentasi resmi MediaWiki tentang penyesuaian bilah sisi: Panduan Bilah Sisi MediaWiki
  2. Diskusi komunitas dan contoh konfigurasi tema Timeless: Tema Abadi MediaWiki
  3. Contoh gambar yang mengilustrasikan tata letak menu navigasi: Contoh Menu Navigasi
  4. Dokumentasi PHP untuk hook dan ekstensi: Panduan PHP