您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Позволяет "сворачивать" и "разворачивать" основные разделы форума "Глобальная авантюра" по принципу дерева.
- // ==UserScript==
- // @name GA forums tree
- // @namespace glav.su
- // @description Позволяет "сворачивать" и "разворачивать" основные разделы форума "Глобальная авантюра" по принципу дерева.
- // @include http://glav.su/forum/
- // @include https://glav.su/forum/
- // @version 1.1
- // @grant none
- // ==/UserScript==
- //Работа с Cookie
- function setCookie(name, value, options) {
- options = options || {};
- var expires = options.expires;
- if (typeof expires == "number" && expires) {
- var d = new Date();
- d.setTime(d.getTime() + expires * 1000);
- expires = options.expires = d;
- }
- if (expires && expires.toUTCString) {
- options.expires = expires.toUTCString();
- }
- value = encodeURIComponent(value);
- var updatedCookie = name + "=" + value;
- for (var propName in options) {
- updatedCookie += "; " + propName;
- var propValue = options[propName];
- if (propValue !== true) {
- updatedCookie += "=" + propValue;
- }
- }
- document.cookie = updatedCookie;
- }
- function getCookie(name) {
- var matches = document.cookie.match( new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)") );
- return matches ? decodeURIComponent(matches[1]) : undefined;
- }
- //Объект настроек
- var settings = ({
- cook: 'ga_forums_tree',
- values: {},
- load: function(){
- try{
- this.values = JSON.parse( getCookie(this.cook) );
- }catch(e){
- this.values = {};
- this.save();
- }
- return this;
- },
- save: function(){
- setCookie( this.cook, JSON.stringify(this.values), {expires: 100000000} );
- },
- set: function(key, value){
- this.values[key] = value;
- this.save();
- },
- get: function(key){
- if(typeof this.values[key] == 'undefined'){
- this.values[key] = 0;
- this.save();
- }
- return this.values[key];
- }
- }).load();
- //Форумы
- $.each( $(".blueHeader.f"), function(fidx, ftable){
- $(ftable).prev("br").hide();
- var ftd = $(ftable).find(".blueHeaderTitle.fItem");
- if( $(ftd).find("a").length === 0 ) return true;
- var fkey = $(ftd).find("a").attr("href").replace(/^https?:\/\/glav\.su\/forum\/(.*?)\/$/,"$1"),
- fvisible = +( settings.get(fkey) );
- if(fvisible === 0) $(ftable).next().hide();
- $(ftable).attr("fkey", fkey);
- $("<span> </span>").prependTo($(ftd));
- $('<span fvisible="'+fvisible+'" fkey="'+fkey+'">' + ['[+]','[-]'][fvisible] + '</span>')
- .css({ 'cursor': "pointer", 'font-family': "monospace" })
- .click(function(){
- var fkey = $(this).attr("fkey"), fvisible = +$(this).attr("fvisible");
- fvisible = +(!fvisible);
- $(this).html(['[+]','[-]'][fvisible]).attr("fvisible", fvisible);
- settings.set(fkey, fvisible);
- $(".blueHeader.f[fkey='"+fkey+"']").next().toggle();
- })
- .prependTo($(ftd));
- });