matches:Array
(
[0] => Array
(
[0] => CONST_GOOGLE_MAPS_KEY
[1] => CONST_GOOGLE_MAPS_KEY
[2] => KEY
)
[1] => Array
(
[0] => CONST_API_EDR_USERNAME
[1] => CONST_API_EDR_USERNAME
[2] => USERNAME
)
[2] => Array
(
[0] => CONST_API_EDR_PASSWORD
[1] => CONST_API_EDR_PASSWORD
[2] => PASSWORD
)
[3] => Array
(
[0] => CONST_TEST_USERNAME
[1] => CONST_TEST_USERNAME
[2] => USERNAME
)
[4] => Array
(
[0] => CONST_GOOGLE_MAPS_KEY
[1] => CONST_GOOGLE_MAPS_KEY
[2] => KEY
)
[5] => Array
(
[0] => CONST_SMTP_USER_NAME
[1] => CONST_SMTP_USER_NAME
[2] => USER
)
[6] => Array
(
[0] => CONST_SMTP_PASSWORD
[1] => CONST_SMTP_PASSWORD
[2] => PASSWORD
)
[7] => Array
(
[0] => CONST_SMTP_USER_NAME2
[1] => CONST_SMTP_USER_NAME2
[2] => USER
)
[8] => Array
(
[0] => CONST_SMTP_PASSWORD2
[1] => CONST_SMTP_PASSWORD2
[2] => PASSWORD
)
[9] => Array
(
[0] => CONST_SMTP_USER_NAME_SG
[1] => CONST_SMTP_USER_NAME_SG
[2] => USER
)
[10] => Array
(
[0] => CONST_SMTP_PASSWORD_SG
[1] => CONST_SMTP_PASSWORD_SG
[2] => PASSWORD
)
[11] => Array
(
[0] => CONST_MESSAGES_IMAP_SENDER_USER
[1] => CONST_MESSAGES_IMAP_SENDER_USER
[2] => USER
)
[12] => Array
(
[0] => CONST_MESSAGES_IMAP_USER_NAME
[1] => CONST_MESSAGES_IMAP_USER_NAME
[2] => USER
)
[13] => Array
(
[0] => CONST_MESSAGES_IMAP_PASSWORD
[1] => CONST_MESSAGES_IMAP_PASSWORD
[2] => PASSWORD
)
[14] => Array
(
[0] => CONST_API_EDR_USERNAME
[1] => CONST_API_EDR_USERNAME
[2] => USERNAME
)
[15] => Array
(
[0] => CONST_API_EDR_PASSWORD
[1] => CONST_API_EDR_PASSWORD
[2] => PASSWORD
)
[16] => Array
(
[0] => CONST_TEST_USERNAME
[1] => CONST_TEST_USERNAME
[2] => USERNAME
)
[17] => Array
(
[0] => CONST_TEST_ADMIN_COMPANY_USER_ID
[1] => CONST_TEST_ADMIN_COMPANY_USER_ID
[2] => USER
)
[18] => Array
(
[0] => CONST_USERCONTENT_ROOT
[1] => CONST_USERCONTENT_ROOT
[2] => USER
)
[19] => Array
(
[0] => CONST_DEFAULT_KEYWORD
[1] => CONST_DEFAULT_KEYWORD
[2] => KEY
)
[20] => Array
(
[0] => CONST_AUTHOR
[1] => CONST_AUTHOR
[2] => AUTH
)
[21] => Array
(
[0] => CONST_DEFAULT_KEYWORDS
[1] => CONST_DEFAULT_KEYWORDS
[2] => KEY
)
[22] => Array
(
[0] => CONST_ACCESS_USER
[1] => CONST_ACCESS_USER
[2] => USER
)
[23] => Array
(
[0] => CONST_PRO6PP_AUTH_KEY
[1] => CONST_PRO6PP_AUTH_KEY
[2] => KEY
)
[24] => Array
(
[0] => CONST_PRO6PP_AUTH_KEY
[1] => CONST_PRO6PP_AUTH_KEY
[2] => KEY
)
[25] => Array
(
[0] => CONST_ME_KEY
[1] => CONST_ME_KEY
[2] => KEY
)
[26] => Array
(
[0] => PASSWORD
[1] => PASSWORD
[2] => PASSWORD
)
[27] => Array
(
[0] => PASS
[1] => PASS
[2] => PASS
)
[28] => Array
(
[0] => AUTH
[1] => AUTH
[2] => AUTH
)
[29] => Array
(
[0] => KEY
[1] => KEY
[2] => KEY
)
[30] => Array
(
[0] => SECRET
[1] => SECRET
[2] => SECRET
)
[31] => Array
(
[0] => TOKEN
[1] => TOKEN
[2] => TOKEN
)
[32] => Array
(
[0] => USERNAME
[1] => USERNAME
[2] => USERNAME
)
[33] => Array
(
[0] => USER
[1] => USER
[2] => USER
)
)
$value) {
if (!defined($constName) || constant($constName) === '') {
define($constName, $value);
}
}
/**
* Allowed direct app requests
*
* These requests are allowed to be called directly on app.verhuurtbeter.nl
* others will be redirected to the corporate site.
*/
$allowedAppRequests = array(
'/company-signup',
'/company-thankyou',
);
//Example array('nl', 'en');
$supportedLanguages = array('nl', 'en');
//Example array('nl' => 'nl_NL','en' => 'en_GB')
$languageLocals = array('nl' => 'nl_NL');
$captchaStrings = array('no captcha strings specified');
// Setup the session with the variables
/*
*/
session_name("vb_session");
session_set_cookie_params([
'lifetime' => 0,
'path' => '/',
'domain' => substr($_SERVER['SERVER_NAME'], strpos($_SERVER['SERVER_NAME'], "."), 100),
'secure' => '',
'httponly' => '',
'samesite' => 'Lax'
]);
session_cache_expire(CONST_SESSION_LIFETIME);
ini_set("session.gx_maxlifetime", 60 * CONST_SESSION_LIFETIME);
ini_set("session.cache_expire", CONST_SESSION_LIFETIME);
header('Cache-control: public');
session_cache_limiter('private_no_expire, must-revalidate');
session_name(CONST_SESSION_NAME);
#print_r(session_get_cookie_params());
if(session_id() == ''){
@session_start();
set_language_params();
#print_r(session_get_cookie_params());
#print_r($_SESSION);
#$GLOBALS['_LANG'] = get_language();
#echo $GLOBALS['_LANG'];
}
#echo session_id();
}
function translatePage($content,$speclang=null,$data=null,$tc=1) {
global $database;
#echo "---> START translatePage", PHP_EOL;
#showLoad();
#return $content;
if (empty($GLOBALS['_LANG']) && empty($speclang)) {
$GLOBALS['_LANG'] = get_language();
}
#print_r($data['subscription']);
$debug = false;
$lang = $GLOBALS['_LANG'];
if (is_array($lang)) error_log(print_r($GLOBALS['_LANG'],true));
#$lang = get_language();
if ($speclang) $lang = $speclang;
if ($lang=="nederlands") $lang = "nl";
$tbl_translate = "vb_translate";
#echo $GLOBALS['_LANG'];
$f1="";$f2="";$f3="";$f4="";
$ip = $_SERVER['REMOTE_ADDR'];
if ($ip == "24.132.250.114b") $debug = true;
if ($debug) {
$f1 = "{".$lang.":"; $f2 = "}";
$f3 = "{"; $f4 = "}";
}
if (isset($_SESSION['active_company_id']) && !empty($_SESSION['active_company_id'])) {
$company = Company::instance()->getActiveCompany($_SESSION['active_company_id']);
} else {
$company = Company::instance()->getActiveCompany();
}
#echo $company;
#print_r($company);
#echo $company['subdomain'].".".CONST_BASE_DOMAIN;
#print_r($_SESSION);
#echo $mesUrl;
#echo "---START---";
#echo $content;
#echo "---END---";
#exit;
#return $content;
if (preg_match_all("/_\(\'(_\(\'(.*?)\'\))'\)/i", $content, $matches)) {
#print_r($matches);
foreach($matches[0] as $key => $match) {
#echo "match=".$match."\n";
#echo "replace=".$matches[1][$key]."\n";
#echo "match=".substr($match,3);
$content = str_replace($match, $matches[1][$key], $content);
}
}
if (preg_match_all("/_\(\'(((?!_\(\').)*?)\'\)/i", $content, $matches)) {
#print_r($matches);
}
#return $content;
$searchterms = array();
foreach($matches[1] as $key => $match) {
$match = preg_replace("/^(textline|text|shtml|html):/","",$match);
if (preg_match_all("/_\[\'(((?!\'\]).)*)\'\]/U", $match, $matches2)) {
foreach($matches2[0] as $key2 => $match2) {
$match = str_replace($match2,"%s",$match);
}
}
/*
$c=0;
while (preg_match("/(.*)_\[\'(.*?)\'\](.*)/i", $match, $matches2) && $c<100) {
$match = $matches2[1]."%s".$matches2[3];
$c++;
}
*/
array_push($searchterms, $database->escape($match));
}
#print_r($searchterms);
#echo implode("','", $searchterms);
#echo implode("','",array_map($database->escape, $matches[1]));
# print_r($database->escape(implode("','",$matches[1])));
$query = "SELECT * FROM $tbl_translate WHERE status='online'";
#$query .= sprintf(" AND term IN ('%s')", implode("','",array_map($database->escape, $matches[1])));
$query .= sprintf(" AND term IN ('%s')", implode("','", $searchterms));
$query .= sprintf(" AND site IN ('','%s')", $company['subdomain']);
$query .= " ORDER BY site='', position, term, FIELD(ctype, 'textline', 'text', 'shtml', 'html'), createdate";
#echo $query;
$result = $database->query($query);
$rows = $result->fetchAll();
$lastkey = "";
foreach ($rows as $row) {
$key = $row['term'];
if ($key==$lastkey) continue;
$lastkey = $key;
#if (is_array($lang)) error_log(print_r(get_language(),true));
#if (!$val) $val = $row['t_nl'];
$val = "";
if (!empty($row['t_'.$lang])) $val = $row['t_'.$lang];
if (!$val) $val = $key;
if ($val=="---") $val = "";
if (preg_match("|^Profiel - |",$val)) $val = "";
$val_nl = "";
if (!empty($row['t_nl'])) $val_nl = $row['t_nl'];
if (!$val_nl) $val_nl = $key;
$val_en = "";
if (!empty($row['t_en'])) $val_en = $row['t_en'];
if (!$val_en) $val_en = $key;
$val = preg_replace("/\[MAKELAAR\]/i",$company['name'],$val);
$val = str_replace("[BROKER]",$company['name'],$val);
$val = str_replace("[EMAIL]",get_session_var("reg_email"),$val);
if (!strpos($val, "[INSCHRIJFGELD]") === false && !$company['price']) $val="";
$val = str_replace("[INSCHRIJFGELD]",str_replace(",00",",-",sprintf("€ %.0f,%02d",$company['price']/100,$company['price']%100)),$val);
$val = str_replace("[INSCHRIJFBEDRAG]",str_replace(",00","",sprintf("%.0f,%02d",$company['price']/100,$company['price']%100)),$val);
if (!strpos($val, "[REGISTRATION FEE]") === false && !$company['price']) $val="";
$val = str_replace("[REGISTRATION FEE]",str_replace(",00",",-",sprintf("€ %.0f,%02d",$company['price']/100,$company['price']%100)),$val);
if (!empty($data)) {
//print_r($data);
#echo $data->dossierUrl;
if (!empty($data->dashboardUrl)) $val = str_replace("[dashboardUrl]",$data->dashboardUrl,$val);
if (!empty($data->profileUrl)) $val = str_replace("[profileUrl]",$data->profileUrl,$val);
if (!empty($data->messagesUrl)) $val = str_replace("[messagesUrl]",$data->messagesUrl,$val);
if (!empty($data->documentsUrl)) $val = str_replace("[documentsUrl]",$data->documentsUrl,$val);
if (!empty($data->dossierUrl)) $val = str_replace("[dossierUrl]",$data->dossierUrl,$val);
if (is_array($data)) {
foreach ($data as $index => $value) {
$val = str_replace("[".$index."]",$value,$val);
}
}
}
if ($key) {
#if ($row['ctype']!="text") $key = $row['ctype'].":".$key;
#echo $key, PHP_EOL;
if (preg_match("/(.*)%s(.*)%s(.*)/i", $key, $matches)) {
$vals = explode("%s",$val);
$content = preg_replace("/_\(\'".preg_quote($matches[1])."_\[\'(.*)\'\]".preg_quote($matches[2])."_\[\'(.*)\'\]".preg_quote($matches[3])."\'\)/i", $vals[0]."$1".$vals[1]."$2".$vals[2], $content);
} elseif (preg_match("/(.*)%s(.*)/i", $key, $matches)) {
$vals = explode("%s",$val);
$content = preg_replace("/_\(\'".preg_quote($matches[1])."_\[\'(.*)\'\]".preg_quote($matches[2])."\'\)/i", $vals[0]."$1".$vals[1], $content);
} else {
$content = str_replace("uq_('".$key."')",$f1.htmlentities($val).$f2,$content);
$content = str_replace("_('".$key."')_nl",$f1.$val_nl.$f2,$content);
$content = str_replace("_('".$key."')_en",$f1.$val_en.$f2,$content);
$content = str_replace("_('".$key."')",$f1.$val.$f2,$content);
$content = str_replace("_('".$key."')",$f1.$val.$f2,$content);
}
if ($row['ctype']!="textline" && $row['ctype']!="text") {
$key = $row['ctype'].":".$key;
if (preg_match("/(.*)%s(.*)%s(.*)/i", $key, $matches)) {
$vals = explode("%s",$val);
$content = preg_replace("/_\(\'".preg_quote($matches[1])."_\[\'(.*)\'\]".preg_quote($matches[2])."_\[\'(.*)\'\]".preg_quote($matches[3])."\'\)/i", $vals[0]."$1".$vals[1]."$2".$vals[2], $content);
} elseif (preg_match("/(.*)%s(.*)/i", $key, $matches)) {
$vals = explode("%s",$val);
$content = preg_replace("/_\(\'".preg_quote($matches[1])."_\[\'(.*)\'\]".preg_quote($matches[2])."\'\)/i", $vals[0]."$1".$vals[1], $content);
} else {
$content = str_replace("uq_('".$key."')",$f1.htmlentities($val).$f2,$content);
$content = str_replace("_('".$key."')",$f1.$val.$f2,$content);
}
}
}
}
#echo $tc;
$content = str_replace("_('')","",$content);
if (preg_match_all("/_\(\'(.*?)\'\)/i", $content, $matches)) {
#print_r($matches);
if ($tc<3) {
return translatePage($content,$speclang,$data,$tc+1);
}
}
#echo $tc;
#if ($tc>1) return $content;
#echo $tc;
#return $content;
#if (preg_match_all("/_\(\'(.*?)\'\)/i", $content, $matches)) {
#echo "content=".$content;
if (preg_match_all("/_\(\'(.*?)\'\)/i", $content, $matches)) {
$t=0;
foreach($matches[0] as $key => $match) {
#echo $key."::".$val;
$ctype = "textline";
$myreplace = $matches[1][$key];
#print_r($matches);
#echo $myreplace."
";
if (preg_match("/^(s?html):(.*)$/", $myreplace, $matches2)) {
#print_r($matches);
$ctype = $matches2[1];
$myreplace = $matches2[2];
}
#echo $myreplace."
";
#$c2=0;
if (preg_match_all("/_\[\'(((?!\'\]).)*)\'\]/U", $myreplace, $matches3)) {
foreach($matches3[0] as $key2 => $match3) {
#echo $match3;
$myreplace = str_replace($match3,"%s",$myreplace);
}
}
#while (preg_match("/(.*)_\[\'(.*?)\'\](.*)/i", $myreplace, $matches3) && $c2<100) {
# $myreplace = $matches3[1]."%s".$matches3[3];
# $c2++;
#}
if (!$myreplace) continue;
$myreplace2 = $myreplace;
if ($myreplace2) $myreplace2 = $f3.$myreplace.$f4;
$content = str_replace($matches[0],$myreplace2,$content);
$translate = [
'lang' => 'nl',
'page' => 'all',
'ctype' => $ctype,
'term' => $myreplace,
'status' => 'online',
'createdate' => date("Y-m-d H:i:s"),
];
if ($myreplace) {
#print_r($translate);
if ($myreplace!="Profiel") {
$t++;
$translateId = $database->insert($tbl_translate, $translate);
}
}
}
$q = "DELETE n1 FROM $tbl_translate n1, $tbl_translate n2 WHERE n1.id > n2.id AND BINARY n1.site = n2.site AND BINARY n1.term = n2.term AND n1.status = n2.status";
if ($t) $database->query($q);
}
#return $content;
#switch ($lang) {
# case "en":
# $translates = array(
# 'Inloggen'=>'Log In',
# 'Gebruiksvoorwaarden'=>'Terms of Use'
# );
# break;
# default: $translates = array();
#}
#foreach ($translates as $key => $val) {
# $content = str_replace("_('".$key."')",$val,$content);
#}
#return $content;
/*
$c = 0;
while (preg_match("/_\(\'(.*?)\'\)/i", $content, $matches) && $c<100) {
#echo $c."\n";
$c++;
$ctype = "textline";
$myreplace = $matches[1];
#print_r($matches);
#echo $myreplace."
";
if (preg_match("/^(s?html):(.*)$/", $myreplace, $matches2)) {
#print_r($matches);
$ctype = $matches2[1];
$myreplace = $matches2[2];
}
#echo $myreplace."
";
$c2=0;
while (preg_match("/(.*)_\[\'(.*?)\'\](.*)/i", $myreplace, $matches3) && $c2<100) {
$myreplace = $matches3[1]."%s".$matches3[3];
$c2++;
}
$myreplace2 = $myreplace;
if ($myreplace2) $myreplace2 = $f3.$myreplace.$f4;
$content = str_replace($matches[0],$myreplace2,$content);
$translate = [
'lang' => 'nl',
'page' => 'all',
'ctype' => $ctype,
'term' => $myreplace,
'status' => 'online',
'createdate' => date("Y-m-d H:i:s"),
];
if ($myreplace) {
#if ($myreplace!="Profiel") $translateId = $database->insert($tbl_translate, $translate);
}
if (preg_match("/^(Document\s.*\s)Toelichting$/", $myreplace, $matches2)) {
$translate = [
'lang' => 'nl',
'page' => 'all',
'ctype' => $ctype,
'term' => $matches2[1]."Controle",
'status' => 'online',
'createdate' => date("Y-m-d H:i:s"),
];
#if ($myreplace) $translateId = $database->insert($tbl_translate, $translate);
}
$q = "DELETE n1 FROM $tbl_translate n1, $tbl_translate n2 WHERE n1.id > n2.id AND BINARY n1.term = n2.term AND n1.status = n2.status";
$database->query($q);
#echo $q;
#$ins = sprintf("INSERT INTO $tbl_translate (lang,page,term,status,createdate) VALUES ('nl','all','%s','online',NOW())", $database->escape($myreplace));
#echo $ins."
";
}
*/
$content = str_replace("../upload/www.verhuurtbeter.nl/docs/", "/docs/", $content);
$content = str_replace("//firebrick.mijnexedo.nl/upload/aanbod.huurtbeter.nl/pics/", "https://aanbod.verhuurtbeter.nl/afb/", $content);
$content = str_replace("../upload/aanbod.huurtbeter.nl/pics/", "https://aanbod.verhuurtbeter.nl/afb/", $content);
$content = str_replace("[PLATFORM]",$company['subdomain'].".".CONST_BASE_DOMAIN,$content);
$content = str_replace("[MAKELAAR]",$company['name'],$content);
$content = str_replace("[INSCHRIJFGELD]",str_replace(",00",",-",sprintf("€ %.0f,%02d",$company['price']/100,$company['price']%100)),$content);
$content = str_replace("[INSCHRIJFBEDRAG]",str_replace(",00","",sprintf("%.0f,%02d",$company['price']/100,$company['price']%100)),$content);
$content = str_replace("[PF_NAAM]", $company['name'], $content);
$content = str_replace("[PF_NAAM1]", trim(explode("|", $company['name'])[0] ?? ''), $content);
$content = str_replace("[PF_NAAM2]", trim(explode("|", $company['name'])[1] ?? ''), $content);
$content = str_replace("[PF_URL]", "https://".$company['subdomain'].".".CONST_BASE_DOMAIN, $content);
$content = str_replace("[PF_URL1]", $company['subdomain'], $content);
$content = str_replace("[PF_URL2]", CONST_BASE_DOMAIN, $content);
if (!empty($data)) {
#error_log("DATATYPE=".gettype($data));
#print_r($data);
#if (isset($data['activateUrl']) && !empty($data['activateUrl'])) $content = str_replace("[activateUrl]",$data['activateUrl'],$content);
switch (gettype($data)) {
case "array":
#error_log("DATA=".print_r($data,true));
#if (!empty($data['activateUrl'])) error_log("activateUrl=".$data['activateUrl']);
if (!empty($data['s_id']) && !empty($company['subdomain'])) {
$baseUrl = "https://".$company['subdomain'].".".CONST_BASE_DOMAIN."/account/";
if (empty($data['dashboardUrl'])) $data['dashboardUrl'] = $baseUrl.$data['s_id'];
if (empty($data['profileUrl'])) $data['profileUrl'] = $baseUrl."?subscriptions/subscriptions/edit/".$data['s_id'];
if (empty($data['messagesUrl'])) $data['messagesUrl'] = $baseUrl."?subscriptions/subscriptions/messages/".$data['s_id'];
if (empty($data['documentsUrl'])) $data['documentsUrl'] = $baseUrl."?subscriptions/subscriptions/documents/".$data['s_id'];
if (empty($data['terminateUrl'])) $data['terminateUrl'] = $baseUrl."?settings/myaccount/terminate";
}
if (!empty($data['activateUrl'])) $content = str_replace("[activateUrl]",$data['activateUrl'],$content);
if (!empty($data['terminateUrl'])) $content = str_replace("[terminateUrl]",$data['terminateUrl'],$content);
if (!empty($data['dashboardUrl'])) $content = str_replace("[dashboardUrl]",$data['dashboardUrl'],$content);
if (!empty($data['profileUrl'])) $content = str_replace("[profileUrl]",$data['profileUrl'],$content);
if (!empty($data['messagesUrl'])) $content = str_replace("[messagesUrl]",$data['messagesUrl'],$content);
if (!empty($data['documentsUrl'])) $content = str_replace("[documentsUrl]",$data['documentsUrl'],$content);
if (!empty($data['dossierUrl'])) $content = str_replace("[dossierUrl]",$data['dossierUrl'],$content);
foreach ($data as $datakey => $dataval) {
if (is_string($dataval)) $content = str_replace("[".$datakey."]",$dataval,$content);
}
break;
case "object":
if (!empty($data->dashboardUrl)) $content = str_replace("[dashboardUrl]",$data->dashboardUrl,$content);
if (!empty($data->profileUrl)) $content = str_replace("[profileUrl]",$data->profileUrl,$content);
if (!empty($data->messagesUrl)) $content = str_replace("[messagesUrl]",$data->messagesUrl,$content);
if (!empty($data->documentsUrl)) $content = str_replace("[documentsUrl]",$data->documentsUrl,$content);
if (!empty($data->dossierUrl)) $content = str_replace("[dossierUrl]",$data->dossierUrl,$content);
if (!empty($data->terminateUrl)) $content = str_replace("[terminateUrl]",$data->terminateUrl,$content);
break;
}
#echo $data['terminateUrl'];
#echo $data['terminateUrl'];
}
$content = str_replace("../upload/www.verhuurtbeter.nl/", "/", $content);
return $content;
#echo $tc;
if ($tc==1) {
#echo 1;
if (preg_match("/(.*)\[(.*?)\](.*)/i", $content, $matches)) {
#echo 2;
#print_r($data);
#echo "
";
return translatePage($content,$speclang,$data,2);
} else {
#echo 3;
return $content;
}
} else {
#echo 4;
return $content;
}
}
function get_var($var,$var_else=""){
if (isset($_POST[$var])) { $result = $_POST[$var]; }
elseif (isset($_GET[$var])) { $result = $_GET[$var]; }
else { $result = $var_else; }
return $result;
}
function get_session_var($var,$var_else="") {
$var_fake = "#####";
$var_new = get_var($var,$var_fake);
if ($var_new == $var_fake) {
$var_new = (isset($_SESSION[$var]) ? $_SESSION[$var] : "");
if ($var_else == "reset") { $var_new = ""; }
}
if (!$var_new && $var_else != "reset") { $var_new = $var_else; }
$_SESSION[$var] = $var_new;
//print_r($_SESSION);
return $var_new;
}
function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
function base64url_decode($data) {
return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}
function url_exists($url) {
$handle = curl_init($url);
if (false === $handle) { return false; }
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_FAILONERROR, true);
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, false);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
$connectable = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);
/* If the document has loaded successfully without any redirection or error */
if ($httpCode >= 200 && $httpCode < 300) {
return true;
} else {
return false;
}
#return $connectable;
}
function set_language_params() {
$GLOBALS['_LANG_BROWSER'] = array();
$languages = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
foreach($languages as $lang) {
array_push($GLOBALS['_LANG_BROWSER'], strtolower(substr($lang,0,2)));
}
$GLOBALS['_LANG_BROWSER'] = array_unique($GLOBALS['_LANG_BROWSER']);
$GLOBALS['_DLANG']='nl';
$GLOBALS['_ALANG'] = array(
'nl'=>"Nederlands", // dutch.
'en'=>"Engels", // english.
//'de'=>"Duits", // german.
//'pl'=>"Pools", // polish.
//'af', // afrikaans.
//'ar', // arabic.
//'bg', // bulgarian.
//'ca', // catalan.
//'cs', // czech.
//'da', // danish.
//'el', // greek.
//'es', // spanish.
//'et', // estonian.
//'fi', // finnish.
//'fr', // french.
//'gl', // galician.
//'he', // hebrew.
//'hi', // hindi.
//'hr', // croatian.
//'hu', // hungarian.
//'id', // indonesian.
//'it', // italian.
//'ja', // japanese.
//'ko', // korean.
//'ka', // georgian.
//'lt', // lithuanian.
//'lv', // latvian.
//'ms', // malay.
//'no', // norwegian.
//'pt', // portuguese.
//'ro', // romanian.
//'ru', // russian.
//'sk', // slovak.
//'sl', // slovenian.
//'sq', // albanian.
//'sr', // serbian.
//'sv', // swedish.
//'th', // thai.
//'tr', // turkish.
//'uk', // ukrainian.
//'zh' // chinese.
);
#$GLOBALS['_LANG'] = "nl";
}
// Detect language from user agent browser
function get_language() {
#$darray = explode('.', $_SERVER['HTTP_HOST']);
#$narray = array_reverse($darray);
#$domain = $narray[1];
#echo CONST_BASE_DOMAIN;
#include_once(CONST_FILE_ROOT.'/inc/custom/class.company.php');
$CompanyLanguages = Company::instance()->getCompanyLanguages();
#$dlang = $GLOBALS['_DLANG'];
$dlang = key($CompanyLanguages);
if (get_session_var("lang")=="") {
$darray = explode('.', $_SERVER['HTTP_HOST']);
$narray = array_reverse($darray);
switch ($narray[0]) {
case "nl": $dlang = "nl"; break;
case "com": $dlang = "en"; break;
}
}
#echo print_r(array_keys($GLOBALS['_ALANG']),true);
#echo "Langs=".print_r(array_keys($CompanyLanguages),true);
$GLOBALS['_MYLANG'] = array_intersect(array_keys($CompanyLanguages),array_keys($GLOBALS['_ALANG']));
#$GLOBALS['_MYLANG'] = array_keys($GLOBALS['_ALANG']);
#print_r($GLOBALS['_MYLANG']);
#print_r($GLOBALS['_MYLANG']);
#print_r($GLOBALS['_LANG_BROWSER']);
$rlang = array_intersect($GLOBALS['_LANG_BROWSER'], $GLOBALS['_MYLANG']);
if (count($rlang) && !in_array($GLOBALS['_DLANG'],$rlang)) $dlang = array_values($rlang)[0];
#print_r($GLOBALS['_LANG_BROWSER']);
#error_log(get_session_var("lang",$dlang));
$lang = get_session_var("lang",$dlang);
if (!in_array($lang, array_keys($CompanyLanguages))) {
get_session_var("lang","reset");
$lang = get_session_var("lang",$dlang);
}
#echo session_id();
#$SESSION['lan']
#print_r($_SESSION);
if (get_var("lang")) {
#error_log(get_session_var("lang",$dlang));
header('Location: '.parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
}
if (isset($_SESSION['sofia_cms']['login']['id']) && !in_array($_SERVER['REQUEST_URI'],array('/','/account/','/betalen','/betalen/pay'))) {
switch ($_SESSION['sofia_cms']['login']['language']) {
case "en":
$lang = $_SESSION['sofia_cms']['login']['language']; break;
default: $lang = "nl";
}
#$user = $userObject->getUserById($_SESSION['sofia_cms']['login']['id']);
#echo $user['language'];
}
if (get_var("lang")) {
$lang=get_var("lang");
#get_session_var("lang_".session_id(),"reset");
#get_session_var("lang_".session_id(),$lang);
}
#error_log("lang=".$lang);
#error_log($_SERVER['REQUEST_URI']);
if (get_session_var("lang")!=$lang) {
get_session_var("lang","reset");
get_session_var("lang",$lang);
}
switch ($lang) {
case "en":
$GLOBALS['_WELCOME_DB_FIELD'] = "welcome_text_".$lang;
break;
default:
$GLOBALS['_WELCOME_DB_FIELD'] = "welcome_text";
}
return $lang;
}
function count_pages($filename) {
$docpages = 0;
if (file_exists($filename)) {
if ($fp = @fopen($filename,"r")) {
$max=0;
while(!feof($fp)) {
$line = fgets($fp,255);
if (preg_match('/\/Count [0-9]+/', $line, $matches)){
preg_match('/[0-9]+/',$matches[0], $matches2);
if ($max<$matches2[0]) $max=$matches2[0];
}
}
fclose($fp);
$docpages = $max;
}
/*
$finfo = finfo_open(FILEINFO_MIME_TYPE);
if(finfo_file($finfo, $filename) === 'application/pdf') {
echo "'{$filename}' is a PDF" . PHP_EOL;
}
*/
if($docpages==0){
try {
$im = new Imagick();
$im->pingImage($filename);
$docpages = $im->getNumberImages();
} catch (Exception $exc) {
return 0;
#echo $exc->getMessage();
#header("Location: " . $this->baseUrlItem . '/messages/' . $this->tpl->subscription_id .'#new_message');
#exit();
}
}
if($docpages==0){
try {
$pdf = new PDFInfo($filename);
#echo $pdf->title; // Get the title
$docpages = $pdf->pages; // Get the number of pages
} catch (Exception $exc) {
echo $exc->getMessage();
#header("Location: " . $this->baseUrlItem . '/messages/' . $this->tpl->subscription_id .'#new_message');
#exit();
}
}
}
return $docpages;
}
function mkdir_recursive($pathname, $mode=0755) {
is_dir(dirname($pathname)) || mkdir_recursive(dirname($pathname), $mode);
return is_dir($pathname) || @mkdir($pathname, $mode);
}
function rm_recurse($file) {
if (is_dir($file) && !is_link($file)) {
foreach(glob($file.'/*') as $sf) {
if ( !rm_recurse($sf) ) {
error_log("Failed to remove $sf\n");
return false;
}
}
return rmdir($file);
} else {
if (file_exists($file)) { return unlink($file); }
}
}
function formatTenantName($t_initials, $t_insertion, $t_lastname) {
global $helper;
$t_initials = mb_strtoupper(trim($t_initials));
if (preg_match("/^[\p{L}]{4,}$/u", $t_initials)) $t_initials = mb_substr($t_initials,0,1).".";
$t_insertion = mb_strtolower(trim($t_insertion));
$t_lastname = $helper->formatPersonName($t_lastname);
return sprintf("%s %s", $t_initials, trim($t_insertion." ".$t_lastname));
}
function formatPrefAddress($p_street, $p_house_nr, $p_city) {
global $helper;
$p_street = $helper->formatPersonName($p_street);
$p_house_nr = mb_strtoupper(trim($p_house_nr));
$p_city = $helper->formatPersonName($p_city);
if (preg_match("/hoogvliet/i", $p_city)) { $p_city = "Hoogvliet Rotterdam"; }
return trim(sprintf("%s %s %s", $p_street, $p_house_nr, $p_city));
}
function format_string($string) {
return trim(str_replace(" ", " ", preg_replace("/[\n\r]/"," ",$string)));
}
function copy_sample() {
$src = __FILE__;
// 1) Stoppen als het bestand zelf al .sample.php heet
if (substr($src, -12) === '.sample.php') {
return;
}
$dest = __DIR__ . '/' . basename($src, '.php') . '.sample.php';
// 2) Stoppen als sample nieuwer is
if (file_exists($dest) && filemtime($dest) >= filemtime($src)) {
#return;
}
// 3) Content inlezen
$content = file_get_contents($src);
// 4) Keywords die we willen scrubben (case-sensitive)
$keywords = '(PASSWORD|PASS|AUTH|KEY|SECRET|TOKEN|USERNAME|USER)';
// 5) Regex voor define()-achtige regels: key = letters/cijfers/_ + keyword
$regex_define = '/([\'"])([A-Z0-9_]*' . $keywords . '[A-Z0-9_]*)\1\s*,\s*([\'"])(.*?)\3/';
$regex_define = '/([A-Z0-9_]*' . $keywords . '[A-Z0-9_]*)/';
preg_match_all($regex_define, $content, $matches, PREG_SET_ORDER);
echo "matches:";
print_r($matches);
echo $content;
exit;
// 6) Scrubben via callback: waarde leegmaken
$content = preg_replace_callback($regex_define, function($matches) {
// $matches[1] = quote van key
// $matches[2] = key zelf
// $matches[3] = quote van value
// $matches[4] = originele value
return $matches[1] . $matches[2] . $matches[3] . '';
}, $content);
// 7) Wegschrijven naar .sample.php
file_put_contents($dest, $content);
}