{"id":70360,"date":"2025-11-02T03:01:00","date_gmt":"2025-11-01T17:01:00","guid":{"rendered":"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=70360"},"modified":"2025-11-02T09:00:40","modified_gmt":"2025-11-01T23:00:40","slug":"message-board-one-liners-span-inline-talents-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-span-inline-talents-tutorial\/","title":{"rendered":"Message Board One Liners Span Inline Talents Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Message Board One Liners Span Inline Talents Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/message_board_content_spaninline.gif\" title=\"Message Board One Liners Span Inline Talents Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Message Board One Liners Span Inline Talents Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='Message Board One Liners Div Linking Talents Tutorial' href='#mboldltt'>Message Board One Liners Div Linking Talents Tutorial<\/a> effectively set up the competition &#8230;<\/p>\n<blockquote><p>\nWhich is the humblest HTML element type?\n<\/p><\/blockquote>\n<p> &#8230; and proposed that the HTML <i><a target=\"_blank\" title='HTML div tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_div.asp' rel=\"noopener\">div<\/a><\/i> element was up there.  But, around here, we don&#8217;t think so, so much, as you can read about in yesterday&#8217;s treatise.<\/p>\n<p>Today we have, heavily featuring, another of those in the <i>humblest HTML element type<\/i> list we are sure for a lot of people, the <font size=1>good ol&#8217;<\/font> HTML <i><a target=\"_blank\" title='HTML span tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_span.asp' rel=\"noopener\">span<\/a><\/i> element.  But, again, is that fair?!  Again, no, we say, especially in so much as, regarding <i>text data display<\/i> talents, how &#8230;<\/p>\n<ul>\n<li>the HTML <i><a target=\"_blank\" title='HTML span tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_span.asp' rel=\"noopener\">span<\/a><\/i> element can be relied upon as an <a target=\"_blank\" title='CSS display:inline information from W3schools' href='https:\/\/www.w3schools.com\/cssref\/pr_class_display.php' rel=\"noopener\">&#8220;inline&#8221;<\/a> display specialist &#8230; and in the case starting with yesterday&#8217;s work&#8217;s implications &#8230;<\/li>\n<li>helping straighten up (ie. restore previously horizontal alignments) in what became a bit vertical within the &#8220;sometimes inline&#8221; but &#8220;default block&#8221; HTML <i><a target=\"_blank\" title='HTML div tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_div.asp' rel=\"noopener\">div<\/a><\/i> element &#8230; and today we have another useful task for the &#8230;<\/li>\n<li>HTML <i><a target=\"_blank\" title='HTML span tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_span.asp' rel=\"noopener\">span<\/a><\/i> element is being used today, not for linking, but for &#8230;\n<ol>\n<li>a dual display purpose &#8230;<\/li>\n<li>effectively animating &#8230;<br \/>\n<code><br \/>\n var toggler=0, togspans=[], holdyourhorses=false;<br \/>\n <br \/>\n function spanize() {<br \/>\n   var jspan=0;<br \/>\n   if (eval('' + togspans.length) == 0) {<br \/>\n     togspans=document.getElementsByTagName('span');<br \/>\n   }<br \/>\n   if (!holdyourhorses) {<br \/>\n   if (toggler == 0) {<br \/>\n     toggler=1;<br \/>\n     for (jspan=0; jspan&lt;togspans.length; jspan++) {<br \/>\n       if (togspans[jspan].outerHTML.indexOf(' data-local=') != -1 && togspans[jspan].outerHTML.indexOf('&lt;span&gt;') == -1) {<br \/>\n         togspans[jspan].innerHTML=togspans[jspan].getAttribute('data-local');<br \/>\n         togspans[jspan].title=togspans[jspan].getAttribute('data-gmt');<br \/>\n       }<br \/>\n     }<br \/>\n   } else {<br \/>\n     toggler=0;<br \/>\n     for (jspan=0; jspan&lt;togspans.length; jspan++) {<br \/>\n       if (togspans[jspan].outerHTML.indexOf(' data-local=') != -1 && togspans[jspan].outerHTML.indexOf('&lt;span&gt;') == -1) {<br \/>\n         togspans[jspan].innerHTML=togspans[jspan].getAttribute('data-gmt');<br \/>\n         togspans[jspan].title=togspans[jspan].getAttribute('data-local');<br \/>\n       }<br \/>\n     }<br \/>\n   }<br \/>\n   }<br \/>\n   setTimeout(spanize, 10000);<br \/>\n }<br \/>\n <br \/>\n setTimeout(spanize, 2000);<br \/>\n<\/code>\n<\/li>\n<li>the Message Board timestamp display between GMT timestamps <font size=1>(we still want to display in the sense that it shows a message list showing that chronological sorted order where you are comparing &#8220;apples with apples&#8221;)<\/font> and local timestamps <font size=1>(regarding the &#8220;Publish<sup>ing<\/sup>&#8221; content creator user&#8217;s local environment, and which adds interest and context for any Message Board discussions)<\/font> &#8230; a thing only really feasible by clientside Javascript amending the div content display and then informing the serverside of the findings, using &#8230;<br \/>\n<code><br \/>\n  var localtz=Intl.DateTimeFormat().resolvedOptions().timeZone;<br \/>\n<\/code><br \/>\n &#8230; thanks to <a target=\"_blank\" title='Useful information' href='https:\/\/www.google.com\/search?q=php+get+user+default+timezone&#038;rlz=1C5OZZY_en&#038;oq=php+get+user+default+timezone+&#038;gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIICAEQABgWGB4yBwgCEAAY7wUyCggDEAAYgAQYogQyBwgEEAAY7wUyBwgFEAAY7wUyCggGEAAYogQYiQXSAQkyMzY4MWowajSoAgCwAgE&#038;sourceid=chrome&#038;ie=UTF-8' rel=\"noopener\">this useful information<\/a> and the new HTML form textboxes whose content is Javascript DOM filled via &#8230;<br \/>\n<code><br \/>\n    document.getElementById('localtz').value=localtz;<br \/>\n    document.getElementById('localdt').value=('' + new Date());<br \/>\n<\/code>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>So, do you still want to only involve the HTML <i><a target=\"_blank\" title='HTML textarea tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_textarea.asp' rel=\"noopener\">textarea<\/a><\/i> elements here in this Message Board?    Hmmm.  Mmmmmm.<\/p>\n<p>As far as data considerations go, we like &#8220;humble&#8221; &#8230; within &#8230;<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php-----GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php-----GETME\" rel=\"noopener\">prepend.php<\/a> PHP (ie. serverside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js----GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js----GETME\" rel=\"noopener\">talk_about_it.js<\/a> external Javascript (ie. clientside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php-----GETME\" rel=\"noopener\">a changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php-----GETME\" rel=\"noopener\">talk_about_it.php<\/a> PHP <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board<\/a> web application you can <a href='#mytable'>try below<\/a><\/li>\n<\/ul>\n<p> &#8230; and compartmentalize usage where talents lie by changing what used to be a &#8220;message data&#8221; textbox (ie. input type=text) into an HTML <i><a target=\"_blank\" title='HTML textarea tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_textarea.asp' rel=\"noopener\">textarea<\/a><\/i> element, with it&#8217;s <i>user interactive entry<\/i> talents &#8230; swings and roundabouts, indeed?!<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-span-inline-talents-tutorial\/' rel=\"noopener\">Message Board One Liners Span Inline Talents Tutorial<\/a>.<\/p-->\n<hr>\n<p id='mboldltt'>Previous relevant <a target=\"_blank\" title='Message Board One Liners Div Linking Talents Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-div-linking-talents-tutorial\/' rel=\"noopener\">Message Board One Liners Div Linking Talents Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Message Board One Liners Div Linking Talents Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/message_board_content_divlinking.gif\" title=\"Message Board One Liners Div Linking Talents Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Message Board One Liners Div Linking Talents Tutorial<\/p><\/div>\n<p>Up until today, as with yesterday&#8217;s <a title='Message Board One Liners Content Filtering Tutorial' href='#mbolcft'>Message Board One Liners Content Filtering Tutorial<\/a> &#8230;<\/p>\n<ul>\n<li>our message board content was displayed within an HTML <i><a target=\"_blank\" title='HTML textarea tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_textarea.asp' rel=\"noopener\">textarea<\/a><\/i> element &#8230; but with today&#8217;s work &#8230;<\/li>\n<li>we&#8217;re transferring our Message Board content &#8220;allegiance&#8221; over to an HTML <i><a target=\"_blank\" title='HTML div tag information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_div.asp' rel=\"noopener\">div<\/a><\/i> element<\/li>\n<\/ul>\n<blockquote><p>\nBorrrrriiing!!\n<\/p><\/blockquote>\n<p> &#8230; we hear some of you say?!  But are you basing your dismay on &#8220;looks alone&#8221;?!   Hmmm.  Mmmmmm.<\/p>\n<p>The HTML <i>textarea<\/i> element is great for text data and beats the use of HTML <i>input<\/i> type=text &#8220;textbox&#8221; element with it&#8217;s handling of line feeds in your data.<\/p>\n<p>But <font size=1>(humble ol&#8217;)<\/font> HTML <i>div<\/i> elements allow for embedded links to be applied to special words of your text data for links like &#8230;<\/p>\n<ol>\n<li>ht<font color=black>tp<\/font>: or https: protocol URLs<\/li>\n<li>email addresses &#8230; mapped to &#8220;a&#8221; &#8220;mailto:&#8221; links<\/li>\n<li>SMS number &#8230; mapped to &#8220;a&#8221; &#8220;sms:&#8221; links<\/li>\n<li>YouTube 11 character video ID<\/li>\n<li>Spotify 22 character playlist ID<\/li>\n<li>YouTube 34 character playlist ID<\/li>\n<\/ol>\n<p> &#8230; as examples of what we can add intelligence to with Javascript code to oversee and adjust the content, as per &#8230;<\/p>\n<p><code><br \/>\n function subalt(inalt) {<br \/>\n   var wdsare=inalt.replace(\/\\&lt;br\\&gt;\/g, ' ').split(' ');<br \/>\n   inalt=inalt.replace(\/\\&lt;br\\&gt;\/g, String.fromCharCode(10));<br \/>\n   var outalt=inalt;<br \/>\n   \/\/alert(outalt.split('google.com')[eval(-1 + outalt.split('google.com').length)]);<br \/>\n   var opst='', putb='';<br \/>\n   var iwdsl=eval('' + wdsare.length);<br \/>\n   <br \/>\n   for (var iws=0; iws&lt;iwdsl; iws++) {<br \/>\n      if (iws == 0) {<br \/>\n        wdsare.push('');<br \/>\n        wdsare.push('');<br \/>\n      }<br \/>\n      var elevenlegit='', nv='', prefn='';<br \/>\n      \/\/if (wdsare[iws].indexOf('61') != -1 || 1 == 1) {<br \/>\n      \/\/  alert(wdsare[iws]);<br \/>\n      \/\/}<br \/>\n      if (wdsare[iws].trim() == '' && iws &lt; iwdsl) {<br \/>\n        nv=wdsare[eval(1 + iws)];<br \/>\n        \/\/alert(nv);<br \/>\n        if (nv.substring(0,1) &gt;= '0' && nv.substring(0,1) &lt;= '9') {<br \/>\n          prefn='+';<br \/>\n          if ((prefn + nv) != (prefn + nv).replace(\/^\\+(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*(\\d{1,2})$\/g,'')) {<br \/>\n            \/\/outalt=outalt.replace(' ' + wdsare[eval(1 + iws)], \" &lt;a title=\\\"SMS\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"sms:\" + encodeURIComponent(prefn + wdsare[eval(1 + iws)]) + \"&body=\" + encodeURIComponent(inalt.replace(wdsare[eval(1 + iws)], prefn + wdsare[eval(1 + iws)])) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[eval(1 + iws)] + \"&lt;\/a&gt;\");<br \/>\n            outalt=outaltreplace(outalt, ' ' + wdsare[eval(1 + iws)], \" &lt;a title=\\\"SMS\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"sms:\" + encodeURIComponent(prefn + wdsare[eval(1 + iws)]) + \"&body=\" + encodeURIComponent(inalt.replace(wdsare[eval(1 + iws)], prefn + wdsare[eval(1 + iws)])) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[eval(1 + iws)] + \"&lt;\/a&gt;\");<br \/>\n            \/\/wdsare[eval(1 + iws)]=(prefn + wdsare[eval(1 + iws)]);<br \/>\n            prefn='';<br \/>\n          }<br \/>\n        } else {<br \/>\n          prefn='';<br \/>\n        }<br \/>\n      } else if (wdsare[iws].trim() != '' && (wdsare[eval(1 + iws)] + wdsare[eval(2 + iws)]) != 'saysat') {<br \/>\n      if (eval('' + wdsare[iws].length) == 11 && eval('' + encodeURIComponent(wdsare[iws]).length) == 11) {<br \/>\n        elevenlegit=maybelegit(wdsare[iws], 'youtube');<br \/>\n      } else if (eval('' + wdsare[iws].length) == 34 && eval('' + encodeURIComponent(wdsare[iws]).length) == 34) {<br \/>\n        elevenlegit=otherlegit(wdsare[iws], 'youtube', 34);<br \/>\n      } else if (eval('' + wdsare[iws].length) == 22 && eval('' + encodeURIComponent(wdsare[iws]).length) == 22) {<br \/>\n        elevenlegit=otherlegit(wdsare[iws], 'spotify', 22);<br \/>\n      }<br \/>\n\/\/  if (prefn != '') { alert('0:' + prefn + wdsare[iws]);  }<br \/>\n      if ((wdsare[iws].toLowerCase().indexOf('http') == 0 && wdsare[iws].toLowerCase().indexOf('\/\/') != -1) || wdsare[iws].toLowerCase().indexOf('\/\/') == 0) {<br \/>\n\/\/  if (prefn != '') { alert('1:' + prefn + wdsare[iws]);  }<br \/>\n  \/\/if (('' + top.document.URL).indexOf('\/video_commentary.htm') != -1) {  alert('here1 ' + wdsare[iws]);  }<br \/>\n        \/\/outalt=outalt.replace(' ' + wdsare[iws], \" &lt;a title=\\\"Link\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/\" + prefn + wdsare[iws].split('\/\/')[1] + \"','_blank','top=100,left=120,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        outalt=outaltreplace(outalt,' ' + wdsare[iws], \" &lt;a title=\\\"Link\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/\" + prefn + wdsare[iws].split('\/\/')[1] + \"','_blank','top=100,left=120,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n      } else if (elevenlegit == 'youtube') {<br \/>\n\/\/  if (prefn != '') { alert('2:' + prefn + wdsare[iws]);  }<br \/>\n        if (eval('' + wdsare[iws].length) == 11 && eval('' + encodeURIComponent(wdsare[iws]).length) == 11) {<br \/>\n  \/\/if (('' + top.document.URL).indexOf('\/video_commentary.htm') != -1) {  alert('here11 ' + wdsare[iws]);  }<br \/>\n        \/\/outalt=outalt.replace(' ' + wdsare[iws], \" &lt;a title=\\\"YouTube video\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/www.youtube.com\/watch?v=\" + prefn + wdsare[iws] + \"','_blank','top=120,left=100,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        outalt=outaltreplace(outalt,' ' + wdsare[iws], \" &lt;a title=\\\"YouTube video\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/www.youtube.com\/watch?v=\" + prefn + wdsare[iws] + \"','_blank','top=120,left=100,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        } else {<br \/>\n  \/\/if (('' + top.document.URL).indexOf('\/video_commentary.htm') != -1) {  alert('here111 ' + wdsare[iws]);  }<br \/>\n        \/\/outalt=outalt.replace(' ' + wdsare[iws], \" &lt;a title=\\\"YouTube playlist\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/www.youtube.com\/playlist?list=\" + prefn + wdsare[iws] + \"','_blank','top=120,left=100,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        outalt=outaltreplace(outalt,' ' + wdsare[iws], \" &lt;a title=\\\"YouTube playlist\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/www.youtube.com\/playlist?list=\" + prefn + wdsare[iws] + \"','_blank','top=120,left=100,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        }<br \/>\n      } else if (elevenlegit == 'spotify' && eval('' + wdsare[iws].length) == 22 && eval('' + encodeURIComponent(wdsare[iws]).length) == 22) {<br \/>\n\/\/  if (prefn != '') { alert('3:' + prefn + wdsare[iws]);  }<br \/>\n  \/\/if (('' + top.document.URL).indexOf('\/video_commentary.htm') != -1) {  alert('here2 ' + wdsare[iws]);  }<br \/>\n        \/\/outalt=outalt.replace(' ' + wdsare[iws], \" &lt;a title=\\\"Spotify album\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/open.spotify.com\/playlist\/\" + prefn + wdsare[iws] + \"','_blank','top=120,left=100,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        outalt=outaltreplace(outalt,' ' + wdsare[iws], \" &lt;a title=\\\"Spotify album\\\" onclick=\\\"event.stopPropagation(); window.open('\/\/open.spotify.com\/playlist\/\" + prefn + wdsare[iws] + \"','_blank','top=120,left=100,width=600,height=600'); \" + putb + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n      } else if (wdsare[iws].indexOf('@') &gt; 0 && (wdsare[iws] + '~').indexOf('@~') == -1 && wdsare[iws].indexOf('.') != -1) {<br \/>\n\/\/  if (prefn != '') { alert('4:' + prefn + wdsare[iws]);  }<br \/>\n  \/\/if (('' + top.document.URL).indexOf('\/video_commentary.htm') != -1) {  alert('here3 ' + wdsare[iws]);  }<br \/>\n        \/\/outalt=outalt.replace(' ' + wdsare[iws], \" &lt;a title=\\\"Email\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"mailto:\" + prefn + wdsare[iws] + \"?subject=Message%20Board&body=\" + encodeURIComponent(inalt) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        outalt=outaltreplace(outalt,' ' + wdsare[iws], \" &lt;a title=\\\"Email\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"mailto:\" + prefn + wdsare[iws] + \"?subject=Message%20Board&body=\" + encodeURIComponent(inalt) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n      } else if ((prefn + wdsare[iws]).replace(\/^\\+(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*\\d\\W*(\\d{1,2})$\/g,'') != (prefn + wdsare[iws])) {<br \/>\n\/\/  if (prefn != '') { alert('5:' + prefn + wdsare[iws]);  }<br \/>\n  \/\/if (('' + top.document.URL).indexOf('\/video_commentary.htm') != -1) {  alert('here4 ' + wdsare[iws]);  }<br \/>\n        \/\/outalt=outalt.replace(' ' + wdsare[iws], \" &lt;a title=\\\"SMS\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"sms:\" + prefn + wdsare[iws] + \"&body=\" + encodeURIComponent(inalt) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        outalt=outaltreplace(outalt,' ' + wdsare[iws], \" &lt;a title=\\\"SMS\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"sms:\" + prefn + wdsare[iws] + \"&body=\" + encodeURIComponent(inalt) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n      } else if (eval('' + wdsare[iws].length) &gt; 4 && wdsare[iws].replace(\/0\/g,'').replace(\/1\/g,'').replace(\/2\/g,'').replace(\/3\/g,'').replace(\/4\/g,'').replace(\/5\/g,'').replace(\/6\/g,'').replace(\/7\/g,'').replace(\/8\/g,'').replace(\/9\/g,'') == '') {<br \/>\n\/\/  if (prefn != '') { alert('6:' + prefn + wdsare[iws]);  }<br \/>\n  \/\/if (('' + top.document.URL).indexOf('\/video_commentary.htm') != -1) {  alert('here5 ' + wdsare[iws]);  }<br \/>\n        \/\/outalt=outalt.replace(' ' + wdsare[iws], \" &lt;a title=\\\"SMS\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"sms:\" + prefn + wdsare[iws] + \"&body=\" + encodeURIComponent(inalt) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n        outalt=outaltreplace(outalt,' ' + wdsare[iws], \" &lt;a title=\\\"SMS\\\" target=\\\"_top\\\" onclick=\\\"event.stopPropagation();\\\" href=\\\"sms:\" + prefn + wdsare[iws] + \"&body=\" + encodeURIComponent(inalt) + \"\\\" style=text-decoration:underline;cursor:pointer;\\\"&gt;\" + prefn + wdsare[iws] + \"&lt;\/a&gt;\");<br \/>\n      }<br \/>\n      prefn='';<br \/>\n      }<br \/>\n   }<br \/>\n   <br \/>\n   return crlftobr(outalt);<br \/>\n }<br \/>\n <br \/>\n function outaltreplace(regrdg,findthis,withthis) {<br \/>\n   findthis=findthis.replace(String.fromCharCode(10),'');<br \/>\n   withthis=withthis.replace(String.fromCharCode(10),'');<br \/>\n   if (regrdg.indexOf(findthis) != -1 || regrdg.indexOf(findthis.trim() + String.fromCharCode(10)) != -1) {<br \/>\n   \/\/alert(1);<br \/>\n   if (regrdg.indexOf(findthis + ' ') != -1) {<br \/>\n     return regrdg.replace(findthis + ' ',withthis + ' ');<br \/>\n   } else if (regrdg.indexOf(findthis) &lt; (regrdg.indexOf(findthis.trim() + String.fromCharCode(10)) == -1 ? eval(1 + eval('' + regrdg.length)) : regrdg.indexOf(findthis.trim() + String.fromCharCode(10))) && (regrdg.indexOf(findthis) != -1 || regrdg.indexOf(findthis.trim() + String.fromCharCode(10)) == -1)) {<br \/>\n   \/\/alert(11);<br \/>\n     return regrdg.replace(findthis,withthis);<br \/>\n   } else {<br \/>\n   \/\/alert('111 ' + regrdg.indexOf(findthis) + ' vs ' + regrdg.indexOf(findthis.trim() + String.fromCharCode(10)));<br \/>\n     return regrdg.replace(findthis.trim() + String.fromCharCode(10),withthis.trim()); \/\/  + String.fromCharCode(10)<br \/>\n   }<br \/>\n   }<br \/>\n   return regrdg;<br \/>\n }<br \/>\n <br \/>\n  function linkize(inpt) {<br \/>\n    var outpt=inpt;<br \/>\n    var intsare=inpt.split('[');<br \/>\n    for (var iuy=1; iuy&lt;intsare.length; iuy++) {<br \/>\n      if (intsare[iuy].split(']')[0].indexOf('@') != -1) {<br \/>\n        outpt=outpt.replace('[' + intsare[iuy].split(']')[0] + ']', '[&lt;a title=\"Email\" target=\"_top\" onclick=\"event.stopPropagation();\" href=\"mailto:' + intsare[iuy].split(']')[0] + '?subject=Regarding%20this%20Message%20Board\"&gt;' + intsare[iuy].split(']')[0] + '&lt;\/a&gt;]');<br \/>\n      } else if (intsare[iuy].split(']')[0].trim() != '' && intsare[iuy].split(']')[0].trim().replace(\/0\/g,'').replace(\/1\/g,'').replace(\/2\/g,'').replace(\/3\/g,'').replace(\/4\/g,'').replace(\/5\/g,'').replace(\/6\/g,'').replace(\/7\/g,'').replace(\/8\/g,'').replace(\/9\/g,'') == '') {<br \/>\n        outpt=outpt.replace('[' + intsare[iuy].split(']')[0] + ']', '[&lt;a title=\"SMS\" target=\"_top\" onclick=\"event.stopPropagation();\" href=\"sms:' + intsare[iuy].split(']')[0] + '&body=Regarding%20this%20Message%20Board\"&gt;' + intsare[iuy].split(']')[0] + '&lt;\/a&gt;]');<br \/>\n      }<br \/>\n    }<br \/>\n    return outpt;<br \/>\n  }<br \/>\n<br \/>\n  function otherlegit(ineleven, iflegit, thiseleven) {<br \/>\n   if (eval('' + ineleven.length) != thiseleven) {<br \/>\n    return 'JUNK' + iflegit;<br \/>\n   \/\/} else if (ineleven.slice(-1).replace('A','').replace('E','').replace('I','').replace('M','').replace('Q','').replace('U','').replace('Y','').replace('c','').replace('g','').replace('k','').replace('o','').replace('s','').replace('w','').replace('0','').replace('4','').replace('8','') != '') {<br \/>\n   \/\/ return 'JUNK' + iflegit;<br \/>\n   }<br \/>\n   for (var ijk=0; ijk&lt;ineleven.length; ijk++) {<br \/>\n    if (ineleven.substring(ijk).substring(0,1) &gt;= 'a' && ineleven.substring(ijk).substring(0,1) &lt;= 'z') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) &gt;= 'A' && ineleven.substring(ijk).substring(0,1) &lt;= 'Z') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) &gt;= '0' && ineleven.substring(ijk).substring(0,1) &lt;= '9') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) == '\/' || ineleven.substring(ijk).substring(0,1) == '+') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) == '-' || ineleven.substring(ijk).substring(0,1) == '_') {<br \/>\n     ijk=ijk;<br \/>\n    } else {<br \/>\n     return 'JUNK' + iflegit;<br \/>\n    }<br \/>\n   }<br \/>\n   return iflegit;<br \/>\n }<br \/>\n<br \/>\n  function maybelegit(ineleven, iflegit) {<br \/>\n   if (eval('' + ineleven.length) != 11) {<br \/>\n    return iflegit.replace('tube','tuJUNKbe');<br \/>\n   } else if (ineleven.slice(-1).replace('A','').replace('E','').replace('I','').replace('M','').replace('Q','').replace('U','').replace('Y','').replace('c','').replace('g','').replace('k','').replace('o','').replace('s','').replace('w','').replace('0','').replace('4','').replace('8','') != '') {<br \/>\n    return iflegit.replace('tube','tuJUNKbe');<br \/>\n   }<br \/>\n   for (var ijk=0; ijk&lt;ineleven.length; ijk++) {<br \/>\n    if (ineleven.substring(ijk).substring(0,1) &gt;= 'a' && ineleven.substring(ijk).substring(0,1) &lt;= 'z') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) &gt;= 'A' && ineleven.substring(ijk).substring(0,1) &lt;= 'Z') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) &gt;= '0' && ineleven.substring(ijk).substring(0,1) &lt;= '9') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) == '\/' || ineleven.substring(ijk).substring(0,1) == '+') {<br \/>\n     ijk=ijk;<br \/>\n    } else if (ineleven.substring(ijk).substring(0,1) == '-' || ineleven.substring(ijk).substring(0,1) == '_') {<br \/>\n     ijk=ijk;<br \/>\n    } else {<br \/>\n     return iflegit.replace('tube','tuJUNKbe');<br \/>\n    }<br \/>\n   }<br \/>\n   return iflegit;<br \/>\n }<br \/>\n <br \/>\n function crlftobr(insg) {<br \/>\n   var outsg=insg;<br \/>\n   while (outsg.indexOf(String.fromCharCode(10)) != -1) {<br \/>\n     outsg=outsg.replace(String.fromCharCode(10), '&lt;br&gt;');<br \/>\n   }<br \/>\n   return outsg;<br \/>\n }<br \/>\n <\/code><\/p>\n<p> &#8230; and can be cajoled into the baseline bottom justification of the text data <font size=1>(albeit not as seamlessly as for textarea elements, but thanks to <a target=\"_blank\" title='Useful link' href='https:\/\/stackoverflow.com\/questions\/37442722\/overflowscroll-not-working-on-flex-items' rel=\"noopener\">this great link<\/a> for the help)<\/font> using CSS &#8230;<\/p>\n<p><code><br \/>\n display:inline-<a target=\"_blank\" title='CSS flex info' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/flex' rel=\"noopener\">flex<\/a>;<br \/>\n<\/code><\/p>\n<p> &#8230; within &#8230;<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php----GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php----GETME\" rel=\"noopener\">prepend.php<\/a> PHP (ie. serverside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js---GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js---GETME\" rel=\"noopener\">talk_about_it.js<\/a> external Javascript (ie. clientside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php----GETME\" rel=\"noopener\">a changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php----GETME\" rel=\"noopener\">talk_about_it.php<\/a> PHP <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board<\/a> web application you can <a href='#mytable'>try below<\/a><\/li>\n<\/ul>\n<p> &#8230; where, now, double clicking on colour coded HTML <i>div<\/i> elements allows for total Message Board content reviews.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-div-linking-talents-tutorial\/' rel=\"noopener\">Message Board One Liners Div Linking Talents Tutorial<\/a>.<\/p-->\n<hr>\n<p id='mbolcft'>Previous relevant <a target=\"_blank\" title='Message Board One Liners Content Filtering Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-content-filtering-tutorial\/' rel=\"noopener\">Message Board One Liners Content Filtering Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Message Board One Liners Content Filtering Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/message_board_content_filtering.gif\" title=\"Message Board One Liners Content Filtering Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Message Board One Liners Content Filtering Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='Message Board One Liners Group Privacy Tutorial' href='#mbolgpt'>Message Board One Liners Group Privacy Tutorial<\/a> &#8230;<\/p>\n<ol>\n<li>group<\/li>\n<li>privacy<\/li>\n<\/ol>\n<p> &#8230; ideas are built up today with an &#8230;<\/p>\n<ol>\n<li>individualized<\/li>\n<li>content<\/li>\n<li>filtering<\/li>\n<\/ol>\n<p> &#8230; addition of functionality so that a user can provide a <font color=blue>semicolon delimited set of filtering parameters<\/font> &#8230;<\/p>\n<blockquote><p>\nName you will see on board above where a comma separated list like RJM[rmetcalfe15@gmail.com],RMet[rmetcalfe@rjmprogramming.com.au] would invite RMet to Message Board via that email address and flagging that rmetcalfe15@gmail.com would be sending the invitation<font color=blue>, whereas a semicolon separated list describes a wildcard * and ? (as well as ^ start and $ end) savvy list of Message Board filter criteria, as well as criteria like for example (of matching with <br \/>Frederick says at 30\/10\/2025 00:13 GMT &#8230; yes<br \/>) &#8230; <br \/>last 10 minutes <br \/>^Fred*yes <br \/>red?r*k*yes$<\/font>\n<\/p><\/blockquote>\n<p> &#8230; to apply to their own view of the <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board<\/a> we&#8217;ve been working on here lately.<\/p>\n<p>Again, both serverside <font size=1>(starring for the first time, for us, use of PHP&#8217;s great <a target=\"_blank\" title='PHP function fnmath information' href='https:\/\/www.php.net\/manual\/en\/function.fnmatch.php' rel=\"noopener\">fnmatch<\/a> friend to wildcard * and ? usage that we are so familiar with regarding file specification usages)<\/font> and clientside code needed to change to facilitate this, as you can peruse below &#8230;<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php---GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php---GETME\" rel=\"noopener\">prepend.php<\/a> PHP (ie. serverside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js--GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js--GETME\" rel=\"noopener\">talk_about_it.js<\/a> external Javascript (ie. clientside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php---GETME\" rel=\"noopener\">a changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php---GETME\" rel=\"noopener\">talk_about_it.php<\/a> PHP <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board<\/a> web application you can <a href='#mytable'>try below<\/a><\/li>\n<\/ul>\n<p> &#8230; where a bit of &#8220;colour coding depending on mode of use&#8221; enters the scene.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-content-filtering-tutorial\/' rel=\"noopener\">Message Board One Liners Content Filtering Tutorial<\/a>.<\/p-->\n<hr>\n<p id='mbolgpt'>Previous relevant <a target=\"_blank\" title='Message Board One Liners Group Privacy Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-group-privacy-tutorial\/' rel=\"noopener\">Message Board One Liners Group Privacy Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Message Board One Liners Group Privacy Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/message_board_privacy.jpg\" title=\"Message Board One Liners Group Privacy Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Message Board One Liners Group Privacy Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='Message Board One Liners Group Invitations Tutorial' href='#mbolgit'>Message Board One Liners Group Invitations Tutorial<\/a> &#8230;<\/p>\n<blockquote><p>\nGroup\n<\/p><\/blockquote>\n<p> &#8230; think, opens us up to the first opportunity to filter Message Board data &#8230;<\/p>\n<p><code><br \/>\neach group will only see the messaging from others in their group that clicked\/tapped the email\/SMS body link of relevance to them, sent by the first member of the comma separated group list, that being the originator<br \/>\n<\/code><\/p>\n<p>Under the umbrella term &#8220;privacy&#8221;, these changes improve what we can offer users in terms of &#8220;privacy&#8221; using the Message Board web application, but we think there will be more to come.<\/p>\n<p>Both serverside and clientside code needed to change to facilitate this, as you can peruse below &#8230;<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php--GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php--GETME\" rel=\"noopener\">prepend.php<\/a> PHP (ie. serverside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js-GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js-GETME\" rel=\"noopener\">talk_about_it.js<\/a> external Javascript (ie. clientside) &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php--GETME\" rel=\"noopener\">a changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php--GETME\" rel=\"noopener\">talk_about_it.php<\/a> PHP <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board<\/a> web application you can <a href='#mytable'>try below<\/a><\/li>\n<\/ul>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-group-privacy-tutorial\/' rel=\"noopener\">Message Board One Liners Group Privacy Tutorial<\/a>.<\/p-->\n<hr>\n<p id='mbolgit'>Previous relevant <a target=\"_blank\" title='Message Board One Liners Group Invitations Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-group-invitations-tutorial\/' rel=\"noopener\">Message Board One Liners Group Invitations Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Message Board One Liners Group Invitations Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it_js.gif\" title=\"Message Board One Liners Group Invitations Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Message Board One Liners Group Invitations Tutorial<\/p><\/div>\n<p>Improving on the Message Board start we had with yesterday&#8217;s <a title='Message Board One Liners Primer Tutorial' href='#mbolpt'>Message Board One Liners Primer Tutorial<\/a>, today we introduce &#8230;<\/p>\n<ol>\n<li>the idea of a Message Board &#8230;<br \/>\n<blockquote><p>\nGroup\n<\/p><\/blockquote>\n<p> &#8230; allied to &#8230;<\/li>\n<li>how an email and\/or SMS invitation from &#8230;<br \/>\n<code><br \/>\nthe originator + the rest of the group = the group<br \/>\n<\/code>\n<\/li>\n<\/ol>\n<p> &#8230; and our &#8220;blurb&#8221; on that user related textbox <font color=blue>now reads<\/font> &#8230;<\/p>\n<blockquote><p>\nName you will see on board above <font color=blue>where a comma separated list like RJM[rmetcalfe15@gmail.com],RMet[rmetcalfe@rjmprogramming.com.au] would invite RMet to Message Board via that email address and flagging that rmetcalfe15@gmail.com would be sending the invitation<\/font>.\n<\/p><\/blockquote>\n<p>Making these optional invitations a possibility asked for extensions to the clientside of our Message Board code, and as such, we decided to write a new &#8230;<\/p>\n<ul>\n<li>&#8220;proof of concept&#8221; <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.js_GETME\" rel=\"noopener\">talk_about_it.js<\/a> external Javascript &#8230; to help out &#8230;<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php-GETME\" rel=\"noopener\">a changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php-GETME\" rel=\"noopener\">talk_about_it.php<\/a> PHP (ie. serverside) <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board<\/a> web application you can <a href='#mytable'>try below<\/a><\/li>\n<\/ul>\n<p>And for the second time, we&#8217;ve made use of email and\/or SMS body sections containing multiple URLs each getting recognised because they are separated by a line feed.  That means we can, there and then, at the <i>email received by the email recipient stage<\/i>, get the recipient to set themselves up in terms of &#8230;<\/p>\n<ol>\n<li>name<\/li>\n<li>contact<\/li>\n<\/ol>\n<p> &#8230; completely, as they click\/tap the relevant email and\/or SMS <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board<\/a> link.  If you are ahead of the curve here, no Message Board filtering of data has happened &#8230; yet?!<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-group-invitations-tutorial\/' rel=\"noopener\">Message Board One Liners Group Invitations Tutorial<\/a>.<\/p-->\n<hr>\n<p id='mbolpt'>Previous relevant <a target=\"_blank\" title='Message Board One Liners Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-primer-tutorial\/' rel=\"noopener\">Message Board One Liners Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Message Board One Liners Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.gif\" title=\"Message Board One Liners Primer Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Message Board One Liners Primer Tutorial<\/p><\/div>\n<p>PHP has &#8230;<\/p>\n<ul>\n<li><a target=\"_blank\" title='PHP include information' href='http:\/\/php.net\/manual\/en\/function.include.php' rel=\"noopener\">include<\/a> &#8216;.\/prepend.php&#8217;; \/\/ &#8230; and\/or &#8230;<\/li>\n<li><a target=\"_blank\" title='PHP require information' href='http:\/\/php.net\/manual\/en\/function.require.php' rel=\"noopener\">require<\/a> &#8216;.\/prepend.php&#8217;; \/\/&#8230; and\/or &#8230;<\/li>\n<li><a target=\"_blank\" title='php.ini directives' href='https:\/\/www.php.net\/manual\/en\/ini.core.php' rel=\"noopener\">php_value auto_prepend_file<\/a> &#8220;prepend.php&#8221;<br \/>\n\/\/ php.ini directive in relevant folder .htaccess &#8230; worked on our local MAMP Apache web server but not up at RJM Programming domain Apache web server<\/li>\n<\/ul>\n<p> &#8230; as ways to prepend PHP (called <i>prepend.php<\/i> into some other PHP), a design we wanted to implement for today&#8217;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php_GETME\" rel=\"noopener\">&#8220;proof of concept&#8221;<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php\" rel=\"noopener\">Message Board One Liners<\/a> helped out by <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/prepend\/prepend.php_GETME\" rel=\"noopener\">prepend.php<\/a> helper, which you can also try below &#8230;<\/p>\n<table id=mytable style=width:100%;>\n<tr>\n<th colspan=2>Message Board<\/th>\n<\/tr>\n<tr>\n<th>User 1<\/th>\n<th>User 2<\/th>\n<\/tr>\n<tr>\n<td>\n<iframe src='\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php' style=\"width:100%;height:1500px;\"><\/iframe>\n<\/td>\n<td>\n<iframe src='\/\/www.rjmprogramming.com.au\/PHP\/prepend\/talk_about_it.php' style=\"width:100%;height:1500px;\"><\/iframe>\n<\/td>\n<\/tr>\n<\/table>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70318' onclick='var dv=document.getElementById(\"d70318\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/include\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70318' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70326' onclick='var dv=document.getElementById(\"d70326\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/external-javascript\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70326' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70337' onclick='var dv=document.getElementById(\"d70337\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/privacy\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70337' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70346' onclick='var dv=document.getElementById(\"d70346\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/colour-coding\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70346' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70355' onclick='var dv=document.getElementById(\"d70355\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/link\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70355' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70360' onclick='var dv=document.getElementById(\"d70360\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/span\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70360' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday&#8217;s Message Board One Liners Div Linking Talents Tutorial effectively set up the competition &#8230; Which is the humblest HTML element type? &#8230; and proposed that the HTML div element was up there. But, around here, we don&#8217;t think so, &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/message-board-one-liners-span-inline-talents-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12,14,37],"tags":[42,84,85,5313,155,212,218,3374,257,5311,281,5309,341,342,354,380,409,431,432,3033,5310,3362,2532,2487,629,652,1643,1807,5312,705,773,2505,932,4151,2976,997,2241,1122,1133,1159,2263,1262,1675,1319,1345],"class_list":["post-70360","post","type-post","status-publish","format-standard","hentry","category-animation","category-elearning","category-event-driven-programming","category-tutorials","tag-htaccess","tag-animation-2","tag-apache","tag-baseline","tag-body","tag-client","tag-code","tag-colour-coding","tag-content","tag-content-filtering","tag-css","tag-data-filter","tag-display","tag-div","tag-dom","tag-email","tag-external-javascript","tag-filter","tag-filtering","tag-flex","tag-fnmatch","tag-hardcoding","tag-include","tag-inline","tag-ip-address","tag-javascript","tag-justification","tag-link","tag-linking","tag-links","tag-message-board","tag-name","tag-php","tag-prepend","tag-privacy","tag-programming","tag-require","tag-server","tag-share","tag-sms","tag-span","tag-textarea","tag-textbox","tag-tutorial","tag-url"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/70360"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=70360"}],"version-history":[{"count":19,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/70360\/revisions"}],"predecessor-version":[{"id":70384,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/70360\/revisions\/70384"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=70360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=70360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=70360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}