「MediaWiki:Common.js」の版間の差分

編集の要約なし
編集の要約なし
14行目: 14行目:
mw.loader.using( 'mediawiki.util', function () {
mw.loader.using( 'mediawiki.util', function () {
     $( function () {
     $( function () {
        var ns  = mw.config.get( 'wgNamespaceNumber' );
        var skin = mw.config.get( 'skin' ); // 'vector' / 'vector-2022' / 'minerva' etc.


         // 特別ページなどに出したくなければここで制御
         // 広告を出す名前空間を制限(例:本文とプロジェクトだけ)
        var ns = mw.config.get( 'wgNamespaceNumber' );
        // 例: 本文(0)・プロジェクト(4)だけに出したい
         if ( [0, 4].indexOf( ns ) === -1 ) {
         if ( [0, 4].indexOf( ns ) === -1 ) {
             return;
             return;
         }
         }


         // ---- 1) 本文下の広告 ----
         // ---- ここからスマホ版(Minerva)専用処理 ----
        if ( skin === 'minerva' ) {
            // すでに挿入済みなら二重挿入を防ぐ
            if ( $( '.keizaiya-ad-bottom' ).length ) {
                return;
            }
 
            var bottomAdHtml =
                '<div class="keizaiya-ad keizaiya-ad-bottom">' +
                    '<ins class="adsbygoogle" ' +
                        'style="display:block" ' +
                        'data-ad-client="ca-pub-8908534172586133" ' + // ★自分の client ID
                        'data-ad-slot="6591340801" ' +                  // ★スマホ用 or 共通の ad-slot
                        'data-ad-format="auto" ' +
                        'data-full-width-responsive="true"></ins>' +
                '</div>';
 
            // Minerva では本文領域が .content / .mw-body-content あたりになる
            var $content = $( '#mw-content-text, .mw-body-content, .content' );
            if ( $content.length ) {
                // 本文のすぐ下に挿入
                $( bottomAdHtml ).insertAfter( $content.last() );
                (adsbygoogle = window.adsbygoogle || []).push({});
            }
 
            // ※スマホではサイドバー広告は作らない
            return;
        }
 
        // ---- ここから PC 版(vector 等)用:今まで動いている処理 ----
 
        // 既に作っている PC 用の「本文下+サイドバー下広告」挿入コードをここに置く
        // 例:
         if ( $( '.keizaiya-ad-bottom' ).length === 0 ) {
         if ( $( '.keizaiya-ad-bottom' ).length === 0 ) {
             var bottomAd =
             var bottomAd =
28行目: 60行目:
                     '<ins class="adsbygoogle" ' +
                     '<ins class="adsbygoogle" ' +
                         'style="display:block" ' +
                         'style="display:block" ' +
                         'data-ad-client="ca-pub-8908534172586133" ' + // ★自分の client ID
                         'data-ad-client="ca-pub-8908534172586133" ' +
                         'data-ad-slot="6591340801" ' +                 // ★本文下用の ad-slot
                         'data-ad-slot="6591340801" ' +
                         'data-ad-format="auto" ' +
                         'data-ad-format="auto" ' +
                         'data-full-width-responsive="true"></ins>' +
                         'data-full-width-responsive="true"></ins>' +
                 '</div>';
                 '</div>';


            // 本文 (#mw-content-text) の直後に挿入
             var $contentPc = $( '#mw-content-text' );
             var $content = $( '#mw-content-text' );
             if ( $contentPc.length ) {
             if ( $content.length ) {
                 $( bottomAd ).insertAfter( $contentPc );
                 $( bottomAd ).insertAfter( $content );
                 (adsbygoogle = window.adsbygoogle || []).push({});
                 (adsbygoogle = window.adsbygoogle || []).push({});
             }
             }
         }
         }


        // ---- 2) サイドバー下の広告 ----
         if ( $( '.keizaiya-ad-sidebar' ).length === 0 ) {
         if ( $( '.keizaiya-ad-sidebar' ).length === 0 ) {
             var sideAd =
             var sideAd =
48行目: 78行目:
                     '<ins class="adsbygoogle" ' +
                     '<ins class="adsbygoogle" ' +
                         'style="display:block" ' +
                         'style="display:block" ' +
                         'data-ad-client="ca-pub-8908534172586133" ' + // ★同じ client ID
                         'data-ad-client="ca-pub-xxxxxxxxxxxxxxxx" ' +
                         'data-ad-slot="6591340801" ' +                 // ★サイドバー用 ad-slot
                         'data-ad-slot="ZZZZZZZZZZ" ' +
                         'data-ad-format="auto"></ins>' +
                         'data-ad-format="auto"></ins>' +
                 '</div>';
                 '</div>';


            // Vector レガシー想定:サイドバーは #mw-panel の中
             var $panel = $( '#mw-panel' );
             var $panel = $( '#mw-panel' );
             if ( $panel.length ) {
             if ( $panel.length ) {
                 $( sideAd ).appendTo( $panel ); // 一番下に追加
                 $( sideAd ).appendTo( $panel );
                 (adsbygoogle = window.adsbygoogle || []).push({});
                 (adsbygoogle = window.adsbygoogle || []).push({});
             }
             }