IP-Phone-Forum

Einige Anpassungen für den neuen Style

当前为 2017-10-28 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         IP-Phone-Forum
// @version      0.6
// @description  Einige Anpassungen für den neuen Style
// @author       rabe85
// @include      *ip-phone-forum.de/*
// @exclude      *ip-phone-forum.de/conversations/*
// @grant        none
// @namespace    https://greasyfork.org/users/156194
// ==/UserScript==

(function() {
    'use strict';

    function ipfforum() {

        var url_path = window.location.pathname;
        var url_array = url_path.split("/");
        var url_array_lenght = url_array.length - 1;
        var url_switch = url_array[url_array_lenght];

        // Reservierte Werbefläche ausblenden
        $('.funbox').remove();

        // Sidebar ausblenden (außer bei PNs / Unterhaltungen)
        $('.uix_mainSidebar').remove();

        if(url_array[1] == 'threads') {

            // Navigationspfeile bei Beitragsnummer hinzufügen
            var nav_angle0 = document.getElementsByClassName('item muted postNumber hashPermalink OverlayTrigger');
            for(var na = 0, nav_angle; !!(nav_angle=nav_angle0[na]); na++) {
                var nav_threadcount = document.getElementsByClassName('sectionMain message     ').length - 2;
                var nav_golast_link = '<a href="javascript: void(0)" onclick="audentio.pagination.scrollToPost(' + nav_threadcount + ')" style="float:right;" title="Zum letzten Beitrag"><i class="fa fa-angle-double-down pointer fa-fw pagebottom"></i></a>';
                var nav_goafter_link = '<a href="javascript: void(0)" onclick="audentio.pagination.nextPost()" style="float:right;" title="Zum nächsten Beitrag"><i class="fa fa-angle-down pointer fa-fw pagedown"></i></a>';
                var nav_gobefore_link = '<a href="javascript: void(0)" onclick="audentio.pagination.prevPost()" style="float:right;" title="Zum vorherigen Beitrag"><i class="fa fa-angle-up pointer fa-fw pageup"></i></a>';
                var nav_gofirst_link = '<a href="javascript: void(0)" onclick="audentio.pagination.scrollToPost(0)" style="float:right;" title="Zum ersten Beitrag"><i class="fa fa-angle-double-up pointer fa-fw pagetop"></i></a>';
                nav_angle.outerHTML = nav_golast_link + nav_goafter_link + nav_angle.outerHTML + nav_gobefore_link + nav_gofirst_link;
            }

            // Abstand zwischen Rahmen und Avatar hinzufügen - Thema
            var thread_avatar0 = document.getElementsByClassName('avatarHolder');
            for(var ta = 0, thread_avatar; !!(thread_avatar=thread_avatar0[ta]); ta++) {
                thread_avatar.setAttribute('style','margin:5px; border:0px;');
            }

            // Abstand zwischen Rahmen und Avatar hinzufügen - Quick Reply
            var quickreply_avatar = document.getElementsByClassName('quickReply message sectionMain')[0];
            quickreply_avatar.getElementsByClassName('messageUserInfo')[0].setAttribute('style','margin:5px; border:0px;');
            quickreply_avatar.getElementsByClassName('avatarHolder')[0].setAttribute('style','');

            // Abstand bei Signatur löschen
            var signatur_abstand0 = document.getElementsByClassName('signature');
            for(var sa = 0, signatur_abstand; !!(signatur_abstand=signatur_abstand0[sa]); sa++) {
                signatur_abstand.setAttribute('style','margin-bottom:0px; padding-top:0px; padding-bottom:0px;');
            }

        }

        // Seite breiter darstellen
        var page_width0 = document.getElementsByClassName('mainContainer');
        for(var pw = 0, page_width; !!(page_width=page_width0[pw]); pw++) {
            page_width.setAttribute('style','float:none; width:auto;');
        }

        // Unterforen in der Übersicht schmaler darstellen
        var subforum_small0 = document.getElementsByClassName('nodeTitle');
        for(var ss = 0, subforum_small; !!(subforum_small=subforum_small0[ss]); ss++) {
            subforum_small.setAttribute('style','padding:1px; display:inline;');
        }

        function changequote() {

            // Zitate immer vollständig anzeigen
            var quote_style = document.createElement("STYLE");
            var quote_text = document.createTextNode(".bbCodeQuote .quoteContainer .quoteExpand.quoteCut {display: none;} html .bbCodeQuote .quoteContainer .quote {max-height: none;}");
            quote_style.appendChild(quote_text);
            document.head.appendChild(quote_style);

            // Zitate, Code breiter darstellen
            var quote_width0 = document.getElementsByClassName('bbCodeBlock');
            for(var qw = 0, quote_width; !!(quote_width=quote_width0[qw]); qw++) {
                quote_width.setAttribute('style','margin-top:1em; margin-right:0px; margin-bottom:20px; margin-left:0px;');
            }

            // Abstand bei Zitaten schmaler darstellen - Titelzeile
            var quote_header0 = document.getElementsByClassName('type');
            for(var qh = 0, quote_header; !!(quote_header=quote_header0[qh]); qh++) {
                quote_header.setAttribute('style','padding-top:1px; padding-right:5px; padding-bottom:1px; padding-left:5px;');
            }

        }

        // Zitatänderungen immer aktualisieren
        window.addEventListener('load', changequote, false);
        window.addEventListener('mouseover', changequote, false);
        window.addEventListener('scroll', changequote, false);

        // Footer erweitern
        var footer_expand0 = document.getElementsByClassName('choosers');
        for(var fe = 0, footer_expand; !!(footer_expand=footer_expand0[fe]); fe++) {
            footer_expand.setAttribute('style','display:inline;');
            footer_expand.insertAdjacentHTML('afterbegin', '<dt>Style</dt><dd><a href="misc/style?redirect=%2F" class="OverlayTrigger Tooltip" rel="nofollow">Xenith</a></dd>');
        }

        // Fehlende CSS laden
        var css_style = document.createElement("STYLE");
        var css_text = document.createTextNode(".xenOverlay #jumpMenu .jumpMenuColumn{float:left;width:50%}.xenOverlay #jumpMenu .blockLinksList{height:250px;overflow:auto}#jumpMenu .blockLinksList ul, #jumpMenu .nodeList li.d0{padding-top:5px;border-top:1px solid rgb(250, 250, 250);margin-top:5px}#jumpMenu .blockLinksList ul:first-child, #jumpMenu .nodeList li.d0:first-child{padding-top:0;border-top:none;margin-top:0}.xenOverlay #jumpMenu .nodeList{border-left:1px solid rgb(250, 250, 250)}#jumpMenu .blockLinksList li{vertical-align:bottom}@media (max-width:480px){.Responsive .xenOverlay #jumpMenu .jumpMenuColumn{float:none;width:auto}.Responsive .xenOverlay #jumpMenu .blockLinksList{max-height:250px;height:auto}}");
        css_style.appendChild(css_text);
        document.head.appendChild(css_style);

        if(url_array[1] == 'forums' && !url_array[2]) {
            // BreadBox anzeigen
            var breadbox_show0 = document.getElementsByClassName('uix_contentFix');
            for(var bs = 0, breadbox_show; !!(breadbox_show=breadbox_show0[bs]); bs++) {
                breadbox_show.insertAdjacentHTML('beforebegin', '<div class="breadBoxTop" style="margin-top:25px; margin-right:0px; margin-bottom:25px; margin-left:0px;"><div class="topCtrl homeTopButton"><a href="find-new/posts?recent=1" class="callToAction" rel="nofollow"><span>Aktuelle Themen</span></a></div><div class="topCtrl homeTopButton findNewPostsButton"><a href="find-new/posts" class="callToAction" rel="nofollow"><span>Neue Beitr&auml;ge</span></a></div><nav><fieldset class="breadcrumb" style=""><a href="misc/quick-navigation-menu" class="OverlayTrigger jumpMenuTrigger" data-cacheoverlay="true" title="N&uuml;tzliche Links anzeigen"><i class="uix_icon uix_icon-sitemap"></i><!--Gehe zu...--></a><div class="boardTitle"><strong>IP-Phone-Forum</strong></div><span class="crumbs"><span class="crust homeCrumb" itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="https://www.ip-phone-forum.de/forums/" class="crumb" rel="up" itemprop="url"><span itemprop="title"><i class="uix_icon uix_icon-home" title="Startseite"></i><span class="uix_breadcrumb__home__title">Startseite</span></span></a><span class="arrow"><i class="uix_icon uix_icon-breadcrumbSeparator"></i></span></span><span class="crust selectedTabCrumb" itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="https://www.ip-phone-forum.de/forums/" class="crumb" rel="up" itemprop="url"><span itemprop="title">Foren</span></a><span class="arrow"><i class="uix_icon uix_icon-breadcrumbSeparator"></i></span></span></span></fieldset></nav></div>');
            }
        } else {
            // BreadBox erweitern
            var breadbox_expand0 = document.getElementsByClassName('breadBoxTop');
            for(var be = 0, breadbox_expand; !!(breadbox_expand=breadbox_expand0[be]); be++) {
                breadbox_expand.insertAdjacentHTML('afterbegin', '<div class="topCtrl homeTopButton"><a href="find-new/posts?recent=1" class="callToAction" rel="nofollow"><span>Aktuelle Themen</span></a></div><div class="topCtrl homeTopButton findNewPostsButton"><a href="find-new/posts" class="callToAction" rel="nofollow"><span>Neue Beitr&auml;ge</span></a></div>');
            }
        }

        // Abstand zwischen BreadBox und Content erzwingen
        var breadbox_content0 = document.getElementsByClassName('breadBoxTop');
        for(var bc = 0, breadbox_content; !!(breadbox_content=breadbox_content0[bc]); bc++) {
            breadbox_content.setAttribute('style','margin-top:25px; margin-right:0px; margin-bottom:25px; margin-left:0px;');
        }

        if(url_array[1] == 'account' && url_array[2] == 'preferences') {
            // Styleauswahl in den Einstellungen anzeigen (!!! StyleID wird gespeichert, aber ausgewählter Style wird nicht aktuell angezeigt und es werden nicht alle Styles des Forums angezeigt)
            document.getElementsByName('style_id')[0].insertAdjacentHTML('afterend', '<dl class="ctrlUnit"><dt><label for="ctrl_style_id">Style:</label></dt><dd><select name="style_id" class="textCtrl OptOut" id="ctrl_style_id" autofocus="on"><option value="0">(Standard-Style verwenden: IP-Phone-Forum Standard)</option><option value="2" class="" selected="selected">Xenith</option></optgroup></select><p class="explain">Du kannst die Seite in einem der an dieser Stelle angebotenen Styles anzeigen lassen.</p></dd></dl>');

            // Option sticky_userbar anzeigen
            document.getElementsByClassName('uix_sticky_userbar')[0].setAttribute('style','display:block;');
        }
    }

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

})();