REX Tiny templater - мультиязычная панель управления или админка без проблем!

При написании панелей управления или административной части, достаточно много данных для отображения на веб-странице необходимо подгружать и обновлять динамически. Например, используя ajax или websocket. Обычно, загрузка таких данных происходит в формате JSON. После загрузки, может потребоваться объединить эти данные с заранее заданным текстом шаблона для дальнейшего отображения в интерфейсе.
Следующий код шаблонизатора (в несколько строк!) поможет Вам разместить полученные данные максимально просто и даже использовать short-tag от PHP, чтобы Вы могли легко переносить строку без изменений между PHP и Javascript, а также, при необходимости, обрабатывать Javascript как PHP-скрипт.
Код на Javascript:
/*
*   REX Tiny templater v0.0.2, (c)2017, xmoonlight
*/
var rex=/<\?=\$[\S_]+\[(?:[$'"]?)([^\]\s\'\"\$]+)(?:[$'"]?)\]\?>/gi;

function getvars(re,s) {
   var r=[]; while( m = re.exec(s)) r.push(m[1]); return r;
}

function setvars(re,s,a) {
   return s.replace(re,function(r,b){return a[b]});
}
//-------------

str = "Когда <?=$var['m1']?> вышли из <?=$var['m2']?>, погода <?=$var['m3']?>.";
vars={'m1':'мы','m2':'парка','m3':'стала портиться'};

console.log(getvars(rex,str)); //Array[3] => ["m1", "m2", "m3"]
console.log(setvars(rex,str,vars)); //Когда мы вышли из парка, погода стала портиться.

Используя данный шаблонизатор, также, можно решить проблему мультиязычности интерфейса и множество других.

Подписка на новости:

Самые полезные и признанные экспертами публикации в сферах IT-бизнеса и Web-разработки:

Сертификат

Certificate for nickname xmoonlight, is registered to: https://sitecoder.blogspot.com