phpBB Count Posts

Shows number of post in phpbb-thread.

  1. // ==UserScript==
  2. // @name phpBB Count Posts
  3. // @namespace http://openuserjs.org/users/ardiman
  4. // @description Shows number of post in phpbb-thread.
  5. // @description:de-DE Nummeriert die Beiträge in phpbb-Thread.
  6. // @grant GM_getValue
  7. // @grant GM_setValue
  8. // @homepage https://github.com/ardiman/userscripts/tree/master/phpbbcountposts
  9. // @icon https://raw.githubusercontent.com/ardiman/userscripts/master/scriptlogo.gif
  10. // @include */viewtopic.php*
  11. // @exclude https://www.camp-firefox.de/forum/*
  12. // @license CC-BY-NC-SA-3.0; https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
  13. // @license MIT; https://opensource.org/licenses/MIT
  14. // @supportURL https://github.com/ardiman/userscripts/issues
  15. // @version 1.0.9
  16. // @date 2017-11-19
  17. // ==/UserScript==
  18.  
  19. (function() {
  20. var nodes = document.evaluate(
  21. "//p[@class='author']",
  22. document,
  23. null,
  24. XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
  25. null);
  26. var numberspanposition = GM_getValue("counterposition", -1);
  27. if (numberspanposition === -1) {
  28. GM_setValue("counterposition", 0);
  29. numberspanposition = 0;
  30. }
  31. var startingpost = parseInt(get_url_param('start','0'))+1;
  32. if (startingpost === 1) {
  33. var lnks = document.evaluate("//h2/a[contains(@href,'&start=')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE , null);
  34. if (lnks.snapshotItem(0) != null) startingpost = parseInt(get_url_param('start',lnks.snapshotItem(0).href))+1;
  35. }
  36. for(var i=0; i<nodes.snapshotLength; i++) {
  37. var authornode = nodes.snapshotItem(i);
  38. var numberspan = document.createElement("span");
  39. numberspan.setAttribute("class","gmphpbb_CP_numberspan");
  40. switch (numberspanposition) {
  41. case 1:
  42. numberspan.appendChild(document.createTextNode(" #"+(i+startingpost)));
  43. authornode.appendChild(numberspan);
  44. break;
  45. default:
  46. numberspan.appendChild(document.createTextNode("#"+(i+startingpost)+" "));
  47. authornode.insertBefore(numberspan,authornode.firstChild.nextSibling);
  48. break;
  49. }
  50. }
  51. })();
  52.  
  53. function get_url_param( name, searchtype)
  54. {
  55. name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  56. var regexS = "[\\?&]"+name+"=([^&#]*)";
  57. var regex = new RegExp( regexS );
  58. if (searchtype == "0") {
  59. var results = regex.exec( window.location.href );
  60. } else {
  61. var results = regex.exec( searchtype );
  62. }
  63.  
  64. if ( results == null )
  65. return "0";
  66. else
  67. return results[1];
  68. }