PV Forum

Anpassungen für das PV Forum

// ==UserScript==
// @name         PV Forum
// @namespace    https://gf.qytechs.cn/users/156194
// @version      1.0
// @description  Anpassungen für das PV Forum
// @author       rabe85
// @match        https://www.photovoltaikforum.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=photovoltaikforum.com
// @license      MIT
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

// Todo:
// - Doppelter Klick nach Herabscrollen mit offenem Usermenü nötig, um es wieder zu öffnen

(function() {
    'use strict';

    function pv_forum() {

        // Funktion - Header nur beim Hochscrollen oben am Rand anzeigen
        var sticky_header_scroll_position_old = 0;
        function sticky_header_scroll() {
            var sticky_header_scroll_position = document.documentElement.scrollTop;
            if(sticky_header_scroll_position < sticky_header_scroll_position_old) {
                document.getElementsByClassName('pageHeaderPanel')[0].setAttribute('style','position: fixed;top: 0px;width: 100%;z-index: 23585;');
            } else {
                document.getElementsByClassName('pageHeaderPanel')[0].setAttribute('style','position: absolute;');
                var usermenu_close0 = document.getElementsByClassName('userMenu');
                for(var umc = 0, usermenu_close; !!(usermenu_close=usermenu_close0[umc]); umc++) {
                    usermenu_close.setAttribute('hidden','');
                }
            }
            sticky_header_scroll_position_old = sticky_header_scroll_position;
        }

        //Funktion - Usermenü bei normalem Header beim Herunterscrollen schließen
        function header_scroll_normal() {
            var header_scroll_position_normal = document.documentElement.scrollTop;
            if(header_scroll_position_normal > sticky_header_scroll_position_old) {
                var usermenu_close_normal0 = document.getElementsByClassName('userMenu');
                for(var umcn = 0, usermenu_close_normal; !!(usermenu_close_normal=usermenu_close_normal0[umcn]); umcn++) {
                    usermenu_close_normal.setAttribute('hidden','');
                }
            }
        }

        // Headerfunktion auswählen
        var header_auswahl = GM_getValue('header_auswahl', 'normal');
        var header_auswahl_text = 'Kopfzeile: Normal';
        var header_auswahl_status = 'fixed';

        switch(header_auswahl) {
            case 'fixed': // Header immer fest oben am Rand anzeigen
                document.getElementsByClassName('pageHeaderPanel')[0].setAttribute('style','position: fixed;top: 0px;width: 100%;z-index: 23585;');
                header_auswahl_text = 'Kopfzeile: Fixiert';
                header_auswahl_status = 'scroll';
                break;
            case 'scroll': // Header nur beim Hochscrollen oben am Rand anzeigen
                document.addEventListener("scroll", sticky_header_scroll, false);
                header_auswahl_text = 'Kopfzeile: Hochscrollen';
                header_auswahl_status = 'normal';
                break;
            default: // Header normal anzeigen
                document.getElementsByClassName('pageHeaderPanel')[0].setAttribute('style','position: absolute;');
                document.addEventListener("scroll", header_scroll_normal, false);
        }
        var usermenu = document.getElementsByClassName('userMenu userMenuControlPanel')[0];
        if (usermenu) {
            usermenu.getElementsByClassName('userMenuContent')[1].insertAdjacentHTML('afterend', '<div class="userMenuItem userMenuItemNarrow userMenuItemSingleLine"><div class="userMenuItemImage"><fa-icon size="16" name="minus" solid="" aria-hidden="true" translate="no"></fa-icon></div><div class="userMenuItemContent"><a id="header_auswahl_menu" data-status="' + header_auswahl_status + '" title="Klicken zum Wechseln zwischen Normal, Fixiert und Hochscrollen" style="cursor: pointer;color: inherit;">' + header_auswahl_text + '</a></div></div>');
        }
        function header_auswahl_speichern() {
            if(header_auswahl != document.getElementById('header_auswahl_menu').dataset.status) { GM_setValue('header_auswahl', document.getElementById('header_auswahl_menu').dataset.status); }
            //window.scrollTo(0, 0);
            location.reload();
        }
        document.getElementById('header_auswahl_menu').addEventListener("click", header_auswahl_speichern, false);

        // Werbung ausblenden
        var ad_thread0 = document.querySelectorAll('.wcfAdLocation, .wcfAdLocationHeaderContent, .wbbAdLocationIn1stPost, #ad_position_box, div[id^="google_ads_iframe"], iframe[name^="goog_topics_frame"], img[src^="https://ad-delivery.net/"], img[src^="https://ad.doubleclick.net/"], img[id^="adg-"], iframe[id^="adg-"], div[id^="adunit"], .symplr-ad-holder');
        for(var adt = 0, ad_thread; !!(ad_thread=ad_thread0[adt]); adt++) {
            ad_thread.remove();
        }

        var url_path = window.location.pathname;
        var url_array = url_path.split("/");

        // Rechte Seitenleiste auf den Übersichten ausblenden, Schlagworte unten anzeigen
        if(url_array[1] == 'board' || url_array[1] == 'active-topic-list' || url_array[1] == 'own-posts-as-threads' || url_array[1] == 'unread-thread-list' || url_array[1] == 'watched-thread-list' || url_array[1] == 'unanswered-thread-list') {
            var main = document.getElementsByClassName('main')[0];
            if(main) {
                var layoutboundary = main.getElementsByClassName('layoutBoundary')[0];
                if(layoutboundary) {
                    var schlagworte = layoutboundary.getElementsByClassName('sidebar boxesSidebarRight')[0].querySelector('section[data-box-identifier="com.woltlab.wbb.BoardTagCloud"]');
                    layoutboundary.getElementsByClassName('sidebar boxesSidebarRight')[0].remove();
                    layoutboundary.getElementsByClassName('content content--sidebar-right')[0].setAttribute('class','content');
                }
                if(schlagworte) {
                    main.insertAdjacentHTML('afterend', '<div style="border: 1px solid var(--wcfContentContainerBorder);background-color: var(--wcfContentContainerBackground);border-radius: 10px;padding: 20px;margin: 20px;margin-top: 0px;">' + schlagworte.innerHTML + '</div>');
                }
            }
        }

    }

    // DOM vollständig aufgebaut?
    if (/complete|interactive|loaded/.test(document.readyState)) {
        pv_forum();
    } else {
        document.addEventListener("DOMContentLoaded", pv_forum, false);
    }

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址