Makaze

XenForo Post Template (Automatic Optional) - JavaScript

Jan 9th, 2013
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  XENFORO POST TEMPLATE SCRIPT
  3.  
  4.  PRESS Alt+p TO APPLY --- ONLY ON PLAINTEXT MODE
  5.  PRESS 'Apply Template' BUTTON BELOW POST AREA TO APPLY ON EITHER MODE
  6.  
  7.  OPTION TO AUTOMATICALLY FORMAT ON POST SUBMISSION
  8.  
  9.  CUSTOMIZE BELOW
  10.  */
  11.  
  12. var autoapply = true; // Enable or disable automatic formatting
  13.  
  14. var prefix = '<strong>'; // Edit your Rich Text [HTML] prefix
  15. var suffix = '</strong>'; // Edit your Rich Text [HTML] suffix
  16.  
  17. var pprefix = '[B]'; // Edit your plaintext [BBCode] prefix
  18. var psuffix = '[/B]'; // Edit your plaintext [BBCode] suffix
  19.  
  20. function applyTemplate(e) {
  21.  
  22.     if (e.keyCode == 80 && e.altKey) {
  23.         var plaintext = document.getElementsByClassName('bbCodeEditorContainer')[0].getElementsByTagName('textarea')[0];
  24.         if (plaintext !== null) {
  25.             var ptext = plaintext.value;
  26.             plaintext.value = pprefix + ptext + psuffix;
  27.         };
  28.     };
  29. };
  30.  
  31. document.onkeydown = applyTemplate;
  32.  
  33. var brdata = '<br data-mce-bogus="1">';
  34.  
  35. var applyscript = "var prefix = '" + prefix + "'; var suffix = '" + suffix + "'; var pprefix = '" + pprefix + "'; var psuffix = '" + psuffix + "'; var a = document.getElementById('ctrl_message_html_ifr'); var textbox = a.contentWindow.document.getElementsByTagName('p')[0]; var text = textbox.innerHTML; if (textbox.innerHTML.length > 0 && textbox.innerHTML != '" + brdata + "' && textbox.innerHTML != '<br>') { textbox.innerHTML = prefix + text + suffix; } else { textbox.innerHTML = prefix + 'POST' + suffix }; if (typeof document.getElementsByClassName('bbCodeEditorContainer')[0] == undefined || document.getElementsByClassName('bbCodeEditorContainer')[0] == null) { document.getElementsByClassName('bbCodeEditorButton')[0].getElementsByTagName('span')[0].click(); var timer = setInterval(function() { if (document.getElementsByClassName('bbCodeEditorContainer')[0] && document.getElementsByClassName('bbCodeEditorContainer')[0] != null) { document.getElementsByClassName('bbCodeEditorContainer')[0].getElementsByTagName('div')[0].getElementsByTagName('a')[0].click(); clearInterval(timer); } }, 1); }; var plaintext = document.getElementsByClassName('bbCodeEditorContainer')[0].getElementsByTagName('textarea')[0]; if (plaintext != null) { var ptext = plaintext.value; plaintext.value = pprefix + ptext + psuffix; };";
  36.  
  37. var applybutton = document.createElement('input');
  38. applybutton.setAttribute('onClick', applyscript);
  39. applybutton.value = "Apply Template";
  40. applybutton.className = "button";
  41. applybutton.setAttribute('id', 'applybutton');
  42.  
  43. if (document.getElementById('QuickReply') !== null) {
  44.     document.getElementById('QuickReply').getElementsByClassName('submitUnit')[0].appendChild(applybutton);
  45. } else if (document.getElementsByClassName('thread_reply')[0] !== null) {
  46.     document.getElementsByClassName('thread_reply')[0].getElementsByClassName('submitUnit')[0].getElementsByTagName('dd')[0].appendChild(applybutton);
  47. } else {
  48.     document.getElementsByClassName('conversation_reply')[0].getElementsByClassName('submitUnit')[0].getElementsByTagName('dd')[0].appendChild(applybutton);
  49. }
  50.  
  51. if (autoapply) {
  52. //  document.getElementById('applybutton').click();
  53.        
  54.         if (document.getElementById('QuickReply') !== null) {
  55.         document.getElementById('QuickReply').getElementsByClassName('submitUnit')[0].getElementsByTagName('input')[0].setAttribute('onClick', applyscript);
  56. } else if (document.getElementsByClassName('thread_reply')[0] !== null) {
  57.         document.getElementsByClassName('thread_reply')[0].getElementsByClassName('submitUnit')[0].getElementsByTagName('input')[0].setAttribute('onClick', applyscript);
  58.     } else {
  59.         document.getElementsByClassName('conversation_reply')[0].getElementsByClassName('submitUnit')[0].getElementsByTagName('input')[0].setAttribute('onClick', applyscript);
  60.     }
  61.    
  62. }
Advertisement
Add Comment
Please, Sign In to add comment