IP-Phone-Forum

Einige Anpassungen für den neuen Style

目前為 2017-10-28 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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);
    }

})();