🏠 

Greasy Fork is available in English.

Hide Signatures for Certain Users [XenForo]

Like it says on the tin. This script allows the user to hide the signatures of specific users.


安装此脚本?
// ==UserScript==
// @name	Hide Signatures for Certain Users [XenForo]
// @namespace	Makaze
// @include	*
// @grant	none
// @version	2.1.1
// @description Like it says on the tin. This script allows the user to hide the signatures of specific users.
// ==/UserScript==
var toggleSigBlockState = function() {
var opts = (localStorage.getItem('MakazeScriptOptions')) ? JSON.parse(localStorage.getItem('MakazeScriptOptions')) : {},
users = (opts.hasOwnProperty('xf_hidden_sigs')) ? opts.xf_hidden_sigs : [],
userID = this.getAttribute('data-userid'),
context,
postAuthor,
signature,
isBlocked = false,
i = 0;
for (i = 0; i < users.length; i++) {
if (userID === users[i]) {
users.splice(i, 1);
opts.xf_hidden_sigs = users;
localStorage.setItem('MakazeScriptOptions', JSON.stringify(opts));
isBlocked = true;
break;
}
}
if (!isBlocked) {
users.push(userID);
opts.xf_hidden_sigs = users;
localStorage.setItem('MakazeScriptOptions', JSON.stringify(opts));
}
for (i = 0; i < document.getElementsByClassName('messageUserInfo').length; i++) {
context = document.getElementsByClassName('messageUserInfo')[i];
postAuthor = context.getElementsByClassName('username')[0].href.replace(/.*?members\/.*?\.(.*?)\//gi, '$1');
signature = context.parentNode.getElementsByClassName('signature')[0];
if (postAuthor === userID) {
if (isBlocked) {
signature.style.display = 'block';
context.getElementsByClassName('blockSigContainer')[0].getElementsByTagName('a')[0].childNodes[0].nodeValue = 'Block Signature';
} else {
signature.style.display = 'none';
context.getElementsByClassName('blockSigContainer')[0].getElementsByTagName('a')[0].childNodes[0].nodeValue = 'Unblock Signature';
}
}
}
};
if (document.documentElement.id === 'XenForo') {
if (document.getElementsByClassName('signature').length && document.getElementsByClassName('messageUserInfo').length) {
var opts = (localStorage.getItem('MakazeScriptOptions')) ? JSON.parse(localStorage.getItem('MakazeScriptOptions')) : {},
users = (opts.hasOwnProperty('xf_hidden_sigs')) ? opts.xf_hidden_sigs : [],
context,
userID,
appendLocation,
signature,
sigBlockContainer,
sigBlockLink,
sigBlockLinkText,
i = 0,
j = 0;
for (i = 0; i < document.getElementsByClassName('messageUserInfo').length; i++) {
context = document.getElementsByClassName('messageUserInfo')[i];
if (context.getElementsByClassName('username')[0] != null) {
userID = context.getElementsByClassName('username')[0].href.replace(/.*?members\/.*?\.(.*?)\//gi, '$1');
appendLocation = context.getElementsByClassName('extraUserInfo')[0];
signature = context.parentNode.getElementsByClassName('signature')[0];
sigBlockContainer = document.createElement('div');
sigBlockLink = document.createElement('a');
sigBlockLink.href = 'javascript:void(0)';
sigBlockLink.setAttribute('data-userid', userID);
sigBlockLink.onclick = toggleSigBlockState;
if (users.length) {
for (j = 0; j < users.length; j++) {
if (userID === users[j]) {
signature.style.display = 'none';
sigBlockLinkText = document.createTextNode('Unlock Signature');
} else {
sigBlockLinkText = document.createTextNode('Block Signature');
}
}
} else {
sigBlockLinkText = document.createTextNode('Block Signature');
}
sigBlockContainer.className = 'blockSigContainer';
sigBlockContainer.style.marginTop = '1em';
sigBlockLink.appendChild(sigBlockLinkText);
sigBlockContainer.appendChild(sigBlockLink);
appendLocation.appendChild(sigBlockContainer);
}
}
}
}