مدیاویکی:Common.js: تفاوت میان نسخهها
از ولایت حضرت علی و حضرت زهرا
imported>Alavi بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
| خط ۱۷۴: | خط ۱۷۴: | ||
}); | }); | ||
}); | |||
mw.hook('wikipage.content').add(function () { | |||
if (mw.config.get('wgCanonicalSpecialPageName') === 'Search') { | |||
const box = document.createElement('div'); | |||
box.innerHTML = "⚠️ نتایج جستجو بهصورت آزمایشی نمایش داده میشوند"; | |||
box.style.cssText = | |||
"padding:10px;background:#e7f3ff;border:1px solid #b3d4fc;margin:10px 0;font-weight:bold;"; | |||
const content = document.querySelector('#mw-content-text'); | |||
if (content) { | |||
content.prepend(box); | |||
} | |||
} | |||
}); | }); | ||
نسخهٔ ۵ ژوئن ۲۰۲۶، ساعت ۱۶:۱۳
/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
var targets = $('[rel~=tooltip]'),
target = false,
tooltip = false,
title = false;
targets.bind('mouseenter', function () {
target = $(this);
tip = target.attr('title');
tooltip = $('<div id="tooltip"></div>');
if (!tip || tip == '')
return false;
target.removeAttr('title');
tooltip.css('opacity', 0)
.html(tip)
.appendTo('body');
var init_tooltip = function () {
if ($(window).width() < tooltip.outerWidth() * 1.5)
tooltip.css('max-width', $(window).width() / 2);
else
tooltip.css('max-width', 340);
var pos_left = target.offset().left + (target.outerWidth() / 2) - (tooltip.outerWidth() / 2),
pos_top = target.offset().top - tooltip.outerHeight() - 20;
if (pos_left < 0) {
pos_left = target.offset().left + target.outerWidth() / 2 - 20;
tooltip.addClass('left');
}
else
tooltip.removeClass('left');
if (pos_left + tooltip.outerWidth() > $(window).width()) {
pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 20;
tooltip.addClass('right');
}
else
tooltip.removeClass('right');
if (pos_top < 0) {
var pos_top = target.offset().top + target.outerHeight();
tooltip.addClass('top');
}
else
tooltip.removeClass('top');
tooltip.css({ left: pos_left, top: pos_top })
.animate({ top: '+=10', opacity: 1 }, 50);
};
init_tooltip();
$(window).resize(init_tooltip);
var remove_tooltip = function () {
tooltip.animate({ top: '-=10', opacity: 0 }, 50, function () {
$(this).remove();
});
target.attr('title', tip);
};
target.bind('mouseleave', remove_tooltip);
tooltip.bind('click', remove_tooltip);
});
});
$('.col-lg-9').removeClass('col')
$('.col-lg-3').removeClass('col')
function showSujects(subjectClass, title) {
// Get all the elements with the class "subjects"
var subjects = $(subjectClass);
// Create an empty list to hold the IDs of the selected elements
var selectedTitles = [];
var selectedIds = [];
var types = [];
// Loop through each element with the class "subjects"
subjects.each(function () {
// Get the ID of the current element
var currentTitle = $(this).attr('data-headline');
var currentId = $(this).attr('id');
// Add the ID to the list of selected IDs
selectedTitles.push(currentTitle);
selectedIds.push(currentId);
types.push($(this).hasClass('minutes'))
});
if (selectedTitles.length === 0) {
return
}
// console.log('selecting subjects')
// Loop through the selected IDs and create a new div for each one
var headlines = [];
for (var i = 0; i < selectedTitles.length; i++) {
var tocWrapper = '';
var id = parseInt(selectedIds[i]);
console.log(id);
if (types[i])
tocWrapper = $("<div class='tocMinuts'></div>");
else
tocWrapper = $("<li></li>");
var newDiv = $("<a class='subjectToc' href='#" + selectedIds[i] + "'></a>");
newDiv.text(selectedTitles[i]);
tocWrapper.append(newDiv);
headlines.push(tocWrapper);
}
// Wrap all the new divs in a specific div with the ID "new-div-container"
var headLineContainer = $("<div></div>");
headLineContainer.addClass("infobox mw-collapsible");
headLineContainer.css("width", "22em");
var ToggleSpan = $("<span >" + title + "</span>")
var headLineWrapper = $("<ol></ol>");
headLineWrapper.addClass("headWrapperSubjects");
headLineWrapper.addClass("mw-collapsible-content");
headLineWrapper.append(headlines);
headLineContainer.append(ToggleSpan);
headLineContainer.append(headLineWrapper);
// Add the new div container after the table with the ID "my-table"
$(".infobox.vcard").after(headLineContainer);
}
showSujects('.subjects, .minutes', 'موضوعات');
$(function () {
$('.mw-find-box').each(function () {
var $input = $(this).find('.mw-find-input');
var content = document.getElementById('mw-content-text');
function unwrap() {
var marks = content.querySelectorAll('mark.mw-find-highlight');
for (var i = marks.length - 1; i >= 0; i--) {
var parent = marks[i].parentNode;
parent.replaceChild(document.createTextNode(marks[i].textContent), marks[i]);
parent.normalize();
}
}
function highlight(term) {
unwrap();
if (!term) return;
var walker = document.createTreeWalker(content, NodeFilter.SHOW_TEXT, null);
var regex = new RegExp(term, 'gi');
var node;
while ((node = walker.nextNode())) {
if (!node.nodeValue.match(regex)) continue;
var span = document.createElement('span');
span.innerHTML = node.nodeValue.replace(regex,
'<mark class="mw-find-highlight">$&</mark>'
);
node.parentNode.replaceChild(span, node);
}
}
$input.on('input', function () {
highlight(this.value.trim());
});
});
});
mw.hook('wikipage.content').add(function () {
if (mw.config.get('wgCanonicalSpecialPageName') === 'Search') {
const box = document.createElement('div');
box.innerHTML = "⚠️ نتایج جستجو بهصورت آزمایشی نمایش داده میشوند";
box.style.cssText =
"padding:10px;background:#e7f3ff;border:1px solid #b3d4fc;margin:10px 0;font-weight:bold;";
const content = document.querySelector('#mw-content-text');
if (content) {
content.prepend(box);
}
}
});