MediaWiki:Common.js: Difference between revisions
From Riverview Legal Group
Access restrictions were established for this page. If you see this message, you have no access to this page.
mNo edit summary |
mNo edit summary |
||
Line 4: | Line 4: | ||
mw.loader.using(['jquery', 'mediawiki.user'], function () { | mw.loader.using(['jquery', 'mediawiki.user'], function () { | ||
$(document).ready(function () { | $(document).ready(function () { | ||
var loggedInUser = mw.config.get('wgUserName'); | var loggedInUser = mw.config.get('wgUserName'); | ||
var pageNamespace = mw.config.get('wgCanonicalNamespace'); | |||
console.log("Logged-in User:", loggedInUser); | console.log("Logged-in User:", loggedInUser); | ||
console.log("Page Namespace:", pageNamespace); | |||
if ( | // Exit script if user is logged in or on a category page | ||
console.log("User is logged | if (loggedInUser || pageNamespace === "Category") { | ||
console.log("User is logged in or on a category page. No blur applied."); | |||
return; | |||
} | |||
console.log("User is not logged in. Applying blur effect."); | |||
// Find the third subheader | |||
var $subHeaders = $("#mw-content-text h2"); | |||
if ($subHeaders.length >= 3) { | |||
console.log("Applying blur after third header."); | |||
var $thirdHeader = $subHeaders.eq(2); | |||
// Select only content below the third header, excluding side menus | |||
var $contentToBlur = $thirdHeader.nextAll() | |||
.not(".sidebar, .mw-portlet, #p-tb, #p-personal, #footer, #catlinks"); | |||
// Apply blur effect | |||
$contentToBlur.css({ | |||
}); | "filter": "blur(8px)", | ||
"pointer-events": "none", | |||
"user-select": "none" | |||
}); | |||
// Create the Stripe popup | |||
var $stripePopup = $('<div class="popup-overlay" id="stripe-popup">' + | |||
'<div class="popup-box" style="top: 50%; left: 50%; transform: translate(-50%, -50%);">' + | |||
'<h2>Subscribe to Unlock Content</h2>' + | |||
'<p>Subscribe to view the full article.</p>' + | |||
'<button id="subscribe-button" class="popup-button">Subscribe</button>' + | |||
'<span class="popup-close">×</span>' + | |||
'</div>' + | |||
'</div>'); | |||
$("body").append($stripePopup); | |||
// Stripe Checkout Handler | |||
$("#subscribe-button").click(function () { | |||
var stripe = Stripe("your_stripe_publishable_key"); | |||
var | stripe.redirectToCheckout({ | ||
sessionId: "your_checkout_session_id" | |||
" | }).then(function (result) { | ||
if (result.error) { | |||
alert(result.error.message); | |||
} | |||
}); | }); | ||
}); | |||
// Close Stripe popup | |||
$("#stripe-popup .popup-close").click(function () { | |||
$("#stripe-popup").fadeOut(function () { $(this).remove(); }); | |||
}); | |||
} else { | |||
console.warn("Not enough headers found for blur effect."); | |||
} | } | ||
}); | }); |
Revision as of 00:10, 2 March 2025
console.log("Common.js is loading correctly!"); // Ensure the script only loads after dependencies mw.loader.using(['jquery', 'mediawiki.user'], function () { $(document).ready(function () { var loggedInUser = mw.config.get('wgUserName'); var pageNamespace = mw.config.get('wgCanonicalNamespace'); console.log("Logged-in User:", loggedInUser); console.log("Page Namespace:", pageNamespace); // Exit script if user is logged in or on a category page if (loggedInUser || pageNamespace === "Category") { console.log("User is logged in or on a category page. No blur applied."); return; } console.log("User is not logged in. Applying blur effect."); // Find the third subheader var $subHeaders = $("#mw-content-text h2"); if ($subHeaders.length >= 3) { console.log("Applying blur after third header."); var $thirdHeader = $subHeaders.eq(2); // Select only content below the third header, excluding side menus var $contentToBlur = $thirdHeader.nextAll() .not(".sidebar, .mw-portlet, #p-tb, #p-personal, #footer, #catlinks"); // Apply blur effect $contentToBlur.css({ "filter": "blur(8px)", "pointer-events": "none", "user-select": "none" }); // Create the Stripe popup var $stripePopup = $('<div class="popup-overlay" id="stripe-popup">' + '<div class="popup-box" style="top: 50%; left: 50%; transform: translate(-50%, -50%);">' + '<h2>Subscribe to Unlock Content</h2>' + '<p>Subscribe to view the full article.</p>' + '<button id="subscribe-button" class="popup-button">Subscribe</button>' + '<span class="popup-close">×</span>' + '</div>' + '</div>'); $("body").append($stripePopup); // Stripe Checkout Handler $("#subscribe-button").click(function () { var stripe = Stripe("your_stripe_publishable_key"); stripe.redirectToCheckout({ sessionId: "your_checkout_session_id" }).then(function (result) { if (result.error) { alert(result.error.message); } }); }); // Close Stripe popup $("#stripe-popup .popup-close").click(function () { $("#stripe-popup").fadeOut(function () { $(this).remove(); }); }); } else { console.warn("Not enough headers found for blur effect."); } }); }); // Unified CSS for popups mw.util.addCSS( ".popup-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%;" + "background: rgba(0, 0, 0, 0.6); display: flex; justify-content: center; align-items: center; z-index: 9999; }" + ".popup-box { background: white; padding: 20px; border-radius: 10px; text-align: center; width: 300px;" + "box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); position: absolute; }" + ".popup-button { display: inline-block; background: #007bff; color: white; padding: 10px;" + "text-decoration: none; border-radius: 5px; margin-top: 10px; }" + ".popup-close { position: absolute; top: 10px; right: 15px; cursor: pointer; font-size: 20px;" + "color: black; font-weight: bold; }" + ".popup-close:hover { color: red; }" );