html2dynamic.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /*
  2. [Discuz!] (C)2001-2099 Comsenz Inc.
  3. This is NOT a freeware, use is subject to license terms
  4. $Id: html2dynamic.js 32720 2013-03-04 10:21:58Z zhangguosheng $
  5. */
  6. function htmlGetUserStatus () {
  7. var x = new Ajax();
  8. var type = '', typeid = 0, arr = [];
  9. if(DYNAMICURL.indexOf('mod=topic') > -1) {
  10. type = 'topic';
  11. arr = DYNAMICURL.match(/topicid=(\d+)/);
  12. typeid = arr ? arr[1] : 0;
  13. } else if(DYNAMICURL.indexOf('mod=view') > -1) {
  14. type = 'article';
  15. arr = DYNAMICURL.match(/aid=(\d+)/);
  16. typeid = arr ? arr[1] : 0;
  17. }
  18. x.getJSON('misc.php?mod=userstatus&r='+(+(new Date())+'&type='+type+'&typeid='+typeid), function (s) {
  19. if(s) {
  20. for(var key in s) {
  21. switch(key) {
  22. case 'userstatus' :
  23. initUserstatus(s[key]);
  24. break;
  25. case 'qmenu' :
  26. initQmenu(s[key]);
  27. break;
  28. case 'diynav' :
  29. initDiynav(s[key]);
  30. break;
  31. case 'commentnum' :
  32. case 'viewnum' :
  33. initNum(key, s[key]);
  34. break;
  35. }
  36. }
  37. }
  38. });
  39. function initNum(name, val) {
  40. var obj = null;
  41. if(val > 0 && (obj = $('_'+name))) {
  42. obj.innerHTML = parseInt(val);
  43. }
  44. }
  45. function initUserstatus (code) {
  46. try{
  47. var lsform = $('lsform');
  48. if(lsform) {
  49. var i = 0, l = 0;
  50. var parent = lsform.parentNode;
  51. var dom = document.createElement('div');
  52. dom.innerHTML = code;
  53. var allNodes = dom.childNodes;
  54. parent.removeChild(lsform);
  55. for(i = 0,l = allNodes.length; i < l; i++) {
  56. parent.appendChild(allNodes[0]);
  57. }
  58. evalscript(code);
  59. }
  60. } catch (e) {
  61. debug('initUserstatus', e);
  62. }
  63. }
  64. function initQmenu(code) {
  65. try {
  66. var qmenu = $('qmenu_menu');
  67. if(qmenu) {
  68. var dom = document.createElement('div');
  69. dom.innerHTML = code;
  70. qmenu.parentNode.replaceChild(dom.childNodes[0], qmenu);
  71. evalscript(code);
  72. }
  73. } catch (e) {
  74. debug('initQmenu', e);
  75. }
  76. }
  77. function initDiynav(code) {
  78. try {
  79. var i = 0, l = 0;
  80. var dom = document.createElement('div');
  81. dom.innerHTML = code;
  82. var allNodes = dom.childNodes;
  83. var switchblind = $('switchblind');
  84. var insertdom = '';
  85. if(switchblind) {
  86. insertdom = switchblind.parentNode;
  87. for(i = 0,l = allNodes.length; i < l; i++) {
  88. insertdom.appendChild(allNodes[0]);
  89. }
  90. } else {
  91. var wp = $('wp');
  92. if(wp) {
  93. insertdom = wp.parentNode;
  94. for(i = 0,l = allNodes.length; i < l; i++) {
  95. insertdom.insertBefore(allNodes[0], wp);
  96. }
  97. }
  98. }
  99. } catch (e) {
  100. debug('initDiynav', e);
  101. }
  102. }
  103. function debug(name, e) {
  104. if(console) {
  105. console.log(name + ':' + e);
  106. }
  107. }
  108. }
  109. function htmlCheckUpdate() {
  110. var timestamp = (+ new Date())/1000;
  111. if(html_lostmodify && html_lostmodify < timestamp - 300) {
  112. $F('make_html', [SITEURL + DYNAMICURL + (DYNAMICURL.indexOf('?') < 0 ? '?' : '&') + '_makehtml'], 'makehtml');
  113. }
  114. }