מדיה ויקי:Common.js: הבדלים בין גרסאות בדף
קפיצה לניווט
קפיצה לחיפוש
אין תקציר עריכה |
אין תקציר עריכה |
||
| שורה 56: | שורה 56: | ||
function loadPreferences() { | function loadPreferences() { | ||
var fontSize = AppearancePrefs.get('fontSize', 'medium'); | var fontSize = AppearancePrefs.get('fontSize', 'medium'); | ||
var | var contentWidth = AppearancePrefs.get('contentWidth', 'normal'); | ||
var fontFamily = AppearancePrefs.get('fontFamily', 'david'); | var fontFamily = AppearancePrefs.get('fontFamily', 'david'); | ||
var panelVisible = AppearancePrefs.get('panelVisible', 'true'); | |||
applyFontSize(fontSize); | applyFontSize(fontSize); | ||
applyContentWidth(contentWidth); | |||
applyFontFamily(fontFamily); | applyFontFamily(fontFamily); | ||
// החלת מצב התפריט | |||
if (panelVisible === 'false') { | |||
$('#appearance-panel').addClass('hidden'); | |||
$('#appearance-toggle').addClass('panel-hidden'); | |||
} | |||
} | } | ||
// החלת גודל טקסט | // החלת גודל טקסט | ||
function applyFontSize(size) { | function applyFontSize(size) { | ||
var $content = $('#content, .mw-parser-output'); | var $content = $('#content, .mw-parser-output'); | ||
| שורה 71: | שורה 78: | ||
AppearancePrefs.set('fontSize', size); | AppearancePrefs.set('fontSize', size); | ||
$('.appearance-option[data-type="fontSize"]').removeClass('active'); | $('.appearance-option[data-type="fontSize"]').removeClass('active'); | ||
$('.appearance-option[data-type="fontSize"][data-value="' + size + '"]').addClass('active'); | $('.appearance-option[data-type="fontSize"][data-value="' + size + '"]').addClass('active'); | ||
} | } | ||
// החלת | // החלת רוחב תוכן | ||
function | function applyContentWidth(width) { | ||
var $content = $('#content | var $content = $('#content'); | ||
$content.removeClass(' | var $body = $('.mw-body'); | ||
$content.addClass(' | |||
$content.removeClass('width-normal width-wide'); | |||
$body.removeClass('width-normal width-wide'); | |||
$content.addClass('width-' + width); | |||
$body.addClass('width-' + width); | |||
AppearancePrefs.set('contentWidth', width); | |||
$('.appearance-option[data-type=" | |||
$('.appearance-option[data-type=" | $('.appearance-option[data-type="contentWidth"]').removeClass('active'); | ||
$('.appearance-option[data-type="contentWidth"][data-value="' + width + '"]').addClass('active'); | |||
} | } | ||
// החלת גופן | // החלת גופן | ||
function applyFontFamily(font) { | function applyFontFamily(font) { | ||
var $content = $('#content, .mw-parser-output'); | var $content = $('#content, .mw-parser-output'); | ||
| שורה 95: | שורה 106: | ||
AppearancePrefs.set('fontFamily', font); | AppearancePrefs.set('fontFamily', font); | ||
$('.appearance-option[data-type="fontFamily"]').removeClass('active'); | $('.appearance-option[data-type="fontFamily"]').removeClass('active'); | ||
$('.appearance-option[data-type="fontFamily"][data-value="' + font + '"]').addClass('active'); | $('.appearance-option[data-type="fontFamily"][data-value="' + font + '"]').addClass('active'); | ||
} | } | ||
// יצירת תפריט מראה - | // הצגה/הסתרת תפריט | ||
function togglePanel() { | |||
var $panel = $('#appearance-panel'); | |||
var $toggle = $('#appearance-toggle'); | |||
$panel.toggleClass('hidden'); | |||
$toggle.toggleClass('panel-hidden'); | |||
var isVisible = !$panel.hasClass('hidden'); | |||
AppearancePrefs.set('panelVisible', isVisible ? 'true' : 'false'); | |||
} | |||
// יצירת כפתור הצגה/הסתרה | |||
function createToggleButton() { | |||
var html = '<div id="appearance-toggle" title="הצג/הסתר תפריט מראה">⚙</div>'; | |||
$('body').append(html); | |||
$('#appearance-toggle').on('click', function() { | |||
togglePanel(); | |||
}); | |||
} | |||
// יצירת תפריט מראה | |||
function createAppearanceMenu() { | function createAppearanceMenu() { | ||
var html = | var html = | ||
| שורה 112: | שורה 144: | ||
' <div class="appearance-option" data-type="fontSize" data-value="xlarge">גדול מאוד</div>' + | ' <div class="appearance-option" data-type="fontSize" data-value="xlarge">גדול מאוד</div>' + | ||
' <div class="appearance-divider"></div>' + | ' <div class="appearance-divider"></div>' + | ||
' <div class="appearance-section"> | ' <div class="appearance-section">רוחב תוכן:</div>' + | ||
' <div class="appearance-option" data-type=" | ' <div class="appearance-option" data-type="contentWidth" data-value="normal">רגיל</div>' + | ||
' <div class="appearance-option" data-type=" | ' <div class="appearance-option" data-type="contentWidth" data-value="wide">רחב</div>' + | ||
' <div class="appearance-divider"></div>' + | ' <div class="appearance-divider"></div>' + | ||
' <div class="appearance-section">גופן:</div>' + | ' <div class="appearance-section">גופן:</div>' + | ||
| שורה 124: | שורה 155: | ||
'</div>'; | '</div>'; | ||
$('body').append(html); | $('body').append(html); | ||
// | // מאזינים לאירועים | ||
$('.appearance-option').on('click', function() { | $('.appearance-option').on('click', function() { | ||
var $this = $(this); | var $this = $(this); | ||
| שורה 135: | שורה 165: | ||
if (type === 'fontSize') { | if (type === 'fontSize') { | ||
applyFontSize(value); | applyFontSize(value); | ||
} else if (type === ' | } else if (type === 'contentWidth') { | ||
applyContentWidth(value); | |||
} else if (type === 'fontFamily') { | } else if (type === 'fontFamily') { | ||
applyFontFamily(value); | applyFontFamily(value); | ||
| שורה 146: | שורה 176: | ||
$(function() { | $(function() { | ||
createAppearanceMenu(); | createAppearanceMenu(); | ||
createToggleButton(); | |||
loadPreferences(); | loadPreferences(); | ||
}); | }); | ||
})(); | })(); | ||
גרסה אחרונה מ־22:01, 1 בנובמבר 2025
// קוד קיים - משאירים אותו
(function () {
var userLang = mw.config.get('wgUserLanguage');
var pageName = mw.config.get('wgPageName');
if (pageName === 'רבי_יואל_טייטלבוים' && userLang === 'yi') {
window.location.href = mw.util.getUrl('רבי_יואל_טייטלבוים/yi');
}
if (pageName === 'רבי_יואל_טייטלבוים/yi' && userLang === 'he') {
window.location.href = mw.util.getUrl('רבי_יואל_טייטלבוים');
}
})();
// תוכן עניינים - גרסה משופרת
mw.hook('wikipage.content').add(function ($content) {
var $toc = $('#toc');
if ($toc.length) {
var $window = $(window);
var $header = $('#firstHeading');
function updateTocPosition() {
var scrollTop = $window.scrollTop();
var headerHeight = $header.offset().top + $header.outerHeight();
$toc.css('top', scrollTop > headerHeight ? '0' : '220px');
}
$window.on('scroll resize', updateTocPosition);
updateTocPosition(); // קריאה ראשונית
}
});
// ========== בקרי מראה (Appearance Controls) ==========
(function() {
'use strict';
// פונקציות עזר לניהול העדפות
var AppearancePrefs = {
get: function(key, defaultVal) {
try {
var val = localStorage.getItem('otzar-' + key);
return val !== null ? val : defaultVal;
} catch(e) {
return defaultVal;
}
},
set: function(key, val) {
try {
localStorage.setItem('otzar-' + key, val);
} catch(e) {}
}
};
// טעינת העדפות שמורות
function loadPreferences() {
var fontSize = AppearancePrefs.get('fontSize', 'medium');
var contentWidth = AppearancePrefs.get('contentWidth', 'normal');
var fontFamily = AppearancePrefs.get('fontFamily', 'david');
var panelVisible = AppearancePrefs.get('panelVisible', 'true');
applyFontSize(fontSize);
applyContentWidth(contentWidth);
applyFontFamily(fontFamily);
// החלת מצב התפריט
if (panelVisible === 'false') {
$('#appearance-panel').addClass('hidden');
$('#appearance-toggle').addClass('panel-hidden');
}
}
// החלת גודל טקסט
function applyFontSize(size) {
var $content = $('#content, .mw-parser-output');
$content.removeClass('text-small text-medium text-large text-xlarge');
$content.addClass('text-' + size);
AppearancePrefs.set('fontSize', size);
$('.appearance-option[data-type="fontSize"]').removeClass('active');
$('.appearance-option[data-type="fontSize"][data-value="' + size + '"]').addClass('active');
}
// החלת רוחב תוכן
function applyContentWidth(width) {
var $content = $('#content');
var $body = $('.mw-body');
$content.removeClass('width-normal width-wide');
$body.removeClass('width-normal width-wide');
$content.addClass('width-' + width);
$body.addClass('width-' + width);
AppearancePrefs.set('contentWidth', width);
$('.appearance-option[data-type="contentWidth"]').removeClass('active');
$('.appearance-option[data-type="contentWidth"][data-value="' + width + '"]').addClass('active');
}
// החלת גופן
function applyFontFamily(font) {
var $content = $('#content, .mw-parser-output');
$content.removeClass('font-david font-frank font-arial');
$content.addClass('font-' + font);
AppearancePrefs.set('fontFamily', font);
$('.appearance-option[data-type="fontFamily"]').removeClass('active');
$('.appearance-option[data-type="fontFamily"][data-value="' + font + '"]').addClass('active');
}
// הצגה/הסתרת תפריט
function togglePanel() {
var $panel = $('#appearance-panel');
var $toggle = $('#appearance-toggle');
$panel.toggleClass('hidden');
$toggle.toggleClass('panel-hidden');
var isVisible = !$panel.hasClass('hidden');
AppearancePrefs.set('panelVisible', isVisible ? 'true' : 'false');
}
// יצירת כפתור הצגה/הסתרה
function createToggleButton() {
var html = '<div id="appearance-toggle" title="הצג/הסתר תפריט מראה">⚙</div>';
$('body').append(html);
$('#appearance-toggle').on('click', function() {
togglePanel();
});
}
// יצירת תפריט מראה
function createAppearanceMenu() {
var html =
'<div id="appearance-panel">' +
' <h3 class="appearance-heading">מראה</h3>' +
' <div class="appearance-content">' +
' <div class="appearance-section">גודל טקסט:</div>' +
' <div class="appearance-option" data-type="fontSize" data-value="small">קטן</div>' +
' <div class="appearance-option" data-type="fontSize" data-value="medium">בינוני</div>' +
' <div class="appearance-option" data-type="fontSize" data-value="large">גדול</div>' +
' <div class="appearance-option" data-type="fontSize" data-value="xlarge">גדול מאוד</div>' +
' <div class="appearance-divider"></div>' +
' <div class="appearance-section">רוחב תוכן:</div>' +
' <div class="appearance-option" data-type="contentWidth" data-value="normal">רגיל</div>' +
' <div class="appearance-option" data-type="contentWidth" data-value="wide">רחב</div>' +
' <div class="appearance-divider"></div>' +
' <div class="appearance-section">גופן:</div>' +
' <div class="appearance-option" data-type="fontFamily" data-value="david">דוד</div>' +
' <div class="appearance-option" data-type="fontFamily" data-value="frank">פרנק</div>' +
' <div class="appearance-option" data-type="fontFamily" data-value="arial">אריאל</div>' +
' </div>' +
'</div>';
$('body').append(html);
// מאזינים לאירועים
$('.appearance-option').on('click', function() {
var $this = $(this);
var type = $this.data('type');
var value = $this.data('value');
if (type === 'fontSize') {
applyFontSize(value);
} else if (type === 'contentWidth') {
applyContentWidth(value);
} else if (type === 'fontFamily') {
applyFontFamily(value);
}
});
}
// אתחול
$(function() {
createAppearanceMenu();
createToggleButton();
loadPreferences();
});
})();