MediaWiki:Mobile.js: Unterschied zwischen den Versionen
Erscheinungsbild
RaWen (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
RaWen (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
/* Das JavaScript hier wird für die Benutzer der mobilen Website geladen. */ | /* Das JavaScript hier wird für die Benutzer der mobilen Website geladen. */ | ||
mw.loader.using( [ 'mediawiki.util', 'mediawiki.user' ] ).then( function () { | mw.loader.using(['mediawiki.util','mediawiki.user']).then(function () { | ||
console.log('[RegLink] JS geladen, anon =', mw.user.isAnon()); | |||
if ( !mw.user.isAnon() ) return; | if (!mw.user.isAnon()) return; // Nur für anonyme Nutzer | ||
function addRegisterLink() { | function addRegisterLink() { | ||
var $menu = $( '#mw-mf-page-left | var $menu = $('#mw-mf-page-left'); | ||
if ( !$menu.length ) return; | if (!$menu.length) { console.log('[RegLink] Menücontainer fehlt'); return; } | ||
// | // Bevorzugt in den persönlichen Block, sonst erste Liste | ||
var $ul = $menu.find( 'ul#p-personal.toggle-list__list' ); | var $ul = $menu.find('ul#p-personal.toggle-list__list'); | ||
if ( !$ul.length ) $ul = $menu.find( 'ul | if (!$ul.length) $ul = $menu.find('ul.toggle-list__list').first(); | ||
if ( !$ul.length ) return; | if (!$ul.length) { console.log('[RegLink] Keine UL gefunden'); return; } | ||
var href = mw.util.getUrl( 'Special:RequestAccount' ); | var href = mw.util.getUrl('Special:RequestAccount'); // ConfirmAccount-Ziel 【5】 | ||
if ($ul.find('a[href$="Special:RequestAccount"], a[href*="/Special:RequestAccount"]').length) { | |||
if ( $ul.find( 'a[href$="Special:RequestAccount"], a[href=" | console.log('[RegLink] Schon vorhanden'); return; | ||
} | |||
var $li = $( '<li class="toggle-list__item mw-list-item">' ).append( | var $li = $('<li id="pt-requestaccount" class="toggle-list__item mw-list-item">') | ||
.append($('<a>').attr('href', href).text('Konto anfragen')); | |||
); | |||
$ul. | var $loginLi = $ul.find('#pt-login').first(); | ||
if ($loginLi.length) { $loginLi.after($li); } else { $ul.prepend($li); } | |||
console.log('[RegLink] Link eingefügt:', href); | |||
} | } | ||
// Beim Laden und | // Beim Laden und bei DOM-Änderungen (Minerva baut Menü dynamisch) | ||
$( addRegisterLink ); | $(addRegisterLink); | ||
new MutationObserver( addRegisterLink ).observe( document.body, { childList: true, subtree: true } ); | new MutationObserver(addRegisterLink).observe(document.body, { childList: true, subtree: true }); | ||
} ); | |||
// Für manuelles Testen in der Konsole: | |||
window.addRegisterLink = addRegisterLink; | |||
}); | |||
Version vom 24. August 2025, 14:09 Uhr
/* Das JavaScript hier wird für die Benutzer der mobilen Website geladen. */
mw.loader.using(['mediawiki.util','mediawiki.user']).then(function () {
console.log('[RegLink] JS geladen, anon =', mw.user.isAnon());
if (!mw.user.isAnon()) return; // Nur für anonyme Nutzer
function addRegisterLink() {
var $menu = $('#mw-mf-page-left');
if (!$menu.length) { console.log('[RegLink] Menücontainer fehlt'); return; }
// Bevorzugt in den persönlichen Block, sonst erste Liste
var $ul = $menu.find('ul#p-personal.toggle-list__list');
if (!$ul.length) $ul = $menu.find('ul.toggle-list__list').first();
if (!$ul.length) { console.log('[RegLink] Keine UL gefunden'); return; }
var href = mw.util.getUrl('Special:RequestAccount'); // ConfirmAccount-Ziel 【5】
if ($ul.find('a[href$="Special:RequestAccount"], a[href*="/Special:RequestAccount"]').length) {
console.log('[RegLink] Schon vorhanden'); return;
}
var $li = $('<li id="pt-requestaccount" class="toggle-list__item mw-list-item">')
.append($('<a>').attr('href', href).text('Konto anfragen'));
var $loginLi = $ul.find('#pt-login').first();
if ($loginLi.length) { $loginLi.after($li); } else { $ul.prepend($li); }
console.log('[RegLink] Link eingefügt:', href);
}
// Beim Laden und bei DOM-Änderungen (Minerva baut Menü dynamisch)
$(addRegisterLink);
new MutationObserver(addRegisterLink).observe(document.body, { childList: true, subtree: true });
// Für manuelles Testen in der Konsole:
window.addRegisterLink = addRegisterLink;
});