mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-18 14:33:49 +01:00
- getFData (Php&JS) : Ajout d'une possibilité de découpage de la valeur de remplacement
This commit is contained in:
parent
d63d161a5e
commit
ba78f51681
2 changed files with 90 additions and 15 deletions
|
@ -39,6 +39,7 @@
|
||||||
*/
|
*/
|
||||||
function getFData($format,$data,$meth=NULL) {
|
function getFData($format,$data,$meth=NULL) {
|
||||||
$unique=false;
|
$unique=false;
|
||||||
|
$expr="%{([A-Za-z0-9]+)(\:(-?[0-9])+)?(\:(-?[0-9])+)?}";
|
||||||
if(!is_array($format)) {
|
if(!is_array($format)) {
|
||||||
$format=array($format);
|
$format=array($format);
|
||||||
$unique=true;
|
$unique=true;
|
||||||
|
@ -46,17 +47,42 @@ function getFData($format,$data,$meth=NULL) {
|
||||||
for($i=0;$i<count($format);$i++) {
|
for($i=0;$i<count($format);$i++) {
|
||||||
if(is_array($data)) {
|
if(is_array($data)) {
|
||||||
if ($meth==NULL) {
|
if ($meth==NULL) {
|
||||||
while (ereg("%{([A-Za-z0-9]+)}",$format[$i],$ch)) {
|
while (ereg($expr,$format[$i],$ch)) {
|
||||||
$format[$i]=ereg_replace($ch[0],$data[$ch[1]],$format[$i]);
|
if($ch[3]) {
|
||||||
|
if ($ch[5]) {
|
||||||
|
$s=$ch[3];
|
||||||
|
$l=$ch[5];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$s=0;
|
||||||
|
$l=$ch[3];
|
||||||
|
}
|
||||||
|
$val=substr((string)$data[$ch[1]],$s,$l);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$val=$data[$ch[1]];
|
||||||
|
}
|
||||||
|
$format[$i]=ereg_replace($ch[0],$val,$format[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
while (ereg("%{([A-Za-z0-9]+)}",$format[$i],$ch)) {
|
while (ereg($expr,$format[$i],$ch)) {
|
||||||
if (method_exists($data[$ch[1]],$meth)) {
|
if (method_exists($data[$ch[1]],$meth)) {
|
||||||
$value = $data[$ch[1]] -> $meth();
|
$value = $data[$ch[1]] -> $meth();
|
||||||
if (is_array($value)) {
|
if (is_array($value)) {
|
||||||
$value = $value[0];
|
$value = $value[0];
|
||||||
}
|
}
|
||||||
|
if($ch[3]) {
|
||||||
|
if ($ch[5]) {
|
||||||
|
$s=$ch[3];
|
||||||
|
$l=$ch[5];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$s=0;
|
||||||
|
$l=$ch[3];
|
||||||
|
}
|
||||||
|
$value=substr((string)$value,$s,$l);
|
||||||
|
}
|
||||||
$format[$i]=ereg_replace($ch[0],$value,$format[$i]);
|
$format[$i]=ereg_replace($ch[0],$value,$format[$i]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -68,16 +94,42 @@ function getFData($format,$data,$meth=NULL) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($meth==NULL) {
|
if ($meth==NULL) {
|
||||||
while (ereg("%{([A-Za-z0-9]+)}",$format[$i],$ch))
|
while (ereg($expr,$format[$i],$ch)) {
|
||||||
$format[$i]=ereg_replace($ch[0],$data,$format[$i]);
|
if($ch[3]) {
|
||||||
|
if ($ch[5]) {
|
||||||
|
$s=$ch[3];
|
||||||
|
$l=$ch[5];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
while (ereg("%{([A-Za-z0-9]+)}",$format[$i],$ch)) {
|
$s=0;
|
||||||
|
$l=$ch[3];
|
||||||
|
}
|
||||||
|
$val=substr((string)$data,$s,$l);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$val=$data;
|
||||||
|
}
|
||||||
|
$format[$i]=ereg_replace($ch[0],$val,$format[$i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
while (ereg($expr,$format[$i],$ch)) {
|
||||||
if (method_exists($data,$meth)) {
|
if (method_exists($data,$meth)) {
|
||||||
$value = $data -> $meth($ch[1]);
|
$value = $data -> $meth($ch[1]);
|
||||||
if (is_array($value)) {
|
if (is_array($value)) {
|
||||||
$value = $value[0];
|
$value = $value[0];
|
||||||
}
|
}
|
||||||
|
if($ch[3]) {
|
||||||
|
if ($ch[5]) {
|
||||||
|
$s=$ch[3];
|
||||||
|
$l=$ch[5];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$s=0;
|
||||||
|
$l=$ch[3];
|
||||||
|
}
|
||||||
|
$value=substr((string)$value,$s,$l);
|
||||||
|
}
|
||||||
$format[$i]=ereg_replace($ch[0],$value,$format[$i]);
|
$format[$i]=ereg_replace($ch[0],$value,$format[$i]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -34,17 +34,29 @@ function LSdebug() {
|
||||||
* @retval string La chaine formatée
|
* @retval string La chaine formatée
|
||||||
*/
|
*/
|
||||||
function getFData(format,data,meth) {
|
function getFData(format,data,meth) {
|
||||||
var getMotif = new RegExp('%\{([A-Za-z0-9]+)\}');
|
var getMotif = new RegExp('%\{(([A-Za-z0-9]+)(\:(-?[0-9])+)?(\:(-?[0-9])+)?)\}');
|
||||||
var find=1;
|
var find=1;
|
||||||
|
var val="";
|
||||||
if(($type(data)=='object') || ($type(data)=='array')) {
|
if(($type(data)=='object') || ($type(data)=='array')) {
|
||||||
if ($type(data[meth])!='function') {
|
if ($type(data[meth])!='function') {
|
||||||
while (find) {
|
while (find) {
|
||||||
var ch = getMotif.exec(format);
|
var ch = getMotif.exec(format);
|
||||||
if ($type(ch)) {
|
if ($type(ch)) {
|
||||||
format=format.replace (
|
if($type(ch[4])) {
|
||||||
new RegExp('%\{'+ch[1]+'\}'),
|
if ($type(ch[6])) {
|
||||||
data[ch[1]]
|
var s=ch[4];
|
||||||
);
|
var l=ch[6];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var s=0;
|
||||||
|
var l=ch[4];
|
||||||
|
}
|
||||||
|
var val=data[ch[2]].substr(s,l);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val=data[ch[2]];
|
||||||
|
}
|
||||||
|
format=format.replace(new RegExp('%\{'+ch[1]+'\}'),val);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
find=0;
|
find=0;
|
||||||
|
@ -56,14 +68,25 @@ function getFData(format,data,meth) {
|
||||||
var ch = getMotif.exec(format);
|
var ch = getMotif.exec(format);
|
||||||
if ($type(ch)) {
|
if ($type(ch)) {
|
||||||
try {
|
try {
|
||||||
format=format.replace (
|
val=data[meth](ch[2]);
|
||||||
new RegExp('%\{'+ch[1]+'\}'),
|
|
||||||
data[meth](ch[1])
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($type(ch[4])) {
|
||||||
|
if ($type(ch[6])) {
|
||||||
|
var s=ch[4];
|
||||||
|
var l=ch[6];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var s=0;
|
||||||
|
var l=ch[4];
|
||||||
|
}
|
||||||
|
val=val.substr(s,l);
|
||||||
|
}
|
||||||
|
|
||||||
|
format=format.replace(new RegExp('%\{'+ch[1]+'\}'),val);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
find=0;
|
find=0;
|
||||||
|
|
Loading…
Reference in a new issue