Khác biệt giữa bản sửa đổi của “MediaWiki:Minerva.js”

Từ Từ điển tri thức Hội Thánh của Đức Chúa Trời
Bước tới điều hướng Bước tới tìm kiếm
Không có tóm lược sửa đổi
Không có tóm lược sửa đổi
 
(Không hiển thị 15 phiên bản của 2 người dùng ở giữa)
Dòng 1: Dòng 1:
/* All JavaScript here will be loaded for users of the MinervaNeue skin */
/* All JavaScript here will be loaded for users of the MinervaNeue skin */
/* All JavaScript here will be loaded for users of the MinervaNeue skin */
function wikiLink(title) {
// 모바일 메뉴에서 '둘러보기' 문서 보여주기
    // 공백 → _ 치환 후 절대 경로 생성
    return mw.config.get('wgServer') + '/vi/' + title.replace(/ /g, '_');
}
 
document
document
  .querySelector("#mw-mf-page-left #p-navigation")
    .querySelector('#mw-mf-page-left #p-navigation')
  .insertAdjacentHTML(
    .insertAdjacentHTML(
    "afterend",
        'afterend',
    '<ul id="p-main-categories" class="recommended-open"><li class="title-recommended open"><a><span>Bài viết đề xuất</span></a><span class="ico-arrow"></span></li><li class="recommended"><a href="/WHội Thánh của Đức Chúa Trời Hiệp Hội Truyền Giáo Tin Lành Thế Giới><span>Cội Thánh của Đức Chúa Trời (Tài liệu)/span></a></li><li class="recommended"><a href="/Ahnsahnghong"><span>Christ Ahnsahnghong</span></a></li><li class="recommended"><a href="/God_the_Mother"><span>God the Mother</span></a></li><li class="recommended"><a href="/Sabbath"><span>Sabbath</span></a></li><li class="recommended"><a href="/Passover"><span>Passover</span></a></li><li class="recommended"><a href="/Gospel_and_the_New_Covenant"><span>Gospel and New Covenant</span></a></li><li class="title-category"><a><span>Browse by Category</span></a><span class="ico-arrow"></span></li><li class="category"><a href="/Category:Church_of_God"><span>Church of God</span></a></li><li class="category"><a href="/Category:God_the_Father"><span>God the Father</span></a></li><li class="category"><a href="/Category:God_the_Mother"><span>God the Mother</span></a></li><li class="category"><a href="/Category:Gospel_of_the_New_Covenant"><span>Gospel of the New Covenant</span></a></li><li class="category"><a href="/Category:Bible_Knowledge"><span>Bible Knowledge</span></a></li><li class="category"><a href="/Category:Biblical_Issues"><span>Biblical Issues</span></a></li><li class="category"><a href="/Category:Community_Service"><span>Community Service</span></a></li><li class="category"><a href="/Category:Global_Cooperation"><span>Global Cooperation</span></a></li></ul>'
        '<ul id="p-main-categories" class="recommended-open">' +
  );
            '<li class="title-recommended open"><a><span>Bài viết đề xuất</span></a><span class="ico-arrow"></span></li>' +
            '<li class="recommended"><a href="' + wikiLink("Hội Thánh của Đức Chúa Trời Hiệp Hội Truyền Giáo Tin Lành Thế Giới") + '"><span>Hội Thánh của Đức Chúa Trời (Tài liệu)</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("An Xang Hồng") + '"><span>Đấng Christ An Xang Hồng</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Đức Chúa Trời Mẹ") + '"><span>Đức Chúa Trời Mẹ</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Ngày Sabát") + '"><span>Ngày Sabát</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Lễ Vượt Qua") + '"><span>Lễ Vượt Qua</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Tin Lành và giao ước mới") + '"><span>Tin Lành và giao ước mới</span></a></li>' +
            '<li class="title-category"><a><span>Dò xem danh mục</span></a><span class="ico-arrow"></span></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Hội Thánh của Đức Chúa Trời") + '"><span>Hội Thánh của Đức Chúa Trời</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Ðức Chúa Trời Cha") + '"><span>Ðức Chúa Trời Cha</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Đức Chúa Trời Mẹ") + '"><span>Đức Chúa Trời Mẹ</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Tin Lành giao ước mới") + '"><span>Tin Lành giao ước mới</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Thường thức Kinh Thánh") + '"><span>Thường thức Kinh Thánh</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Vấn đề Kinh Thánh") + '"><span>Vấn đề Kinh Thánh</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Cống hiến cho xã hội") + '"><span>Cống hiến cho xã hội</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Hợp tác quốc tế") + '"><span>Hợp tác quốc tế</span></a></li>' +
        '</ul>'      
    );


document
// Recommended Documents 토글
  .querySelector("#p-main-categories .title-recommended")
document.querySelector('#p-main-categories .title-recommended')
  .addEventListener("click", function () {
    .addEventListener('click', function (event) {
    openList(this, "recommended-open");
        event.stopPropagation(); // 사이드바 닫힘 방지
  });
        openList(this, '.recommended');
document
    });
  .querySelector("#p-main-categories .title-category")
  .addEventListener("click", function () {
    openList(this, "category-open");
  });


function openList(titleLi, listClass) {
// Browse by Category 토글
  var list = document.querySelector("#p-main-categories");
document.querySelector('#p-main-categories .title-category')
  if (list.classList.contains(listClass)) {
    .addEventListener('click', function (event) {
    list.classList.remove(listClass);
        event.stopPropagation(); // 사이드바 닫힘 방지
  } else {
        openList(this, '.category');
    list.classList.add(listClass);
    });
  }


  if (titleLi.classList.contains("open")) {
function openList(titleLi, selector) {
     titleLi.classList.remove("open");
    titleLi.classList.toggle('open');
  } else {
     let next = titleLi.nextElementSibling;
    titleLi.classList.add("open");
    while (next && !next.classList.contains('title-recommended') && !next.classList.contains('title-category')) {
  }
        if (next.matches(selector)) {
            next.style.display = (next.style.display === 'none' || next.style.display === '') ? 'block' : 'none';
        }
        next = next.nextElementSibling;
    }
}
}


// 유튜브 썸네일
// 유튜브 썸네일
document.querySelectorAll("iframe").forEach(function (iframe) {
document.querySelectorAll('iframe').forEach(function(iframe){
  iframe.parentElement.classList.add("video-wrap");
    iframe.parentElement.classList.add('video-wrap');
});
 
mw.loader.using(['jquery']).then(function() {
    $(function() {
        var modal = $('#myLayer');
        var btn = $('#selectLanguage'); // jQuery 선택자 사용
        var span = $('.close-button').first();
 
        btn.click(function() {
            modal.show();
        });
 
        span.click(function() {
            modal.hide();
        });
 
        $(window).click(function(event) {
            if ($(event.target).is(modal)) {
                modal.hide();
            }
        });
    });
});
function fillMobileLanguageFromInterwiki() {
    var $mobileList = $('#mobile-language');
 
    // 인터위키 링크 읽기
    var $interwikiLinks = $('#p-lang ul.minerva-languages .interlanguage-link a');
    if (!$interwikiLinks.length) return;
 
const langMap = {
    'ko': 'Tiếng Hàn',
    'en': 'Tiếng Anh',
    'es': 'Tiếng Tây Ban Nha',
    'vi': 'Tiếng Việt',
    'ne': 'Tiếng Nepal',
    'pt': 'Tiếng Bồ Đào Nha'
};
 
    $mobileList.empty();
 
    $interwikiLinks.each(function () {
        var $a      = $(this);
        var href    = $a.attr('href');
        var langCode = $a.attr('lang');
        var autonym  = $a.find('span').text() || $a.text();  // English, Español ...
        var korean  = langMap[langCode] || '';
        var label    = korean ? (autonym + ' (' + korean + ')') : autonym;
 
        var $li  = $('<li>');
        var $new = $('<a>', { href: href, text: label });
 
        $li.append($new);
        $mobileList.append($li);
    });
}
 
mw.loader.using(['jquery']).then(function () {
    $(function () {
        // body DOM 변경 감시
        var observer = new MutationObserver(function (mutations) {
            mutations.forEach(function (m) {
                $(m.addedNodes).each(function () {
                    var $node = $(this);
                    if ($node.is('#mobile-language') || $node.find('#mobile-language').length) {
                        fillMobileLanguageFromInterwiki();
                    }
                });
            });
        });
 
        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
 
        // 혹시 이미 열려 있는 상태에서 로딩될 수도 있으니 한 번 시도
        fillMobileLanguageFromInterwiki();
    });
});
});

Bản mới nhất lúc 17:47, ngày 24 tháng 11 năm 2025

/* All JavaScript here will be loaded for users of the MinervaNeue skin */
function wikiLink(title) {
    // 공백 → _ 치환 후 절대 경로 생성
    return mw.config.get('wgServer') + '/vi/' + title.replace(/ /g, '_');
}

document
    .querySelector('#mw-mf-page-left #p-navigation')
    .insertAdjacentHTML(
        'afterend',
        '<ul id="p-main-categories" class="recommended-open">' +
            '<li class="title-recommended open"><a><span>Bài viết đề xuất</span></a><span class="ico-arrow"></span></li>' +
            '<li class="recommended"><a href="' + wikiLink("Hội Thánh của Đức Chúa Trời Hiệp Hội Truyền Giáo Tin Lành Thế Giới") + '"><span>Hội Thánh của Đức Chúa Trời (Tài liệu)</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("An Xang Hồng") + '"><span>Đấng Christ An Xang Hồng</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Đức Chúa Trời Mẹ") + '"><span>Đức Chúa Trời Mẹ</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Ngày Sabát") + '"><span>Ngày Sabát</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Lễ Vượt Qua") + '"><span>Lễ Vượt Qua</span></a></li>' +
            '<li class="recommended"><a href="' + wikiLink("Tin Lành và giao ước mới") + '"><span>Tin Lành và giao ước mới</span></a></li>' +
            '<li class="title-category"><a><span>Dò xem danh mục</span></a><span class="ico-arrow"></span></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Hội Thánh của Đức Chúa Trời") + '"><span>Hội Thánh của Đức Chúa Trời</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Ðức Chúa Trời Cha") + '"><span>Ðức Chúa Trời Cha</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Đức Chúa Trời Mẹ") + '"><span>Đức Chúa Trời Mẹ</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Tin Lành giao ước mới") + '"><span>Tin Lành giao ước mới</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Thường thức Kinh Thánh") + '"><span>Thường thức Kinh Thánh</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Vấn đề Kinh Thánh") + '"><span>Vấn đề Kinh Thánh</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Cống hiến cho xã hội") + '"><span>Cống hiến cho xã hội</span></a></li>' +
            '<li class="category"><a href="' + wikiLink("Category:Hợp tác quốc tế") + '"><span>Hợp tác quốc tế</span></a></li>' +
        '</ul>'       
    );

// Recommended Documents 토글
document.querySelector('#p-main-categories .title-recommended')
    .addEventListener('click', function (event) {
        event.stopPropagation(); // 사이드바 닫힘 방지
        openList(this, '.recommended');
    });

// Browse by Category 토글
document.querySelector('#p-main-categories .title-category')
    .addEventListener('click', function (event) {
        event.stopPropagation(); // 사이드바 닫힘 방지
        openList(this, '.category');
    });

function openList(titleLi, selector) {
    titleLi.classList.toggle('open');
    let next = titleLi.nextElementSibling;
    while (next && !next.classList.contains('title-recommended') && !next.classList.contains('title-category')) {
        if (next.matches(selector)) {
            next.style.display = (next.style.display === 'none' || next.style.display === '') ? 'block' : 'none';
        }
        next = next.nextElementSibling;
    }
}

// 유튜브 썸네일
document.querySelectorAll('iframe').forEach(function(iframe){
    iframe.parentElement.classList.add('video-wrap');
});

mw.loader.using(['jquery']).then(function() {
    $(function() {
        var modal = $('#myLayer');
        var btn = $('#selectLanguage'); // jQuery 선택자 사용
        var span = $('.close-button').first();

        btn.click(function() {
            modal.show();
        });

        span.click(function() {
            modal.hide();
        });

        $(window).click(function(event) {
            if ($(event.target).is(modal)) {
                modal.hide();
            }
        });
    });
});
function fillMobileLanguageFromInterwiki() {
    var $mobileList = $('#mobile-language');

    // 인터위키 링크 읽기
    var $interwikiLinks = $('#p-lang ul.minerva-languages .interlanguage-link a');
    if (!$interwikiLinks.length) return;

	const langMap = {
	    'ko': 'Tiếng Hàn',
	    'en': 'Tiếng Anh',
	    'es': 'Tiếng Tây Ban Nha',
	    'vi': 'Tiếng Việt',
	    'ne': 'Tiếng Nepal',
	    'pt': 'Tiếng Bồ Đào Nha'
	};

    $mobileList.empty();

    $interwikiLinks.each(function () {
        var $a       = $(this);
        var href     = $a.attr('href');
        var langCode = $a.attr('lang');
        var autonym  = $a.find('span').text() || $a.text();   // English, Español ...
        var korean   = langMap[langCode] || '';
        var label    = korean ? (autonym + ' (' + korean + ')') : autonym;

        var $li  = $('<li>');
        var $new = $('<a>', { href: href, text: label });

        $li.append($new);
        $mobileList.append($li);
    });
}

mw.loader.using(['jquery']).then(function () {
    $(function () {
        // body DOM 변경 감시
        var observer = new MutationObserver(function (mutations) {
            mutations.forEach(function (m) {
                $(m.addedNodes).each(function () {
                    var $node = $(this);
                    if ($node.is('#mobile-language') || $node.find('#mobile-language').length) {
                        fillMobileLanguageFromInterwiki();
                    }
                });
            });
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });

        // 혹시 이미 열려 있는 상태에서 로딩될 수도 있으니 한 번 시도
        fillMobileLanguageFromInterwiki();
    });
});