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); }