UserJS или обустроим форум сами?!

 

периодически на форуме возникают пожелания по его модификации... кто-то их поддерживает, кто-то нет, 

да и пока пожелание дойдет до администрации и реализуется, пройдут века.. )

  

а между тем, здесь каждый второй программер, и если это не нарушает каких-то правил форума, можно было бы писать небольшие скриптики для браузера, 

улучшающие юзабилити форума и выкладывать сюда.. кому надо, тот добавит в свой браузер, кому нет - пройдет мимо.. 

 

вот, слету, что можно было бы замутить:

  • превью первого сообщения в теме, при задержке мыши у заголовка, первого непрочитанного при задержке над соответствующей ссылкой
  • кликом по значку слева от названия темы, отметить ее прочитанной
  • добавить постоянную ссылку на сообщение
  • открытие картинок в том же окне (затененным слоем)
  • скрыть ненужные колонки в списке тем
  • в противовес "следить за темой", добавить кнопочку "забить на тему" (не отображать в списке)
  • убрать баннер
  • задать нужный часовой пояс для сообщений 

ну и т.д. и т.п..

  

что такое UserJS и как его использовать, можно прочитать здесь 

 
Из перечисленного "добавить постоянную ссылку на сообщение" является очень актуальным. А вот "убрать баннер" подрывает основы экономики. :))
 
majestic:
  • в противовес "следить за темой", добавить кнопочку "забить на тему" (не отображать в списке)
а вдруг "забитая" нами тема разовьется, станет интересной, конструктивной топ-веткой... а у нас она не отображается
 

для "затравки" выкладываю скрипт, добавляющий постоянную ссылку на сообщение по аналогии с форумом mql5 -- вот так )

например, для этого сообщения будет такая вот ссылочка - # 

 

(function()
{
        document.addEventListener('DOMContentLoaded', function(e)
        {
                var d = document.querySelectorAll('td>div>a[name]');
                if(!d.length) return;
                var l = document.querySelectorAll('a[href*="subscribe"]');
                l = l.length ? l[0].href.replace('?a[subscribe]', '') : '';
                for(var i=0; i<d.length; i++)
                {
                        var a = document.createElement('a');
                        a.setAttribute('href', l + '#' + d[i].name);
                        a.setAttribute('style', 'text-decoration: none; color: #626363');
                        a.setAttribute('onclick', 'return false');
                        a.innerHTML = '#';
                        with(d[i].parentNode.querySelectorAll('span')[0])
                        {
                                appendChild(document.createTextNode(' '));
                                appendChild(a);
                        }
                }
        }
        , false)
})()
// ==UserScript==
// @version 10111601
// @name mql4.fixedlinks
// @author DVZ aka Majestic
// @copyright https://www.mql5.com/en/users/majestic
// @namespace https://forum.mql4.com/ru/36815
// @include https://forum.mql4.com/*
// ==/UserScript==
 

скрипт, корректирующий часовой пояс сообщений форума - 

нужное смещение задается в самом скрипте. например, у меня стоит var tz = 1; что соответствует времени терминала - так интересней наблюдать за самой популярной веткой форума )

 

(function()
{
        var tz = 1;
        document.addEventListener('DOMContentLoaded', function(e)
        {
                var d = document.querySelectorAll('td>div>a[name]');
                if(!d.length) return;
                var m, r = /(\d+)\.(\d+)\.(\d+) (\d+):(\d+)/;
                for(var i=0; i<d.length; i++)
                {
                        with(d[i].parentNode.querySelectorAll('small')[0])
                        {
                                if(m = r.exec(innerHTML))
                                {
                                        var date = new Date(m[3], m[2]-1, m[1], m[4], m[5]);
                                        date.setTime(date.getTime()+(tz-3)*3600000);
                                        var s = date.toLocaleString(); 
                                        innerHTML = s.substr(0, s.length-3);
                                }
                        }
                }
        }
        , false)
})()
// ==UserScript==
// @version 10111801
// @name mql4.timezone
// @author DVZ aka Majestic
// @copyright https://www.mql5.com/en/users/majestic
// @namespace https://forum.mql4.com/ru/36815
// @include https://forum.mql4.com/*
// ==/UserScript==
 
А как пользоваться-то?
 

вот хорошая статья про UserJS, с картинками )

там подробно расписано что это такое и как использовать в разных браузерах

 

Как конкретно установить Ваш скрипт?

 

также, как любой другой:

  • для браузера opera: сохранить код в файл и запихнуть его в соответствующую папку (посмотреть/указать её можно пройдя по этой ссылке)
  • для firefox немного сложнее.. в указанной выше статье все расписано и не вижу смысла дублировать здесь
 

Все, разобрался, просто файл нужно переименовать, чтоб оканчивался на .user.js

Сразу подхватывается, устанавливается и всё работает.

Спасибо огромное, теперь не нужно мучаться с получением ссылки на пост, аллилуйа! :)
 
Такие скрипты несут потенциальную опасность для тех, кто их использует. Будьте уверены в авторе скрипта или проверяйте его содержимое самостоятельно перед установкой, если понимаете JS.