Zum Inhalt springen

MediaWiki:Mobile.js: Unterschied zwischen den Versionen

Aus HammWiki
KKeine Bearbeitungszusammenfassung
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 () {
   // Nur anonymen Nutzern zeigen
   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.menu.view-border-box' );
     var $menu = $('#mw-mf-page-left');
     if ( !$menu.length ) return;
     if (!$menu.length) { console.log('[RegLink] Menücontainer fehlt'); return; }


     // Erst im persönlichen Bereich, sonst in Navigation
     // 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#p-navigation.toggle-list__list' ).first();
     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】
    // Duplikate vermeiden (prüft absolute und relative URL)
     if ($ul.find('a[href$="Special:RequestAccount"], a[href*="/Special:RequestAccount"]').length) {
     if ( $ul.find( 'a[href$="Special:RequestAccount"], a[href="' + href + '"]' ).length ) return;
      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">')
      $( '<a>' ).attr( 'href', href ).text( 'Registrieren' ) // oder: 'Konto anfragen'
      .append($('<a>').attr('href', href).text('Konto anfragen'));
     );
 
     $ul.append( $li );
     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 wenn Minerva das Menü dynamisch (neu) rendert
   // 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;
});
Cookies helfen uns bei der Bereitstellung von HammWiki. Durch die Nutzung von HammWiki erklärst du dich damit einverstanden, dass wir Cookies speichern.