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.

  1. // ==UserScript==
  2. // @name Hide Signatures for Certain Users [XenForo]
  3. // @namespace Makaze
  4. // @include *
  5. // @grant none
  6. // @version 2.1.1
  7. // @description Like it says on the tin. This script allows the user to hide the signatures of specific users.
  8. // ==/UserScript==
  9.  
  10. var toggleSigBlockState = function() {
  11. var opts = (localStorage.getItem('MakazeScriptOptions')) ? JSON.parse(localStorage.getItem('MakazeScriptOptions')) : {},
  12. users = (opts.hasOwnProperty('xf_hidden_sigs')) ? opts.xf_hidden_sigs : [],
  13. userID = this.getAttribute('data-userid'),
  14. context,
  15. postAuthor,
  16. signature,
  17. isBlocked = false,
  18. i = 0;
  19.  
  20. for (i = 0; i < users.length; i++) {
  21. if (userID === users[i]) {
  22. users.splice(i, 1);
  23. opts.xf_hidden_sigs = users;
  24. localStorage.setItem('MakazeScriptOptions', JSON.stringify(opts));
  25. isBlocked = true;
  26. break;
  27. }
  28. }
  29.  
  30. if (!isBlocked) {
  31. users.push(userID);
  32. opts.xf_hidden_sigs = users;
  33. localStorage.setItem('MakazeScriptOptions', JSON.stringify(opts));
  34. }
  35.  
  36. for (i = 0; i < document.getElementsByClassName('messageUserInfo').length; i++) {
  37. context = document.getElementsByClassName('messageUserInfo')[i];
  38. postAuthor = context.getElementsByClassName('username')[0].href.replace(/.*?members\/.*?\.(.*?)\//gi, '$1');
  39. signature = context.parentNode.getElementsByClassName('signature')[0];
  40.  
  41. if (postAuthor === userID) {
  42. if (isBlocked) {
  43. signature.style.display = 'block';
  44. context.getElementsByClassName('blockSigContainer')[0].getElementsByTagName('a')[0].childNodes[0].nodeValue = 'Block Signature';
  45. } else {
  46. signature.style.display = 'none';
  47. context.getElementsByClassName('blockSigContainer')[0].getElementsByTagName('a')[0].childNodes[0].nodeValue = 'Unblock Signature';
  48. }
  49. }
  50. }
  51. };
  52.  
  53. if (document.documentElement.id === 'XenForo') {
  54. if (document.getElementsByClassName('signature').length && document.getElementsByClassName('messageUserInfo').length) {
  55. var opts = (localStorage.getItem('MakazeScriptOptions')) ? JSON.parse(localStorage.getItem('MakazeScriptOptions')) : {},
  56. users = (opts.hasOwnProperty('xf_hidden_sigs')) ? opts.xf_hidden_sigs : [],
  57. context,
  58. userID,
  59. appendLocation,
  60. signature,
  61. sigBlockContainer,
  62. sigBlockLink,
  63. sigBlockLinkText,
  64. i = 0,
  65. j = 0;
  66.  
  67. for (i = 0; i < document.getElementsByClassName('messageUserInfo').length; i++) {
  68. context = document.getElementsByClassName('messageUserInfo')[i];
  69. if (context.getElementsByClassName('username')[0] != null) {
  70. userID = context.getElementsByClassName('username')[0].href.replace(/.*?members\/.*?\.(.*?)\//gi, '$1');
  71. appendLocation = context.getElementsByClassName('extraUserInfo')[0];
  72. signature = context.parentNode.getElementsByClassName('signature')[0];
  73.  
  74. sigBlockContainer = document.createElement('div');
  75. sigBlockLink = document.createElement('a');
  76.  
  77. sigBlockLink.href = 'javascript:void(0)';
  78. sigBlockLink.setAttribute('data-userid', userID);
  79. sigBlockLink.onclick = toggleSigBlockState;
  80.  
  81. if (users.length) {
  82. for (j = 0; j < users.length; j++) {
  83. if (userID === users[j]) {
  84. signature.style.display = 'none';
  85. sigBlockLinkText = document.createTextNode('Unlock Signature');
  86. } else {
  87. sigBlockLinkText = document.createTextNode('Block Signature');
  88. }
  89. }
  90. } else {
  91. sigBlockLinkText = document.createTextNode('Block Signature');
  92. }
  93.  
  94. sigBlockContainer.className = 'blockSigContainer';
  95. sigBlockContainer.style.marginTop = '1em';
  96.  
  97. sigBlockLink.appendChild(sigBlockLinkText);
  98. sigBlockContainer.appendChild(sigBlockLink);
  99. appendLocation.appendChild(sigBlockContainer);
  100. }
  101. }
  102. }
  103. }