Emoji Borders and Backgrounds Image Text PHP SVG Tutorial
โœ‚๐Ÿƒ๐Ÿพโ€โ™€๏ธ๐Ÿƒ๐Ÿผโ€โ™‚๏ธ
๐Ÿ“–

Emoji Borders and Backgrounds Image Text PHP SVG Tutorial

Emoji Borders and Backgrounds Image Text PHP SVG Tutorial

To add to yesterdayโ€™s Emoji Borders and Backgrounds Image Text Parent Tutorial today it is โ€œPHP toolโ€ work catching up so as to say โ€ฆ

  • emoji border โ€ฆ now with content control via comma separated list of emoji HTML decimal Entity(s) โ€ฆ argumented to PHP tool
  • emoji background โ€ฆ now with content control via comma separated list of emoji HTML decimal Entity(s) โ€ฆ argumented to PHP tool
  • centralized text (in foreground) โ€ฆ now with wording control via HTML span contenteditable=true elements โ€ฆ not yet argumented to PHP tool
    <?php


    if (isset($_GET['text'])) {

    $txt=str_replace("\n","<br>", str_replace('&nbsp;',' ',str_replace('+', ' ', urldecode($_GET['text']))));

    $minus30=($w / 2.0) - strlen(explode('<br>', $txt)[0]) * 3.1;

    $top30=($h / 2.0) + 25 - (sizeof(explode('<br>', $txt)) * 8);

    $lines=explode('<br>', $txt);

    for ($il=0; $il<sizeof($lines); $il++) {

    $textcontent.='<text x="' . $minus30 . '" y="' . $top30 . '">' . $lines[$il] . '</text>';

    $top30+=15;

    }

    } else if (isset($_POST['text'])) {

    $txt=str_replace("\n","<br>", str_replace('&nbsp;',' ',str_replace('+', ' ', urldecode($_POST['text']))));

    $minus30=($w / 2.0) - strlen(explode('<br>', $txt)[0]) * 3.1;

    $top30=($h / 2.0) + 25 - (sizeof(explode('<br>', $txt)) * 8);

    $lines=explode('<br>', $txt);

    for ($il=0; $il<sizeof($lines); $il++) {

    $textcontent.='<text x="' . $minus30 . '" y="' . $top30 . '">' . $lines[$il] . '</text>';

    $top30+=15;

    }

    }


    ?>
  • centralized image (in foreground) โ€ฆ including some width and height control โ€ฆ argumented to PHP tool

โ€ฆ via a new โ€œtextโ€ argument arranged for the PHP and in readiness for some more aesthetic improvements in the display side of things with our emoji borders and backgrounds changedunderlying inline_svgโšซphp PHP tool liveโœ‚run web application (or in iframe).



Previous relevant Emoji Borders and Backgrounds Image Text Parent Tutorial is shown below.

Emoji Borders and Backgrounds Image Text Parent Tutorial

Emoji Borders and Backgrounds Image Text Parent Tutorial

Todayโ€™s work continues on from yesterdayโ€™s Emoji Borders and Backgrounds for Image Tutorial combining both โ€ฆ

โ€ฆ partnership during testing. Our final aim is to make the โ€œunderlying PHPโ€ a proper standalone tool, but โ€œthatโ€™s a ways offโ€, as they say. Why this extra level of complication? Itโ€™s easier to โ€ฆ

  • see
  • test
  • debug (via web browser web inspectors)

โ€ฆ the functionalities that would be โ€œcoolโ€ at the HTML/Javascript/CSS parent side, and then work out how to implement similar functionality, as possible, in SVG, and if possible, we should be able to pass arguments over to the โ€œPHP toolโ€ to eventually code it to be standalone to help other โ€œparenting arrangementsโ€.

And so, today, we โ€œget functionalโ€ the combination of parental control through to PHP SVG child display โ€ฆ

Optionally enter an image URL ( as needs be, suffix by &width=[preferredWidth]&height=[preferredHeight] and/or &background=y ) and/or # prefixed comma separated list of emoji HTML decimal Entity(s) ( eg. #127462,127465 ) ? Cancel if it is wording you want to change to the left there.

  • emoji border โ€ฆ now with content control via comma separated list of emoji HTML decimal Entity(s) โ€ฆ argumented to PHP tool
  • emoji background โ€ฆ now with content control via comma separated list of emoji HTML decimal Entity(s) โ€ฆ argumented to PHP tool
  • centralized text (in foreground) โ€ฆ now with wording control via HTML span contenteditable=true elements โ€ฆ not yet argumented to PHP tool
  • centralized image (in foreground) โ€ฆ including some width and height control โ€ฆ argumented to PHP tool



function ask(sois) {

var huhi=prompt('Optionally enter an image URL ( as needs be, suffix by &width=[preferredWidth]&height=[preferredHeight] and/or &background=y ) and/or # prefixed comma separated list of emoji HTML decimal Entity(s) ( eg. #127462,127465 ) ? Cancel if it is wording you want to change to the left there.','');

if (huhi == null) { huhi=''; }

if (huhi.trim() != '') {

if (document.URL.indexOf('rjmprogramming.com.au') == -1 && sois.title.indexOf('rjmprogramming.com.au') != -1) {

sois.title=document.URL.substring(0,8) + document.URL.substring(8).split('/')[0] + sois.title.split('rjmprogramming.com.au')[1];

}

if (huhi.indexOf('#') != -1) {

var huhis=huhi.split('#')[1];

for (var ihuhis=0; ihuhis<huhis.length; ihuhis++) {

if (eval('' + ihuhis) < eval('' + huhis.length)) {

if (huhis.substring(ihuhis).substring(0,1).replace('0','').replace('1','').replace('2','').replace('3','').replace('4','').replace('5','').replace('6','').replace('7','').replace('8','').replace('9','').replace(',','') != '') {

huhi=huhi.replace('#' + huhis.split(huhis.substring(ihuhis).substring(0,1))[0], '');

huhis=huhis.split(huhis.substring(ihuhis).substring(0,1))[0];

}

}

}

if (huhis == '') {

if (sois.title.indexOf('?insvg=') != -1) {

sois.title=sois.title.replace('?insvg=' + sois.title.split('?insvg=')[1].split('&')[0].split('#')[0],'');

} else if (sois.title.indexOf('&insvg=') != -1) {

sois.title=sois.title.replace('&insvg=' + sois.title.split('&insvg=')[1].split('&')[0].split('#')[0],'');

}

} else if (sois.title.indexOf('?insvg=') != -1) {

sois.title=sois.title.replace('?insvg=' + sois.title.split('?insvg=')[1].split('&')[0].split('#')[0],'?insvg=' + encodeURIComponent(huhis));

} else if (sois.title.indexOf('&insvg=') != -1) {

sois.title=sois.title.replace('&insvg=' + sois.title.split('&insvg=')[1].split('&')[0].split('#')[0],'&insvg=' + encodeURIComponent(huhis));

} else if (sois.title.indexOf('?') != -1) {

sois.title=sois.title.replace('?','?insvg=' + encodeURIComponent(huhis) + '&');

} else {

sois.title=sois.title.split('#')[0] + '?insvg=' + encodeURIComponent(huhis);

}

}

if (huhi.split('&')[0].split('#')[0].trim() != '') {

if (sois.title.indexOf('?image=') != -1) {

sois.title=sois.title.replace('?image=' + sois.title.split('?image=')[1].split('&')[0].split('#')[0],'');

} else if (sois.title.indexOf('&image=') != -1) {

sois.title=sois.title.replace('&image=' + sois.title.split('&image=')[1].split('&')[0].split('#')[0],'');

}

sois.title+='&image=' + encodeURIComponent(huhi.split('&')[0]) + huhi.replace(huhi.split('&')[0],'');

} else if (sois.title.indexOf('?image=') != -1) {

sois.title=sois.title.replace('?image=' + sois.title.split('?image=')[1].split('&')[0].split('#')[0],'');

} else if (sois.title.indexOf('&image=') != -1) {

sois.title=sois.title.replace('&image=' + sois.title.split('&image=')[1].split('&')[0].split('#')[0],'');

}

document.getElementById(sois.id.replace('span','if')).src=sois.title; //+='&image=' + encodeURIComponent(huhi.split('&')[0]) + huhi.replace(huhi.split('&')[0],'');

}

}




function snapshot(sio) {

lastih=sio.innerHTML;

lastio=-1;

for (var iuh=0; iuh<cds.length; iuh++) {

if (lastih == cds[iuh]) { lastio=iuh; } else if (sio.innerHTML.indexOf(' of ') != -1) { if (lastih.split(' of ')[0] == cds[iuh].split(' of ')[0]) { lastio=iuh; } }

}

}




function newwords(sio) {

if (lastih != sio.innerHTML && lastio >= 0) {

cds[lastio]=sio.innerHTML.replace(/\ \;/g,' ').replace(/\<br\>/g,String.fromCharCode(10));

var documentURL=document.URL.split('#')[0].split('?arr' + lastio + '=')[0].split('&arr' + lastio + '=')[0];

location.href=(documentURL + '&arr' + lastio + '=' + encodeURIComponent(cds[lastio])).replace('.html&','.html?').replace('.htm&','.htm?'); // fancystuff();

}

}


Previous relevant Emoji Borders and Backgrounds Context Tutorial is shown below.

Emoji Borders and Backgrounds Context Tutorial

Emoji Borders and Backgrounds Context Tutorial

Itโ€™s all fine and good creating the Emoji Borders and Backgrounds of yesterdayโ€™s Emoji Borders and Backgrounds Primer Tutorial, but itโ€™s the context of their use that we are starting to take an interest in with todayโ€™s โ€ฆ

  1. take yesterdayโ€™s table as a starting bit to our โ€ฆ
  2. โ€œmaking use ofโ€ โ€œproof of conceptโ€ emoji_border_backgroundโšซhtml liveโœ‚run link for you to contextualize and make use of those tableโ€™s iframe contents from yesterday โ€ฆ

โ€ฆ as we figure out, perhaps, some better โ€œtool like genericsโ€ here. Weโ€™ll see (we hope)!

But, so far, how would we assess the approach, here? Well, what we had to do today reminded us a lot of what we do here, often, at this blog, when we talk about โ€œoverlayโ€ webpage design approaches. CSS position:absolute and opacity and Javascript [element].getBoundingClientRect() all made guest appearances!


Previous relevant Emoji Borders and Backgrounds Primer Tutorial is shown below.

Emoji Borders and Backgrounds Primer Tutorial

Emoji Borders and Backgrounds Primer Tutorial

Time for a new project into the new year. Itโ€™s an โ€œold chestnutโ€ project, for us. Being able to handle โ€ฆ

  • borders made up of emoji images (in the form of โ€œimage/svg+xmlโ€ mimetype data)
  • backgrounds made up of emoji images (in the form of โ€œimage/svg+xmlโ€ mimetype data)

โ€ฆ via โ€œproof of conceptโ€ (at least for our โ€œPrimerโ€ tutorial start) inline_svgโšซphpโ€˜s singleโœ‚violin emoji or โ€ฆ

Description Iframe
Line of Doves of Peace Emojis
Border of Train Emojis
Background Flag of Andorra Emojis

Cute, huh?!

If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.

This entry was posted in eLearning, Event-Driven Programming, Tutorials and tagged , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *