Advertisement
Guest User

Convert Forum Tables Source

a guest
Mar 31st, 2014
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.66 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <link rel="icon" href="{Favicon}">
  5.     <title>Forum Table Converter</title>
  6. </head>
  7. <body>
  8. <div style="text-align: center;padding: 10px;">
  9.     <textarea style="width: 45%; height: 300px; font-size: 12px; color: #444; margin-right: 10px;" id="oldTables" placeholder="Enter tables to convert"></textarea>
  10.     <textarea style="width: 45%; height: 300px; font-size: 12px; color: #444;" id="newTables" placeholder="New tables will appear here"></textarea>
  11.     <div>
  12.         <div style="display: inline-block; text-align: justify; margin: 10px;">
  13.             <input type="radio" name="newlineMode" value="none" /> No newlines<br />
  14.             <input type="radio" name="newlineMode" value="onrows" /> Newlines on rows<br />
  15.             <input type="radio" name="newlineMode" value="onelements" /> Newlines on everything<br />
  16.             <input type="radio" name="newlineMode" value="onelementswithtabs" checked /> Newlines on everything with tabs
  17.         </div>
  18.         <br />
  19.         <input type="button" id="convert" value="Convert" />
  20.     </div>
  21. </div>
  22. <script type="text/javascript">
  23. document.getElementById('convert').onclick = function() {
  24.     var oldTables = document.getElementById('oldTables').value,
  25.     newTables,
  26.     newTablesElem = document.getElementById('newTables'),
  27.     newlineMode,
  28.     tableHeader,
  29.     tableHeaderText;
  30.  
  31.     for (i = 0, items = document.getElementsByName('newlineMode'); i < items.length; i++) {
  32.         if (items[i].checked) {
  33.             newlineMode = items[i].value;
  34.             break;
  35.         }
  36.     }
  37.  
  38.     tableHeader = oldTables.match(/\[table=head\].*?\n/i);
  39.  
  40.     oldTables = oldTables.substring(0 + tableHeader[0].length, oldTables.length);
  41.  
  42.     if (tableHeader) {
  43.         switch (newlineMode) {
  44.             case 'none':
  45.                 tableHeaderText = tableHeader[0]
  46.                     .replace(/[\n\r]/gi, '[/th][/tr][tr][td]')
  47.                     .replace(/\[table.*?\]/gi, '[table][tr][th]')
  48.                     .replace(/\|/gi, '[/th][th]');
  49.             break;
  50.             case 'onrows':
  51.                 tableHeaderText = tableHeader[0]
  52.                     .replace(/[\n\r]/gi, '[/th][/tr]\n[tr][td]')
  53.                     .replace(/\[table.*?\]/gi, '[table]\n[tr][th]')
  54.                     .replace(/\|/gi, '[/th][th]');
  55.             break;
  56.             case 'onelements':
  57.                 tableHeaderText = tableHeader[0]
  58.                     .replace(/[\n\r]/gi, '[/th]\n[/tr]\n[tr]\n[td]')
  59.                     .replace(/\[table.*?\]/gi, '[table]\n[tr]\n[th]')
  60.                     .replace(/\|/gi, '[/th]\n[th]');
  61.             break;
  62.             case 'onelementswithtabs':
  63.             default:
  64.                 tableHeaderText = tableHeader[0]
  65.                     .replace(/[\n\r]/gi, '[/th]\n[/tr]\n[tr]\n\t[td]')
  66.                     .replace(/\[table.*?\]/gi, '[table]\n[tr]\n\t[th]')
  67.                     .replace(/\|/gi, '[/th]\n\t[th]');
  68.         }
  69.     }
  70.  
  71.     switch (newlineMode) {
  72.         case 'none':
  73.             newTables = oldTables
  74.                 .replace(/[\n\r]/gi, '[/td][/tr][tr][td]')
  75.                 .replace(/\[table.*?\]/gi, '[table][tr][td]')
  76.                 .replace(/\|/gi, '[/td][td]')
  77.                 .replace(/\[\/table\]/gi, '[/td][/tr][/table]');
  78.         break;
  79.         case 'onrows':
  80.             newTables = oldTables
  81.                 .replace(/[\n\r]/gi, '[/td][/tr]\n[tr][td]')
  82.                 .replace(/\[table.*?\]/gi, '[table]\n[tr][td]')
  83.                 .replace(/\|/gi, '[/td][td]')
  84.                 .replace(/\[\/table\]/gi, '[/td][/tr]\n[/table]');
  85.         break;
  86.         case 'onelements':
  87.             newTables = oldTables
  88.                 .replace(/[\n\r]/gi, '[/td]\n[/tr]\n[tr]\n[td]')
  89.                 .replace(/\[table.*?\]/gi, '[table]\n[tr]\n[td]')
  90.                 .replace(/\|/gi, '[/td]\n[td]')
  91.                 .replace(/\[\/table\]/gi, '[/td]\n[/tr]\n[/table]');
  92.         break;
  93.         case 'onelementswithtabs':
  94.         default:
  95.             newTables = oldTables
  96.                 .replace(/[\n\r]/gi, '[/td]\n[/tr]\n[tr]\n\t[td]')
  97.                 .replace(/\[table.*?\]/gi, '[table]\n[tr]\n\t[td]')
  98.                 .replace(/\|/gi, '[/td]\n\t[td]')
  99.                 .replace(/\[\/table\]/gi, '[/td]\n[/tr]\n[/table]');
  100.     }
  101.  
  102.     if (tableHeader) {
  103.         newTables = tableHeaderText + newTables;
  104.     }
  105.  
  106.     newTablesElem.value = newTables;
  107. }
  108. </script>
  109. </body>
  110. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement