מדיה ויקי: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();
    });
})();