Не устраивает вид/положение некоторых элементов форума.
Как установить?
Установить расширение Custom JavaScript for websites для Chrome / Greasemonkey для Firefox / Scripter для Opera.
Настройка Custom JavaScript for websites
- 1. Вызвать popup для расширения.
2. Активировать галочку enable cjs for this host
3. Вставить необходимые скрипты и нажать кнопку save
Настройка Greasemonkey
- 1. Перейти на страницу дополнений.
2. Нажать Создать скрипт.
3. В появившемся окне вписываете любое название и любое пространство имен, во Включения вписываете http://forum.hiasm.com/*
4. Вставить необходимые скрипты после // ==/UserScript== и сохранить.
Настройка Scripter
- 1. В адресной строке справа нажать на иконку Scripter.
2. Выбрать порядок выполнения скрипта onload и активируете галку Включить jQuery и Глобальный скрипт.
3. Вставить нужные скрипты и нажать сохранить.
Скрипты
Кнопка предпросмотра
var btn_replace_urls = ["privatetopic", "topic", "forum"]; // pathname страницы
if(btn_replace_urls.includes(window.location.pathname.split('/')[1])) $('form .tools').append('‹input type="button" class="submit" value="Предпросмотр" onclick="showPreview(this);" style="margin-right: 5px;"›');
Другой формат времени
function formatDate(date, del) {
var dd = date.split(' ')[0].split('-')[2];
var mm = date.split(' ')[0].split('-')[1];
var yy = date.split(' ')[0].split('-')[0];
return dd + del + mm + del + yy;
}
function formatTime(date, del) {
var dd = date.split(' ')[1].split(':')[0];
var mm = date.split(' ')[1].split(':')[1];
var yy = date.split(' ')[1].split(':')[2];
return dd + del + mm + del + yy;
}
$('span.date').each(function(key, value){
var unfdate = $(value).html();
$(value).html(formatTime(unfdate,':') + " " + formatDate(unfdate,'/'));
});
Статус пользователя на форуме
$('.posts .login img').each(function(key, item){
if($(item).attr('src') == '/img/offline.png') $(item).parent().append('<br><span style="font-size: xx-small; color: lightgrey; cursor: default;">Offline</span>');
else $(item).parent().append('<br><span style="font-size: xx-small; color: green; cursor: default;" title="' + $(item).attr('title') + '">Online</span>');
});
Кнопка копирования кода в буфер обмена (только Chrome)
function copytoclipboard(id){
$('#clipboard').val($(id).text());
$('#clipboard').select();
document.execCommand("Copy");
}
$('body').append('<textarea id="clipboard" style="position:absolute;left:-400px;width:1px;"></textarea>');
$('.prettyprint').each(function(key, item){
$(item).children('code').attr('id','code_' + key);
$(item).prepend('<a href="javascript: copytoclipboard(\'#code_' + key + '\')" style="float: right;">Копировать</a><br>');
});
Google Поиск
Код
if(window.location.pathname == '/search/'){
document.querySelector('form').outerHTML = '<gcse:search></gcse:search>';
var cx = '007977425653318554071:wank2vr9uck';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
}
Альтернатива
Вариант #2
Автор: Assasin.
Давно делал для соседнего форума на таком же движке плагины с помощью индикаторов (это настраиваемые иконки на панели справа, где еще кнопка поддержки и ленты событий). В чем преимущества: работало везде, т.к. использовало уязвимость индикатора и подставляло кастомный обработчик клика (ее долго не правили, т.к. считали некритичной, и никто мне не запретил ее публично заюзать, я спрашивал, честно ).
(далее немного копипасты из топика по ссылке выше)
Плагин создается на базе индикатора произвольной ссылкиЭто находится в профиле, на вкладке "настройки" и подвкладке "индикаторы":
, выглядит как самый обычный индикатор (на скриншоте их на самом деле два).
Однако в поле ссылки при создании индикатора вписывается не совсем обычная ссылка, а код следующего вида:
plugin: inviter.js auto remove
inviter.js - имя плагина с .js, подставляется к базовому url, заданному в юзерскрипте.
auto - автоматически подгружать скрипт при каждой загрузке страницы (если настроить кэширование на http-сервере, а у меня оно настроено, то скрипт не будет каждый раз тянуться с сервера).
remove - после активации (или клика по нему) плагин нельзя повторно активировать, защищает от избыточного включения.
Поэтому по нажатию на этот индикатор активируется подгрузка внешнего скрипта, в котором уже можно творить что угодно.
Сейчас эта уязвимость пофикшена, поэтому я реализовал аналогичную поддержку плагинов через индикаторы, но более удобным способом.
Сам юзерскрипт: посмотреть.
Внешние скрипты нужно где-то хранить, для этого я использую свой сайт, однако, если вы хотите, можете скачать скрипт и залить куда-нибудь в другое место, главное условие - чтобы ссылка на него была прямая. Ну и в юзерскрипте поменяйте базовый адрес (http://sinair.ru/plug/ на что-то свое).
Итак, скрипты:
Вставка своих документов при редактировании поста
plugin: userdoc.js auto
Как работает:
1. Начинаем редактировать/создавать пост
2. Активируем индикатор-плагин (щелк по иконке).
3. В панель форматирования добавляется новый значок (в конце)
4. Кликаем по добавившейся иконке.
5. Выбираем документ из списка и кликаем по нему.
6. Готово, содержимое документа вставлено в поле редактора поста.
При перезагрузке страницы или редактировании другого поста на странице требуется повторная активация плагина.
Увеличиватель очень мелкого текста
plugin: smallbig.js
Как работает: когда по ходу чтения встречается мелкий текст, просто активируем индикатор и текст становится читабельным.
Удобный приглашатель в сообщество в два клика
plugin: inviter.js auto remove
Как работает: Активируем индикатор кликом по нему и к каждому посту на странице добавляется кнопка, которая и производит необходимое действие.
Внимание! Работает только на странице сообщества! (т.е. в теме в разделе заявок, например).
Чтобы долго не искать, дублирую ссылку в конец.
Сам юзерскрипт: посмотреть.
Редактировалось 8 раз(а), последний 2016-10-20 00:45:32