MediaWiki:Common.js: Revizyonlar arasındaki fark
MediaWiki arayüz sayfası
More actions
C. Karakuş (mesaj | katkılar) Değişiklik özeti yok |
C. Karakuş (mesaj | katkılar) Değişiklik özeti yok |
||
| 214. satır: | 214. satır: | ||
var baslikMetni = gecerliYazarlar.length > 1 ? 'Yazarlar' : 'Yazar'; | var baslikMetni = gecerliYazarlar.length > 1 ? 'Yazarlar' : 'Yazar'; | ||
// Ana Kart Yapısı | // Ana Kart Yapısı (Üst çizgiyle araya mesafe eklendi) | ||
var $yazarKarti = $('<div>', { | var $yazarKarti = $('<div>', { | ||
'id': 'citizen-sidebar-yazarlar', | 'id': 'citizen-sidebar-yazarlar', | ||
'style': 'margin-bottom: 24px; font-family: inherit;' | 'style': 'margin-bottom: 24px; padding-top: 8px; font-family: inherit;' | ||
}); | }); | ||
// Başlık Alanı | // Başlık Alanı | ||
var $yazarBaslik = $('<div>', { | var $yazarBaslik = $('<div>', { | ||
'text': baslikMetni, | 'text': baslikMetni, | ||
| 234. satır: | 234. satır: | ||
gecerliYazarlar.forEach(function(yazar) { | gecerliYazarlar.forEach(function(yazar) { | ||
var $yazarSatiri = $('<div>', { | var $yazarSatiri = $('<div>', { | ||
'style': 'display: flex; align-items: center; gap: 8px; padding: | 'style': 'display: flex; align-items: center; gap: 8px; padding: 4px 0 !important; font-size: var(--font-size-md, 0.95em); line-height: 1; color: var(--color-base, #e6e6e6);' | ||
}); | }); | ||
// | // İkonun net görünmesi için opacity: 1 ve filter: none eklendi | ||
var $ikon = $('<span>', { | var $ikon = $('<span>', { | ||
'class': 'citizen-ui-icon mw-ui-icon-wikimedia-userAvatar', | 'class': 'citizen-ui-icon mw-ui-icon-wikimedia-userAvatar', | ||
'style': 'margin: 0 !important; padding: 0 !important; flex-shrink: 0;' | 'style': 'margin: 0 !important; padding: 0 !important; flex-shrink: 0; opacity: 1 !important; filter: none !important;' | ||
}); | }); | ||
| 254. satır: | 254. satır: | ||
}); | }); | ||
$yazarSatiri.append($ikon).append($isim); | $yazarSatiri.append($ikon).append($isim); | ||
$yazarIcerik.append($yazarSatiri); | $yazarIcerik.append($yazarSatiri); | ||
21.57, 8 Temmuz 2026 tarihindeki hâli
// ==========================================================================
// KIZILBASHICA JAVASCRIPT DOSYASI (ALINTI & OKU DÖNGÜSÜ)
// ==========================================================================
$(document).ready(function() {
var ns = mw.config.get('wgNamespaceNumber');
var pageName = mw.config.get('wgTitle');
var baseUrl = mw.config.get('wgArticlePath') || '/wiki/$1';
var urlParams = new URLSearchParams(window.location.search);
var isEditing = urlParams.has('action') && (urlParams.get('action') === 'edit' || urlParams.get('action') === 'submit');
// 1. NORMAL SÖZLÜK MADDELERİNDE (`ns === 0`) YAPILACAK DEĞİŞİKLİKLER
if (ns === 0) {
// Eski "Tartışma" butonunu bulup "Alıntı" butonuna dönüştürüyoruz
var mainTalkLink = $('#ca-talk a, .citizen-section-talk a, a[href*="Tart%C4%B1%C5%9Fma:"], a[href*="Talk:"]');
if (mainTalkLink.length > 0) {
var citePageUrl = baseUrl.replace('$1', 'Kaynak:' + encodeURIComponent(pageName));
mainTalkLink.replaceWith(
'<a href="' + citePageUrl + '" class="citizen-cdx-button--size-large cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet">' +
'<span class="citizen-ui-icon mw-ui-icon-quotes mw-ui-icon-wikimedia-quotes"></span> ' +
'<span>Alıntı</span>' +
'</a>'
);
}
}
// 2. KAYNAK AD ALANINDA (`ns === 3000`) YAPILACAK DEĞİŞİKLİKLER
if (ns === 3000) {
// Sağ üstteki butonu ana maddeye dönen göz ikonlu "Oku" butonu yapıyoruz
var sourceTalkLink = $('#ca-talk a, .citizen-section-talk a, a[href*="Kaynak_tart%C4%B1%C5%9Fma:"]');
if (sourceTalkLink.length > 0) {
var mainPageUrl = baseUrl.replace('$1', encodeURIComponent(pageName));
sourceTalkLink.replaceWith(
'<a href="' + mainPageUrl + '" class="citizen-cdx-button--size-large cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet">' +
'<span class="citizen-ui-icon mw-ui-icon-eye mw-ui-icon-wikimedia-eye"></span> ' +
'<span>Oku</span>' +
'</a>'
);
}
// Sadece okuma modundaysak ve sayfa veritabanında yoksa şablonu render et
if (!isEditing) {
if ($('.noarticletext').length > 0 || $('.mw-noarticletext').length > 0 || mw.config.get('wgArticleId') === 0) {
$('.noarticletext, .mw-noarticletext').hide();
var container = $('#mw-content-text');
container.html('<div id="loading-cite" style="color: var(--kb-text-sub); font-style: italic; padding: 10px;">Kaynak arayüzü yükleniyor...</div>');
$.ajax({
url: mw.util.wikiScript('api'),
data: {
action: 'parse',
text: '{{AlıntıYap|madde=' + pageName + '}}',
contentmodel: 'wikitext',
format: 'json'
},
success: function(data) {
if (data && data.parse && data.parse.text) {
container.html(data.parse.text['*']);
}
}
});
}
}
}
});
// 3. DİNAMİK ELEMENT GÖZLEMCİSİ (KOMUT PALETİ TÜRKÇELEŞTİRME & ZAR BUTONU)
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
const menuHeadings = document.querySelectorAll('.citizen-menu__heading');
menuHeadings.forEach(heading => {
if (heading.textContent.trim() === 'Last modified') heading.textContent = 'Son değişiklikler';
});
const palette = document.querySelector('.citizen-command-palette');
if (palette) {
const inputArea = palette.querySelector('.citizen-command-palette-header__input-area');
const customBtnCheck = palette.querySelector('#citizen-custom-random-btn');
if (inputArea && !customBtnCheck) {
const randomBtn = document.createElement('div');
randomBtn.id = 'citizen-custom-random-btn';
randomBtn.title = 'Rastgele Sayfa Getir';
randomBtn.innerHTML = '<span class="citizen-ui-icon mw-ui-icon-wikimedia-die"></span>';
randomBtn.addEventListener('click', function() {
window.location.href = (mw.config.get('wgArticlePath') || '/wiki/$1').replace('$1', 'Özel:Rastgele');
});
inputArea.appendChild(randomBtn);
}
palette.querySelectorAll('*').forEach(el => {
if (el.childNodes.length === 1 && el.textContent.trim() === 'Recent') el.textContent = 'Son Aramalar';
});
palette.querySelectorAll('[class*="badge"], [class*="item-badge"]').forEach(badge => {
if (badge.textContent.trim() === 'Page') badge.innerHTML = 'Sayfa';
else if (badge.textContent.trim() === 'Action') badge.innerHTML = 'Eylem';
});
palette.querySelectorAll('[class*="description"]').forEach(desc => {
if (desc.textContent.trim() === 'Create or edit page') desc.textContent = 'Sayfa oluştur veya düzenle';
});
const note = palette.querySelector('[class*="footer-note"]');
if (note) {
if (note.innerHTML.includes('all commands')) note.innerHTML = 'Tüm komutlar için <code>/</code> yazın';
else if (note.innerHTML.includes('namespace')) note.innerHTML = 'Ad alanlarında aramak için <code>:</code> yazın';
else if (note.innerHTML.includes('for users')) note.innerHTML = 'Kullanıcıları aramak için <code>@</code> yazın';
else if (note.innerHTML.includes('for templates')) note.innerHTML = 'Şablonları aramak için <code>{{</code> yazın';
}
palette.querySelectorAll('[class*="keyboard-hint"]').forEach(hint => {
const label = hint.querySelector('[class*="label"]');
if (label) {
var txt = label.textContent.trim();
if (txt === 'Select') label.textContent = 'Seç';
else if (txt === 'Navigate') label.textContent = 'Gezin';
else if (txt === 'Actions') label.textContent = 'Eylemler';
else if (txt === 'Close') label.textContent = 'Kapat';
}
});
}
});
});
observer.observe(document.body, { childList: true, subtree: true });
/* Yapışkan başlıktaki (Sticky Header) Tartışma butonunu Alıntı butonuyla değiştirir */
mw.hook('wikipage.content').add(function() {
var stickyTalkBtn = document.getElementById('ca-talk-sticky-header');
if (stickyTalkBtn) {
// Eski speechBubbles ikon sınıflarını silip yerine quotes ikon sınıflarını ekler
var iconSpan = stickyTalkBtn.querySelector('.citizen-ui-icon');
if (iconSpan) {
iconSpan.className = 'citizen-ui-icon mw-ui-icon-quotes mw-ui-icon-wikimedia-quotes';
}
// "Oku" veya "Tartışma" yazan metni "Alıntı" olarak günceller
var textSpan = stickyTalkBtn.querySelector('span:not(.citizen-ui-icon)');
if (textSpan) {
textSpan.textContent = 'Alıntı';
}
}
});
/* Yan menü (Drawer) elemanlarına dinamik ikon ekleme kodu */
mw.hook('wikipage.content').add(function() {
// 1. Dizin İkonu (Liste simgesi ekler)
var dizinMaddesi = document.getElementById('n-Dizin');
if (dizinMaddesi && !dizinMaddesi.querySelector('.citizen-ui-icon')) {
var link = dizinMaddesi.querySelector('a');
if (link) {
var icon = document.createElement('span');
icon.className = 'citizen-ui-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet';
link.insertBefore(icon, link.firstChild);
}
}
// 2. Kısaltmalar İkonu (Sitede kesin aktif olan Son Değişiklikler/Saat simgesini ekler)
var kisaltmalar = document.getElementById('n-Kısaltmalar');
if (kisaltmalar && !kisaltmalar.querySelector('.citizen-ui-icon')) {
var link = kisaltmalar.querySelector('a');
if (link) {
var icon = document.createElement('span');
// Sitede çalıştığı kesinleşen recentChanges sınıflarını bağladık
icon.className = 'citizen-ui-icon mw-ui-icon-recentChanges mw-ui-icon-wikimedia-recentChanges';
link.insertBefore(icon, link.firstChild);
}
}
// 3. Kılavuz İkonu (Madde/Belge simgesi ekler)
var kilavuz = document.getElementById('n-Kılavuz');
if (kilavuz && !kilavuz.querySelector('.citizen-ui-icon')) {
var link = kilavuz.querySelector('a');
if (link) {
var icon = document.createElement('span');
icon.className = 'citizen-ui-icon mw-ui-icon-article mw-ui-icon-wikimedia-article';
link.insertBefore(icon, link.firstChild);
}
}
// 4. Ansiklopedi Hakkında İkonu (Bilgi/Info simgesi ekler)
var hakkinda = document.getElementById('n-Ansiklopedi-hakkında');
if (hakkinda && !hakkinda.querySelector('.citizen-ui-icon')) {
var link = hakkinda.querySelector('a');
if (link) {
var icon = document.createElement('span');
icon.className = 'citizen-ui-icon mw-ui-icon-infoFilled mw-ui-icon-wikimedia-infoFilled';
link.insertBefore(icon, link.firstChild);
}
}
});
///////////////////////////////////////////////////
///////////////////////////////////////////////////
mw.loader.using(['mediawiki.util']).then(function () {
$(document).ready(function () {
var $yazarKaynagi = $('#sayfa-yazarlari');
if (!$yazarKaynagi.length) return;
var hamMetin = $yazarKaynagi.html();
var satirlar = hamMetin.split(/<br\s*\/?>|\n/i);
var gecerliYazarlar = [];
satirlar.forEach(function(satir) {
var duzMetin = satir.replace(/<\/?[^>]+(>|$)/g, "").trim();
if (duzMetin !== "") {
gecerliYazarlar.push(satir.trim());
}
});
if (gecerliYazarlar.length > 0) {
var baslikMetni = gecerliYazarlar.length > 1 ? 'Yazarlar' : 'Yazar';
// Ana Kart Yapısı (Üst çizgiyle araya mesafe eklendi)
var $yazarKarti = $('<div>', {
'id': 'citizen-sidebar-yazarlar',
'style': 'margin-bottom: 24px; padding-top: 8px; font-family: inherit;'
});
// Başlık Alanı
var $yazarBaslik = $('<div>', {
'text': baslikMetni,
'style': 'font-size: var(--font-size-sm, 0.85em); font-weight: bold; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-base--subtle, #72777d); margin-bottom: 12px;'
});
// İçerik Alanı
var $yazarIcerik = $('<div>', {
'style': 'padding-left: 0 !important; margin-left: 0 !important;'
});
// Her bir yazar için ikonlu ve flex yapılı satır
gecerliYazarlar.forEach(function(yazar) {
var $yazarSatiri = $('<div>', {
'style': 'display: flex; align-items: center; gap: 8px; padding: 4px 0 !important; font-size: var(--font-size-md, 0.95em); line-height: 1; color: var(--color-base, #e6e6e6);'
});
// İkonun net görünmesi için opacity: 1 ve filter: none eklendi
var $ikon = $('<span>', {
'class': 'citizen-ui-icon mw-ui-icon-wikimedia-userAvatar',
'style': 'margin: 0 !important; padding: 0 !important; flex-shrink: 0; opacity: 1 !important; filter: none !important;'
});
// İsim alanı
var $isim = $('<span>', {
'style': 'display: inline-block; line-height: 1.2;'
}).html(yazar);
// Link varsa stilini temizle
$isim.find('a').css({
'color': 'inherit',
'text-decoration': 'none'
});
$yazarSatiri.append($ikon).append($isim);
$yazarIcerik.append($yazarSatiri);
});
$yazarKarti.append($yazarBaslik).append($yazarIcerik);
// Menüyü "Son değişiklikler"in altına yerleştir
if ($('#citizen-sidebar-lastmod').length) {
$('#citizen-sidebar-lastmod').after($yazarKarti);
} else if ($('.citizen-page-sidebar').length) {
$('.citizen-page-sidebar').prepend($yazarKarti);
}
}
});
});