Merge pull request #1261 from moteus/mailto_windows

Fix. Use wrapper bat file to v_malito.php on Windows.
This commit is contained in:
FusionPBX 2015-11-27 10:27:53 -07:00
commit b068771073
1 changed files with 63 additions and 3 deletions

View File

@ -1267,10 +1267,24 @@ if (!function_exists('switch_conf_xml')) {
//prepare the php variables
if (stristr(PHP_OS, 'WIN')) {
$bindir = getenv(PHPRC);
$v_mailer_app ='""'. $bindir."/php". '" -f '.$_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/secure/v_mailto.php -- "';
$v_mailer_app = sprintf("'%s'", $v_mailer_app);
$bindir = find_php_by_extension();
if(!$bindir)
$bindir = getenv(PHPRC);
$secure_path = path_join($_SERVER["DOCUMENT_ROOT"], PROJECT_PATH, 'secure');
$v_mail_bat = path_join($secure_path, 'v_mailto.bat');
$v_mail_cmd = '@' .
'"' . str_replace('/', '\\', path_join($bindir, 'php.exe')) . '" ' .
'"' . str_replace('/', '\\', path_join($secure_path, 'v_mailto.php')) . '" ';
$fout = fopen($v_mail_bat, "w+");
fwrite($fout, $v_mail_cmd);
fclose($fout);
$v_mailer_app = '"' . str_replace('/', '\\', $v_mail_bat) . '"';
$v_mailer_app_args = "";
unset($v_mail_bat, $v_mail_cmd, $secure_path, $bindir, $fout);
}
else {
if (file_exists(PHP_BINDIR.'/php')) { define("PHP_BIN", "php"); }
@ -1453,4 +1467,50 @@ if (!function_exists('save_switch_xml')) {
}
}
if(!function_exists('path_join')) {
function path_join() {
$args = func_get_args();
$paths = array();
foreach ($args as $arg) {
$paths = array_merge($paths, (array)$arg);
}
$prefix = null;
foreach($paths as &$path) {
if($prefix === null && strlen($path) > 0) {
if(substr($path, 0, 1) == '/') $prefix = '/';
else $prefix = '';
}
$path = trim( $path, '/' );
}
if($prefix === null){
return '';
}
$paths = array_filter($paths);
return $prefix . join('/', $paths);
}
}
if(!function_exists('find_php_by_extension')) {
/*Tesetd on WAMP and OpenServer*/
function find_php_by_extension(){
$bin_dir = get_cfg_var('extension_dir');
while($bin_dir){
$bin_dir = dirname($bin_dir);
$php_bin = path_join($bin_dir, 'php.exe');
if(file_exists($php_bin))
break;
}
if(!$bin_dir)
return false;
return $bin_dir;
}
}
?>