// JavaScript Document C:\iC\plugins\forum-\forum.js.php
try{
js.pageFileSource=js.jspageFileSourceForum;//'/iC/plugins/forum-/forum';
//3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//module.exports=
function serialize(mixedValue){fct="fct:jsb:tool:serialize(mixedValue)";
// discuss at: https://locutus.io/php/serialize/
// original by: Arpad Ray (mailto:arpad@php.net)
// improved by: Dino
// improved by: Le Torbi (https://www.letorbi.de/)
// improved by: Kevin van Zonneveld (https://kvz.io/)
// bugfixed by: Andrej Pavlovic
// bugfixed by: Garagoth
// bugfixed by: Russell Walker (https://www.nbill.co.uk/)
// bugfixed by: Jamie Beck (https://www.terabit.ca/)
// bugfixed by: Kevin van Zonneveld (https://kvz.io/)
// bugfixed by: Ben (https://benblume.co.uk/)
// bugfixed by: Codestar (https://codestarlive.com/)
// bugfixed by: idjem (https://github.com/idjem)
// input by: DtTvB (https://dt.in.th/2008-09-16.string-length-in-bytes.html)
// input by: Martin (https://www.erlenwiese.de/)
// note 1: We feel the main purpose of this function should be to ease
// note 1: the transport of data between php & js
// note 1: Aiming for PHP-compatibility, we have to translate objects to arrays
// example 1: serialize(['Kevin', 'van', 'Zonneveld'])
// returns 1: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}'
// example 2: serialize({firstName: 'Kevin', midName: 'van'})
// returns 2: 'a:2:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";}'
// example 3: serialize( {'ü': 'ü', '四': '四', '': ''})
// returns 3: 'a:3:{s:2:"ü";s:2:"ü";s:3:"四";s:3:"四";s:4:"";s:4:"";}'
let val, key, okey;
let ktype='';
let vals='';
let count=0;
const _utf8Size=function (str) {
return ~-encodeURI(str).split(/%..|./).length;
}
const _getType=function (inp) {
let match;
let key;
let cons;
let types;
let type=typeof inp;
if (type === 'object' && !inp) {
return 'null';
}
if (type === 'object') {
if (!inp.constructor) {
return 'object';
}
cons=inp.constructor.toString();
match=cons.match(/(\w+)\(/);
if (match) {
cons=match[1].toLowerCase();
}
types=new Array('boolean', 'number', 'string', 'array');
for (key in types) {
if (cons === types[key]) {
type=types[key];
break;
}
}
}
return type;
}
const type=_getType(mixedValue)
switch (type) {
case 'function':
val='';
break;
case 'boolean':
val='b:' + (mixedValue ? '1' : '0');
break;
case 'number':
val=(Math.round(mixedValue) === mixedValue ? 'i' : 'd') + ':' + mixedValue;
break;
case 'string':
val='s:' + _utf8Size(mixedValue) + ':"' + mixedValue + '"';
break;
case 'array':
case 'object':
val='a';
/*
if (type === 'object') {
var objname=mixedValue.constructor.toString().match(/(\w+)\(\)/);
if (objname === undefined) {
return;
}
objname[1]=serialize(objname[1]);
val='O' + objname[1].substring(1, objname[1].length - 1);
}
*/
for (key in mixedValue) {
if (mixedValue.hasOwnProperty(key)) {
ktype=_getType(mixedValue[key]);
if (ktype === 'function') {
continue;
}
okey=(key.match(/^[0-9]+$/) ? parseInt(key, 10) : key);
vals += serialize(okey) + serialize(mixedValue[key]);
count++;
}
}
val += ':' + count + ':{' + vals + '}';
break;
case 'undefined':
default:
// Fall-through
// if the JS object has a property which contains a null value,
// the string cannot be unserialized by PHP
val='N';
break;
}
if (type !== 'object' && type !== 'array') {
val += ';';
}
return val;
}//!\end:function serialize(mixedValue){fct="fct:jsb:tool:serialize(mixedValue)";
//3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
function jsc_XgetjsonParseResponse(){fct="fct:jsb:aX:jsc_XgetjsonParseResponse()";
js.Txtaction='récupérer les datas en réponse';
js.line=125;jsfct_dvlptAlert(['!',l2p,h2p
,a2p+js.Txtaction,'xdr.responseText= '+xdr.responseText,'js.iData.userSite= '+js.iData.userSite
]);
code=xdr.responseText;
return(code);
}//!\end:function jsc_XgetjsonParseResponse(){fct="fct:jsb:aX:jsc_XgetjsonParseResponse()";
//3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
function sendDataPOST(datas,linkAjax){fct="fct:jsb:aX:sendDataPOST(datas,linkAjax)";
js.Txtaction="search datas with aX";let results;xdr=getXDomainRequest();
//-----
xdr.onload=function(datas,results,step){
js.line=136;jsfct_dvlptAlert(['!',l2p,h2p,a2p+js.Txtaction,'xdr.responseText= '+xdr.responseText
]);
let jsonResponse=JSON.parse(xdr.responseText);//JSON.parse(xdr.responseText);
js.line=140;jsfct_dvlptAlert(['!',l2p,h2p
,a2p+js.Txtaction,'jsonResponse= '+jsonResponse,'jsonResponse.keywords= '+jsonResponse.keywords
,'datas.keywords= '+datas.keywords
]);
results={"success":(datas.keywords==jsonResponse.keywords),"datas":jsonResponse};
};
//-----
js.oData=formatoData(datas,linkAjax,js.synchro,xdr);
xdr.open("POST",linkAjax,js.synchro);// false permet d'attendre que results vers return(results);
xdr.send(js.oData);
return(results);
//-----
/*
let js.oData=new FormData();
//js.oData.append("oData", datas);//.serialize());
Object.keys(datas).forEach(key => {
//console.log(key, obj[key]);
js.oData.append(key, datas[key]);
});
//oData.append("datas1", 1);
//oData.append("datas2", 2);
// oData.append("datas", oData.serialize());
xdr.open("POST",linkAjax,false);// false permet d'attendre que results vers return(results);
// oData.append("datas", oData.serialize());
// xdr.open("GET", linkAjax+datas);
xdr.send(oData);
// xdr.send({"oData":serialize(oData)});
return(results);
*/
}//!\end:function sendDataPOST(datas,linkAjax){fct="fct:jsb:aX:sendDataPOST(datas,linkAjax)";
//3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
}catch(e){fct="try/catch:jsb:error";js.line=376;jsfct_dvlptAlert(['',l2p,h2p,ce2p+e]);}
//===========================================================================
//===========================================================================
//===========================================================================
//===========================================================================
if(0){
function xxxxsendReadyPOST(datas,linkAjax,synchro,xdr){//with success
// https://byby.dev/js-format-date
// https://bobbyhadz.com/blog/javascript-format-date-yyyy-mm-dd-hh-mm-ss
if(!xdr)xdr = getXDomainRequest();
///let synchro=false;
let results;
let sep='';
let d0=formatTimeMMSS(new Date(),sep);
//-----
xdr.onload = function(datas,results,step) {// avec
let jsonParseResponse=jsc_XgetjsonParseResponse(xdr,datas);
if(0){
js.line=289;jsfct_dvlptAlert('line= forum.js.php,'+js.line+'\n'+'datas= '+datas+'\n'+'xdr.responseText= '+convertedCode+'\n'+'jsonParseResponse= '+jsonParseResponse.success);
}
results=jsonParseResponse;
let d1=d0;
while (d1-d0<3) {//inférieur à 3s
d1=formatTimeMMSS(new Date(),sep);
if(1&&(d1-d0)){
// JSON.parse(array) JSON.stringify(value)
jsonParseResponse.success=(d1-d0);
if(1){
js.line=299;jsfct_dvlptAlert('line= forum.js.php,'+js.line+'\n'+'(d1-d0)= '+(d1-d0)+'\n'+'jsonResponse.success= '+
jsonParseResponse.success//+'\n'+'jsonStringifyResponse= '+jsonStringifyResponse
);
}
results=jsonParseResponse;
}
}
step=1;
}//!\js.end:xdr.onload = function() {
//-----
//js.iData=datas;//formatoData(datas,linkAjax,synchro,xdr);
xdr.open("POST",linkAjax,synchro);// false permet d'attendre que results vers return(results);
xdr.send(datas);
//-----
if(step)return(results);
//-----
if(0){
js.line=315;jsfct_dvlptAlert('line= forum.js.php,'+js.line+'\n'+'datas= '+datas+'\n'+'Object.valuess(datas)= '+Object.values(datas));
}
xdr.open("POST",linkAjax,synchro);// synchro=false permet d'ATTENDRE que results vers return(results);
xdr.send(datas);//js.iData);
return(results);//!\obligatoire:
// js.iData.append("datas", iData.serialize());
if(0){
datas={
success:0
,firstName: 'Kevin'
, midName: 'van'
,cni:'a:5:{i:0;s:17:"Michel Boussekeyt";i:1;s:23:"3 rue Victor Schoelcher";i:2;s:13:"59790 Ronchin";i:3;s:12:"+33781391043";i:4;s:16:"fatima@gmail.com";}'
};
}
if(0){
js.line=330;jsfct_dvlptAlert('line= forum.js.php,'+js.line+'\n'+'datas= '+datas+'\n'+'Object.valuess(datas)= '+Object.values(datas));
}
//js.iData=datas;
// xdr.open("GET", linkAjax+datas);
//if(xdr.responseText!=='on'){
//x=serialize(xdr.responseText);
//alert('line= '+'244'+'\n'+'x= '+x);
//var_dump(x);
/*
a:5:{i:0;s:17:"Michel Boussekeyt";i:1;s:23:"3 rue Victor Schoelcher";i:2;s:13:"59790 Ronchin";i:3;s:12:"+33781391043";i:4;s:16:"fatima@gmail.com";}
*/
//document.write("Serialized the above data ; " +'
');
//
//y=unserialize(x);
//document.write('
'+"Unserialize the above data and go back to original array : " +'
');
//var_dump(y);
// C:\atelier\sommaire+content\0\js\indexTools-THESEA.js
// convertedCode=decodeURI(code).replace(/\\"/gi,""); //c corrige la chaîne code envoyée par json_encode
// convertedCode=JSON.parse(convertedCode); //c transforme la chaîne convertedCode en modèle $_POST dans JS
}//!\jsc:end:ajax:function sendDataPOST(datas,linkAjax) {
//3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
function xxxxsendReadyPOST0(datas,linkAjax){//with success
// https://byby.dev/js-format-date
// https://bobbyhadz.com/blog/javascript-format-date-yyyy-mm-dd-hh-mm-ss
let xdr = getXDomainRequest();
let synchro=false,results;
let d0=formatTimeMMSS(new Date());
let step;
/*
d0=[
padTo2Digits(d0.getHours()),
padTo2Digits(d0.getMinutes()),
padTo2Digits(d0.getSeconds()),
].join('');//.join(':');
*/
js.line=372;jsfct_dvlptAlert('line= forum.js.php,'+js.line+'\n'+'d0= '+'\n'+d0+'xdr= '+'\n'+xdr);
xdr.onload = function(datas,results,step) {// avec
js.line=375;jsfct_dvlptAlert('line= forum.js.php,'+js.line+'\n'+xdr.responseText);
//let jsonResponse=JSON.parse(xdr.responseText);//JSON.parse(xdr.responseText);
let d1=d0;
results={"success":0};
while (d1-d0<5) {//inférieur à 5s
d1=formatTimeMMSS(new Date());
if(jsonResponse.success){
// results={"success":(datas.keywords==jsonResponse.keywords),"datas":jsonResponse};
results={"success":1,"datas":"toto"};
}
}
results={"success":1,"datas":"toto"};
step=1;
}
js.oData=formatoData(datas,linkAjax,synchro,xdr);
xdr.open("POST",linkAjax,synchro);// false permet d'attendre que results vers return(results);
// oData.append("datas", oData.serialize());
// xdr.open("GET", linkAjax+datas);
xdr.send(js.oData);
if(step)return(results);
//let d1=formatTimeMMSS(date)new Date());
// alert('jsonResponse'+'\n'+jsonResponse+'\n'+jsonResponse.keywords+'\n'+datas.keywords);
//results={"success":(datas.keywords==jsonResponse.keywords),"datas":jsonResponse};
// }
/*
/// xdr.open("GET", "http://www.foxycode.net/dev/ajax/XDomain_1.php");
//var line='?essai=ok'; datas
/// xdr.open("GET", "http://www.pooletude.com/iCloud/systemboost/scripts/sendmail.php"+line);
/// xdr.open("GET", "http://www.pooletude.com/iCloud/systemboost/scripts/sendmail.php"+line);
//datas={"oData":serialize(datas)};
datas='{'+serialize(datas)+'}';
datas={"oData":datas};
alert(datas);
let oData=new FormData();
//oData.append("oData", datas);//.serialize());
//oData.append("datas0", datas);//.serialize());
// https://masteringjs.io/tutorials/fundamentals/foreach-key-value
Object.keys(datas).forEach(key => {
//console.log(key, obj[key]);
oData.append(key, datas[key]);
});
//oData.append("datas1", 1);
//oData.append("datas2", 2);
// oData.append("datas", oData.serialize());
xdr.open("POST",linkAjax,synchro);// synchro=false permet d'ATTENDRE que results vers return(results);
// oData.append("datas", oData.serialize());
// xdr.open("GET", linkAjax+datas);
xdr.send(oData);
// xdr.send({"oData":serialize(oData)});
return(results);
*/
}//!\js.end:function sendDataPOST(datas,linkAjax) {
}
//-----
/*
js.line=138;jsfct_dvlptAlert(['!',l2p+js.line,h2p+fct
,'js.Txtaction= '+js.Txtaction,'code= '+code
,'Object.keys(convertedCode)= '+Object.keys(convertedCode),'convertedCode.iData= '+convertedCode.iData
]);// formthis.idSuccessHx.name="idSuccessHx"
//-----
convertedCode=decodeURI(code).replace(/\\"/gi,""); //c corrige la chaîne code envoyée par json_encode
convertedCode=JSON.parse(convertedCode); //c transforme la chaîne convertedCode en modèle $_POST dans JS
// if(iData){convertedCode=Object.assign(iData,convertedCode);}
//-----
return(convertedCode);
*/