MediaWiki Gezinme Menünüzü Geliştirme
MediaWiki gezinme menünüzü özelleştirmek, daha erişilebilir ve işlevsel araçlara olanak tanıyarak kullanıcı deneyimini önemli ölçüde geliştirebilir. MediaWiki 1.39'u Zamansız temayla çalıştırıyorsanız, "Yazdırılabilir sürüm" gibi belirli seçenekleri eklemekte zorlanabilirsiniz. Kenar çubuğu menüsünün benzersiz yapılandırmaları nedeniyle bu görev kolay değildir.
Yöneticiler arasındaki ortak hedeflerden biri, kullanıcılara yazdırılabilir sayfalara erişmenin hızlı bir yolunu sağlamaktır. Bu özellik, akademik veya kurumsal wiki'ler gibi çevrimdışı veya basılı materyallere sıklıkla başvurulan ortamlar için gereklidir. Ancak çoğu kişi süreci beklenenden daha az sezgisel buluyor. 🖨️
Bu kılavuzda, özellikle "Rastgele sayfa" seçeneğinin altındaki "Yazdırılabilir sürüm" bağlantısını gezinme menüsüne nasıl dahil edeceğimizi inceleyeceğiz. Değişiklikler için MediaWiki:Kenar Çubuğunu kullanmak, Zamansız tema içindeki sözdiziminin ve davranışının sağlam bir şekilde anlaşılmasını gerektirir.
Eğer takılıp kalırsanız veya sorunlarla karşılaşırsanız endişelenmeyin! Bu kılavuzun sonunda, yalnızca değişikliğin nasıl uygulanacağını bilmekle kalmayacak, aynı zamanda MediaWiki kenar çubuğunun nasıl çalıştığına dair içgörüler de kazanacaksınız. Şimdi bu pratik geliştirmeye dalalım. 🌟
Emretmek | Kullanım Örneği |
---|---|
$wgHooks['SkinBuildSidebar'][] | Bu komut, MediaWiki'de, kenar çubuğu yapısının oluşturulması sırasında değiştirilmesine izin veren özel bir kanca kaydeder. Gezinme menülerini dinamik olarak özelleştirmeye özeldir. |
$skin->$skin->msg() | MediaWiki'deki yerelleştirilmiş mesajları veya bağlantıları alır. Bu bağlamda yerleşik dil ayarlarını kullanarak "Yazdırılabilir sürüm" özelliğinin URL'sini dinamik olarak getirir. |
document.addEventListener('DOMContentLoaded') | JavaScript mantığının yalnızca DOM tamamen yüklendikten sonra yürütülmesini sağlar; bu, mevcut bir gezinme menüsünü dinamik olarak değiştirmek için kritik öneme sahiptir. |
document.createElement() | Ön uç çözümünde gezinme menüsüne dinamik olarak eklenen li ve a etiketleri gibi yeni HTML öğeleri oluşturur. |
arrayHasKey | Bir dizide belirli bir anahtarın mevcut olup olmadığını doğrulamak için birim testlerinde kullanılır ve "Yazdırılabilir sürüm" seçeneğinin kenar çubuğu yapısına doğru şekilde eklenmesini sağlar. |
if (!defined('MEDIAWIKI')) | Komut dosyasının MediaWiki çerçevesinde yürütülmesini sağlayarak yetkisiz veya bağımsız yürütmeyi önler. |
$GLOBALS['wgHooks'] | MediaWiki içindeki genel kancalara erişerek geliştiricilerin, uygulamanın yaşam döngüsünün belirli noktalarında dinamik olarak işlevsellik eklemesine veya değiştirmesine olanak tanır. |
link.href | Yazdırılabilir sürümü etkinleştirmek için ?printable=yes gibi sorgu parametreleri ekleyerek, yeni oluşturulan bir köprünün URL'sini JavaScript'te dinamik olarak ayarlar. |
SkinBuildSidebar | Kenar çubuğu öğelerinin doğrudan değiştirilmesine olanak tanıyan, yeni bağlantılar veya menü öğeleri eklemeyi son derece uygun hale getiren özel bir MediaWiki kancası. |
TestCase::createMock() | Tam bir MediaWiki örneği gerektirmeden kenar çubuğu değişikliklerini doğrulamak için MediaWiki'nin Skin sınıfını simüle ederek birim testi için sahte nesneler oluşturur. |
MediaWiki Gezinme Menüsünü Özelleştirme
Yukarıda sağlanan komut dosyaları, "Rastgele sayfa" bağlantısının altına "Yazdırılabilir sürüm" seçeneğini ekleyerek MediaWiki gezinme menüsünü geliştirmeye odaklanmaktadır. Bu değişiklik, kancalar kullanılarak arka uç özelleştirmesi veya JavaScript ile ön uç komut dosyası oluşturma yoluyla gerçekleştirilebilir. Örneğin, PHP betiği şunu kullanır: $wgHooks dinamik olarak yeni bir gezinme öğesi eklemek için diziyi ve "SkinBuildSidebar" kancasını kullanın. Bu yaklaşım, eklemenin mevcut kenar çubuğu yapısıyla sorunsuz bir şekilde bütünleşmesini ve Zamansız tema gibi farklı görünümlere uyum sağlamasını sağlar. 🖥️
Ön uç JavaScript çözümü, DOM tamamen yüklendikten sonra gezinme menüsünü hedefleyerek daha dinamik bir alternatif sağlar. Gibi komutları kullanarak document.createElement ve yeni oluşturulan liste öğelerinin gezinme menüsüne eklenmesiyle bu yöntem, arka uç kodunun değiştirilmesini gerektirmez. Örneğin, bir üniversite wiki'si öğrencilerin ders materyallerine erişmesi için "Yazdırılabilir sürüm" özelliğini hızlı bir şekilde dağıtabilir ve canlı sitede minimum kesintiyi garanti edebilir. Bu esneklik, arka uç erişiminin sınırlı olduğu veya kullanılamadığı durumlar için onu ideal kılar. 📄
Sağlanan komut dosyalarının bir diğer önemli özelliği modüler olmaları ve en iyi uygulamalara odaklanmalarıdır. PHP betiği, yalnızca MediaWiki çerçevesinde çalışmasını sağlamak için hata işlemeyi içerir. Benzer şekilde, JavaScript mantığı, değişiklik yapılmadan önce gezinme menüsünün varlığını doğrulayarak çalışma zamanı hataları riskini azaltır. Örneğin, kurumsal bir wiki'de, kenar çubuğu genellikle proje belgelerine veya raporlara erişen çalışanlar için merkezi bir gezinme merkezi olduğundan güvenilirliğin sağlanması çok önemlidir.
Birim testleri, "Yazdırılabilir sürüm" bağlantısının farklı senaryolara doğru şekilde eklendiğini doğrulayarak komut dosyalarını tamamlar. Sahte nesneler kullanarak MediaWiki ortamını simüle eden bu testler, çözümün çeşitli konfigürasyonlarda çalışmasını sağlar. Bu test süreci, dağıtım sorunlarına karşı koruma sağladığından, birden fazla wiki'yi yöneten geliştiriciler için özellikle değerlidir. Sonuçta, ister PHP arka uç kancaları, ister ön uç JavaScript veya sağlam birim testi aracılığıyla olsun, komut dosyaları, MediaWiki gezinmesini optimum performans ve güvenilirlikle geliştirmek için çok yönlü yöntemler sunar. 🌟
MediaWiki Gezinmesinde "Yazdırılabilir Sürüm" Seçeneği Ekleme
PHP kullanarak MediaWiki Kenar Çubuğu yapılandırmasını değiştirmek için sunucu tarafı komut dosyası.
<?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
?>
Yeni Bağlantı Eklemek için MediaWiki Kenar Çubuğu Yapılandırmasını Kullanma
MediaWiki: Kenar Çubuğu sayfasını Timeless temasında düzenlemenin manuel yöntemi.
* 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.
Dinamik Ön Uç JavaScript Çözümü
"Yazdırılabilir sürüm" seçeneğini dinamik olarak eklemek için JavaScript kullanan istemci tarafı komut dosyası.
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);
}
});
Kenar Çubuğu Değişiklikleri için Birim Testleri
PHP Unit, arka uçtaki "Yazdırılabilir sürüm" entegrasyonunu doğrulamak için testler yapar.
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'yi Gelişmiş Özelleştirmelerle Geliştirme
Bir MediaWiki örneğine özel özellikler eklemek, basit gezinme menüsü değişikliklerinin ötesine geçebilir. Örneğin, yöneticiler genellikle belirli kullanıcı ihtiyaçlarına yönelik işlevselliği geliştirmenin, dışa aktarma seçeneklerini entegre etme veya düzenleri kullanıcı rollerine göre özelleştirme gibi yollar ararlar. "Yazdırılabilir sürüm" eklenmesi de dahil olmak üzere bu geliştirmeler, wiki'leri daha dinamik ve kullanıcı dostu hale getirmek için hayati öneme sahiptir. Yeni bağlantıların entegrasyonu MediaWiki Kenar Çubuğu bir üniversite portalının veya şirket içi dokümantasyonun benzersiz gereksinimlerine uyacak şekilde uyarlanabilir.
Keşfedilmeye değer alanlardan biri de yeni eklenen menü seçeneklerinin yerelleştirilmesidir. Örneğin, "Yazdırılabilir sürüm" etiketinin kullanıcının dil tercihlerine göre dinamik olarak çevrilmesini sağlamak, bir kapsayıcılık katmanı ekler. MediaWiki'nin yerleşik yerelleştirme yöntemlerini kullanma, örneğin $skin->msg()geliştiricilerin özelleştirmelerini MediaWiki'nin küresel standartlarıyla uyumlu hale getirmelerine olanak tanır. Bu, özellikle çalışanların veya katkıda bulunanların wiki'ye birden fazla dilde eriştiği çok uluslu kuruluşlarda kullanışlıdır. 🌍
Bir diğer önemli husus, özelleştirmeler ile seçilen MediaWiki teması arasındaki etkileşimdir. Zamansız temaÖrneğin, uyumluluğu sağlamak için her türlü değişikliğin kapsamlı bir şekilde test edilmesini gerektiren benzersiz bir yapı kullanır. Örneğin, "Yazdırılabilir sürüm" gibi görsel olarak öne çıkan bir gezinme öğesinin, cihazlar arasında görünümünü korumak için ek CSS ayarlamaları yapması gerekebilir. Bu incelikli değişiklikler, kullanıcının cihazı veya ekran boyutu ne olursa olsun arayüzün sezgisel ve profesyonel kalmasını sağlar. 📱
MediaWiki Özelleştirmesi Hakkında Sıkça Sorulan Sorular
- MediaWiki kenar çubuğunu nasıl düzenleyebilirim?
- MediaWiki:Kenar Çubuğu sayfasını değiştirerek kenar çubuğunu düzenleyebilirsiniz. Gibi komutları kullanın * navigation Ve option|label yeni bağlantılar tanımlamak için.
- "Zamansız" teması nedir ve özelleştirmeyi nasıl etkiler?
- Zamansız tema, duyarlı tasarıma sahip modern bir MediaWiki görünümüdür. Kenar çubuğu değişiklikleri gibi özelleştirmelerin, doğru görüntülendiğinden emin olmak için ek testler gerekebilir.
- Yeni kenar çubuğu seçenekleri için yerelleştirme eklemek mümkün mü?
- Evet, kullanabilirsin $skin->msg() çok dilli wiki'lerle uyumluluk sağlayarak menü öğeleriniz için yerelleştirilmiş etiketler getirmek.
- Arka uç kodunu değiştirmeden yeni özellikler ekleyebilir miyim?
- Evet, kullanmak gibi ön uç JavaScript çözümleri document.createElement() arka uç değişiklikleri olmadan dinamik olarak bağlantılar veya özellikler eklemenize olanak tanır.
- Yeni kenar çubuğu özelliklerini nasıl test ederim?
- PHP birim testlerini veya PHPUnit gibi bir test çerçevesini kullanarak kenar çubuğu değişikliklerini simüle ederek beklendiği gibi çalıştıklarından emin olun.
MediaWiki Gezinmenizi İyileştirme
MediaWiki navigasyonuna "Yazdırılabilir sürüm" seçeneğinin eklenmesi, vikinize daha fazla kullanılabilirlik ve düzenleme getirir. PHP komut dosyası oluşturmadan JavaScript'e kadar burada ayrıntıları verilen yaklaşımlarla özelleştirme tüm yöneticiler için erişilebilir ve etkilidir.
Yerelleştirmeye ve tema uyumluluğuna öncelik vererek wiki'niz farklı hedef kitleler için güvenilir bir kaynak haline gelir. Bu geliştirmeler yalnızca işlevselliği geliştirmekle kalmıyor, aynı zamanda bakımlı ve erişilebilir bir platformu yansıtan kullanıcı dostu bir deneyim de sağlıyor. 🌟
Kaynaklar ve Referanslar
- Kenar çubuğunun özelleştirilmesine ilişkin resmi MediaWiki belgeleri: MediaWiki Kenar Çubuğu Kılavuzu
- Topluluk tartışması ve Zamansız tema yapılandırmalarına ilişkin örnekler: MediaWiki Zamansız Teması
- Gezinme menüsü düzenini gösteren örnek resim: Gezinme Menüsü Örneği
- Kancalar ve uzantılar için PHP belgeleri: PHP Kılavuzu