|
|
Line 1: |
Line 1: |
| mw.loader.using(['mediawiki.api']).then(function () {
| | <!--- ---> |
| var category = "Resources"; // The name of the category
| |
| var sidebar = $("div#site-navigation"); // Target the site-navigation container
| |
| | |
| // Log to ensure we're targeting the correct container
| |
| if (sidebar.length === 0) {
| |
| console.error("Sidebar container not found");
| |
| return;
| |
| }
| |
| | |
| console.log("Sidebar container found, loading menu...");
| |
| | |
| // Create a new wrapper for the custom menu
| |
| var $menuWrapper = $("<div>").addClass("portal").attr("id", "custom-category-wrapper");
| |
|
| |
| // Create a new block for the menu
| |
| var $menuBlock = $("<div>").addClass("portal-body").attr("id", "custom-category-menu");
| |
| var $heading = $("<h3>").addClass("portal-heading").text("" + category);
| |
| var $list = $("<ul>").addClass("portal-body");
| |
| | |
| new mw.Api().get({
| |
| action: "query",
| |
| list: "categorymembers",
| |
| cmtitle: "Category:" + category,
| |
| cmlimit: 10,
| |
| format: "json"
| |
| }).done(function (data) {
| |
| if (data.query && data.query.categorymembers.length > 0) {
| |
| data.query.categorymembers.forEach(function (page) {
| |
| $list.append($("<li>").append($("<a>").attr("href", mw.util.getUrl(page.title)).text(page.title)));
| |
| });
| |
| | |
| // Append the heading and list to the new block
| |
| $menuBlock.append($heading).append($list);
| |
| | |
| // Add a <br/> at the end of the list
| |
| $menuBlock.append("<br/>");
| |
| | |
| // Append the new block to the wrapper
| |
| $menuWrapper.append($menuBlock);
| |
| | |
| // Insert the new wrapper into the site-navigation container
| |
| sidebar.append($menuWrapper); // Add the block to the sidebar
| |
| console.log("Menu added to sidebar.");
| |
| } else {
| |
| console.log("No pages found in the category.");
| |
| }
| |
| }).fail(function () {
| |
| console.error("API request failed.");
| |
| });
| |
| | |
| // Optional: Add space at the bottom of the new menu block
| |
| $("#custom-category-wrapper").css("margin-bottom", "10px");
| |
| });
| |