מדיה ויקי:Common.js: הבדלים בין גרסאות בדף
קפיצה לניווט
קפיצה לחיפוש
אין תקציר עריכה |
אין תקציר עריכה |
||
| שורה 19: | שורה 19: | ||
var $window = $(window); | var $window = $(window); | ||
var $header = $('#firstHeading'); | var $header = $('#firstHeading'); | ||
function updateTocPosition() { | function updateTocPosition() { | ||
var scrollTop = $window.scrollTop(); | var scrollTop = $window.scrollTop(); | ||
var headerHeight = $header.offset().top + $header.outerHeight(); | var headerHeight = $header.offset().top + $header.outerHeight(); | ||
$toc.css('top', scrollTop > headerHeight ? '0' : '220px'); | $toc.css('top', scrollTop > headerHeight ? '0' : '220px'); | ||
} | } | ||
$window.on('scroll resize', updateTocPosition); | $window.on('scroll resize', updateTocPosition); | ||
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 theme = AppearancePrefs.get('theme', 'light'); | |||
var fontFamily = AppearancePrefs.get('fontFamily', 'david'); | |||
applyFontSize(fontSize); | |||
applyTheme(theme); | |||
applyFontFamily(fontFamily); | |||
} | |||
// החלת גודל טקסט | |||
function applyFontSize(size) { | |||
var $body = $('body'); | |||
$body.removeClass('text-small text-medium text-large text-xlarge'); | |||
$body.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 applyTheme(theme) { | |||
var $body = $('body'); | |||
$body.removeClass('theme-light theme-dark theme-sepia'); | |||
$body.addClass('theme-' + theme); | |||
AppearancePrefs.set('theme', theme); | |||
// עדכון בחירה בתפריט | |||
$('.appearance-option[data-type="theme"]').removeClass('active'); | |||
$('.appearance-option[data-type="theme"][data-value="' + theme + '"]').addClass('active'); | |||
} | |||
// החלת גופן | |||
function applyFontFamily(font) { | |||
var $body = $('body'); | |||
$body.removeClass('font-david font-frank font-arial'); | |||
$body.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 createAppearanceMenu() { | |||
var html = | |||
'<div id="appearance-panel" class="vector-menu vector-menu-portal portal" role="navigation">' + | |||
' <h3 class="vector-menu-heading"><span>מראה</span></h3>' + | |||
' <div class="vector-menu-content">' + | |||
' <ul class="vector-menu-content-list">' + | |||
' <li class="appearance-section">גודל טקסט:</li>' + | |||
' <li class="appearance-option" data-type="fontSize" data-value="small">קטן</li>' + | |||
' <li class="appearance-option" data-type="fontSize" data-value="medium">בינוני</li>' + | |||
' <li class="appearance-option" data-type="fontSize" data-value="large">גדול</li>' + | |||
' <li class="appearance-option" data-type="fontSize" data-value="xlarge">גדול מאוד</li>' + | |||
' <li class="appearance-divider"></li>' + | |||
' <li class="appearance-section">ערכת צבעים:</li>' + | |||
' <li class="appearance-option" data-type="theme" data-value="light">בהיר</li>' + | |||
' <li class="appearance-option" data-type="theme" data-value="dark">כהה</li>' + | |||
' <li class="appearance-option" data-type="theme" data-value="sepia">ספיה</li>' + | |||
' <li class="appearance-divider"></li>' + | |||
' <li class="appearance-section">גופן:</li>' + | |||
' <li class="appearance-option" data-type="fontFamily" data-value="david">דוד</li>' + | |||
' <li class="appearance-option" data-type="fontFamily" data-value="frank">פרנק</li>' + | |||
' <li class="appearance-option" data-type="fontFamily" data-value="arial">אריאל</li>' + | |||
' </ul>' + | |||
' </div>' + | |||
'</div>'; | |||
// הוספת התפריט לסרגל הצד | |||
var $sidebar = $('#mw-panel'); | |||
if ($sidebar.length) { | |||
$(html).insertBefore($sidebar.find('.portal').first()); | |||
} | |||
// הוספת מאזינים לאירועים | |||
$('.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 === 'theme') { | |||
applyTheme(value); | |||
} else if (type === 'fontFamily') { | |||
applyFontFamily(value); | |||
} | |||
}); | |||
} | |||
// אתחול | |||
$(function() { | |||
createAppearanceMenu(); | |||
loadPreferences(); | |||
}); | |||
})(); | |||
גרסה מ־21:13, 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 theme = AppearancePrefs.get('theme', 'light');
var fontFamily = AppearancePrefs.get('fontFamily', 'david');
applyFontSize(fontSize);
applyTheme(theme);
applyFontFamily(fontFamily);
}
// החלת גודל טקסט
function applyFontSize(size) {
var $body = $('body');
$body.removeClass('text-small text-medium text-large text-xlarge');
$body.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 applyTheme(theme) {
var $body = $('body');
$body.removeClass('theme-light theme-dark theme-sepia');
$body.addClass('theme-' + theme);
AppearancePrefs.set('theme', theme);
// עדכון בחירה בתפריט
$('.appearance-option[data-type="theme"]').removeClass('active');
$('.appearance-option[data-type="theme"][data-value="' + theme + '"]').addClass('active');
}
// החלת גופן
function applyFontFamily(font) {
var $body = $('body');
$body.removeClass('font-david font-frank font-arial');
$body.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 createAppearanceMenu() {
var html =
'<div id="appearance-panel" class="vector-menu vector-menu-portal portal" role="navigation">' +
' <h3 class="vector-menu-heading"><span>מראה</span></h3>' +
' <div class="vector-menu-content">' +
' <ul class="vector-menu-content-list">' +
' <li class="appearance-section">גודל טקסט:</li>' +
' <li class="appearance-option" data-type="fontSize" data-value="small">קטן</li>' +
' <li class="appearance-option" data-type="fontSize" data-value="medium">בינוני</li>' +
' <li class="appearance-option" data-type="fontSize" data-value="large">גדול</li>' +
' <li class="appearance-option" data-type="fontSize" data-value="xlarge">גדול מאוד</li>' +
' <li class="appearance-divider"></li>' +
' <li class="appearance-section">ערכת צבעים:</li>' +
' <li class="appearance-option" data-type="theme" data-value="light">בהיר</li>' +
' <li class="appearance-option" data-type="theme" data-value="dark">כהה</li>' +
' <li class="appearance-option" data-type="theme" data-value="sepia">ספיה</li>' +
' <li class="appearance-divider"></li>' +
' <li class="appearance-section">גופן:</li>' +
' <li class="appearance-option" data-type="fontFamily" data-value="david">דוד</li>' +
' <li class="appearance-option" data-type="fontFamily" data-value="frank">פרנק</li>' +
' <li class="appearance-option" data-type="fontFamily" data-value="arial">אריאל</li>' +
' </ul>' +
' </div>' +
'</div>';
// הוספת התפריט לסרגל הצד
var $sidebar = $('#mw-panel');
if ($sidebar.length) {
$(html).insertBefore($sidebar.find('.portal').first());
}
// הוספת מאזינים לאירועים
$('.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 === 'theme') {
applyTheme(value);
} else if (type === 'fontFamily') {
applyFontFamily(value);
}
});
}
// אתחול
$(function() {
createAppearanceMenu();
loadPreferences();
});
})();