MediaWiki:Common.js
Görünüm
Not: Yayımladıktan sonra değişiklikleri görmeniz için tarayıcınızın önbelleğini temizlemeniz gerekebilir.
- Firefox / Safari: Shift tuşuna basılıyken Yeniden Yükle'ye tıklayın ya da Ctrl-F5 ya da Ctrl-R tıklayın (Mac için ⌘-R)
- Google Chrome: Ctrl-Shift-R'ye basın. (Mac için ⌘-Shift-R)
- Edge: Ctrl basılıyken Yenile'ye tıklayın ya da Ctrl-F5'e basın.
/* Buraya konulacak JavaScript kodu sitedeki her kullanıcı için her sayfa yüklendiğinde çalışacaktır */
$(function() {
// Sağda açılır menü için HTML ekle
var sidebarHtml = `
<div id="recent-pages-toggle" style="
position: fixed;
top: 50px;
right: 0;
background: #f5f5f5;
border: 1px solid #ccc;
border-right: none;
width: 280px;
max-height: 70vh;
overflow-y: auto;
box-shadow: -2px 0 6px rgba(0,0,0,0.1);
z-index: 9999;
transform: translateX(100%);
transition: transform 0.3s ease-in-out;
font-family: sans-serif;
padding: 10px;
border-radius: 8px 0 0 8px;
">
<div style="text-align:center; font-weight:bold; cursor:pointer; margin-bottom:10px;" id="recent-pages-header">
🕘 En Yeni Sayfalar ▼
</div>
<ul id="recent-pages-list" style="list-style:none; padding:0; margin:0;">
<li>Yükleniyor...</li>
</ul>
</div>
<button id="recent-pages-button" style="
position: fixed;
top: 50px;
right: 0;
z-index: 10000;
background: #007bff;
border: none;
color: white;
padding: 8px 12px;
cursor: pointer;
border-radius: 8px 0 0 8px;
font-weight: bold;
font-family: sans-serif;
">Yeni Sayfalar</button>
`;
$('body').append(sidebarHtml);
// Aç/kapa butonu
$('#recent-pages-button').click(function() {
var sidebar = $('#recent-pages-toggle');
if (sidebar.css('transform') === 'matrix(1, 0, 0, 0, 0, 0)') {
// Kapama
sidebar.css('transform', 'translateX(100%)');
} else {
// Açma
sidebar.css('transform', 'translateX(0)');
}
});
// Başlık tıklayınca da aç/kapa yapalım
$('#recent-pages-header').click(function() {
$('#recent-pages-button').click();
});
// DynamicPageList API çağrısı ile en yeni sayfaları çekelim (Ajax ile)
$.ajax({
url: mw.util.wikiScript('api'),
data: {
action: 'query',
list: 'allpages',
aplimit: 7,
apdir: 'descending',
apnamespace: 0,
format: 'json'
},
dataType: 'json',
success: function(data) {
var pages = data.query.allpages;
var listHtml = '';
pages.forEach(function(page) {
var url = mw.util.getUrl(page.title);
listHtml += '<li><a href="' + url + '">' + page.title + '</a></li>';
});
$('#recent-pages-list').html(listHtml);
},
error: function() {
$('#recent-pages-list').html('<li>Sayfalar yüklenemedi.</li>');
}
});
});