AbahDoku Custom
Menu Sidebar
Mediawiki secara default memiliki menu sidebar yang bisa di costum, di tambah atau di kurangi. Penambahan menu sidebar bisa dilakukan dengan beberapa cara.
- Melalui MediaWiki:Sidebar
- Melalui LocalSettings.php
Cara pertama ini dapat dilakukan melalui url berikut :
http://<nama_domain>/index.php/MediaWiki:Sidebar
Contoh :
http://abahdoku.wiki.gd/index.php/MediaWiki:Sidebar
Jika MediaWiki:Sidebar sudah terbuka, pilih Edit source, tambahkan di baris terakhir navigation :
** http://abahdoku.wiki.gd|MenuTambahan
Maka hasilnya akan tampak seperti ini :
* navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki ** http://abahdoku.wiki.gd|MenuTambahan * SEARCH * TOOLBOX * LANGUAGES
Cara pertama ini untuk yang sudah expert menggunakan Mediawiki ada yang melibatkan Java Script yang di custom melalui url berikut :
http://<domain>/index.php?title=MediaWiki:Common.js
Cara kedua ini adalah dengan menambah sedikit code pada file LocalSettings.php.
Code yang di tambahkan pada LocalSettings.php adalah :
$wgHooks['SkinBuildSidebar'][] = function ( $skin, &$bar ) { // Mendapatkan user context $user = RequestContext::getMain()->getUser(); // Menambahkan menu "AbahDoku Costum" $bar['navigation'][] = [ 'text' => 'AbahDoku Custom', 'href' => '/index.php/AbahDoku_Custom', // Link ke halaman baru 'id' => 'n-abahdoku_custom', // Optional ID 'target' => '_self' // Membuka di tab yang sama ]; } return true; };
Berikut ini adalah contoh code menu untuk mengakses url external di luar Mediawiki, code dibawah ini hanya akan terlihat jika user sudah melakukan login di Mediawiki, jika user belum melakukan login, menu ini tidak akan terlihat. Menu ini akan membuka tab browser baru jika di klik.
// Memeriksa apakah pengguna sudah login if ( $user->isRegistered() ) { $bar['navigation'][] = [ 'text' => 'Aplikasi', 'href' => 'http://abahdoku.wiki.gd:9080/aplikasi', 'id' => 'n-aplikasi', // Optional ID for styling or JS manipulati$ 'target' => '_blank' // Opens in a new tab ];
jika digabungkan menu AbahDoku Custom dan menu Aplikasi, maka hasilnya akan seperti berikut ini :
$wgHooks['SkinBuildSidebar'][] = function ( $skin, &$bar ) { // Mendapatkan user context $user = RequestContext::getMain()->getUser(); // Menambahkan menu "AbahDoku Costum" $bar['navigation'][] = [ 'text' => 'AbahDoku Custom', 'href' => '/index.php/AbahDoku_Custom', // Link ke halaman baru 'id' => 'n-abahdoku_custom', // Optional ID 'target' => '_self' // Membuka di tab yang sama ]; // Memeriksa apakah pengguna sudah login if ( $user->isRegistered() ) { $bar['navigation'][] = [ 'text' => 'Aplikasi', 'href' => 'http://abahdoku.wiki.gd:9080/aplikasi', 'id' => 'n-aplikasi', // Optional ID for styling or JS manipulati$ 'target' => '_blank' // Opens in a new tab ]; } return true; };
Secara default menu footer pada Mediawiki ada 3 yaitu "Privacy policy", "About AbahDoku" dan "WikiDisclaimers". Namun pada barisan menu footer penulis ingin menambahkan satu menu untuk aplikasi seperti pada menu Sidebar atau menu yang lain yang ingin ditambahkan. Caranya hanya dengan menambahkan kode berikut di akhir file LocalSettings.php adalah :
$wgHooks['SkinAddFooterLinks'][] = function ( Skin $skin, string $key, array &$footerlinks ) { // Memeriksa apakah pengguna sudah login $user = $skin->getUser(); if ( $user->isRegistered() && $key === 'places' ) { // Menambahkan menu Aplikasi $footerlinks['mikhmon'] = Html::rawElement( 'a', [ 'href' => 'http://abahdoku.wiki.gd:9080/aplikasi', 'target' => '_blank', // Opens in a new tab 'rel' => 'noreferrer noopener' // not required, but recommended for security reasons ], 'Aplikasi' ); // Teks link yang ditampilkan } };
Sebelumnya perlu di siapkan file gambar (icon) dengan ukuran yang kecil kecil sekitar 16 x 16px. Hanya dengan menambah sedikit dari code di atas.
$wgHooks['SkinAddFooterLinks'][] = function ( Skin $skin, string $key, array &$footerlinks ) { // Memeriksa apakah pengguna sudah login $user = $skin->getUser(); if ( $user->isRegistered() && $key === 'places' ) { // Menambahkan menu Mikhmon dengan ikon $iconUrl = 'http://abahdoku.wiki.gd/images/c/c3/Mikhmon.png'; // Ganti dengan URL ikon/logo Anda $footerlinks['mikhmon'] = Html::rawElement( 'a', [ 'href' => 'http://abahdoku.wiki.gd:90/mikh3', 'target' => '_blank', // Opens in a new tab 'rel' => 'noreferrer noopener' // not required, but recommended for security reasons ], Html::element('img', [ 'src' => $iconUrl, 'alt' => 'Mikhmon Icon', // Teks alternatif untuk gambar 'style' => 'width:16px; height:16px; vertical-align:middle; margin-right:4px;' // Sesuaikan ukuran dan posisi ]) . 'Mikhmon'); // Teks link yang ditampilkan } };