diff options
-rwxr-xr-x | boot.php | 38 | ||||
-rwxr-xr-x | include/smarty.php | 5 | ||||
-rw-r--r-- | include/text.php | 29 |
3 files changed, 38 insertions, 34 deletions
@@ -1816,38 +1816,19 @@ function get_max_import_size() { */ function proc_run(){ - $a = get_app(); - $args = func_get_args(); $newargs = array(); + if(! count($args)) return; - // expand any arrays - - foreach($args as $arg) { - if(is_array($arg)) { - foreach($arg as $n) { - if(is_array($n)) { - foreach($n as $w) { - $newargs[] = $w; - } - } - else { - $newargs[] = $n; - } - } - } - else - $newargs[] = $arg; - } - - $args = $newargs; + $args = flatten_array_recursive($args); $arr = array('args' => $args, 'run_cmd' => true); call_hooks('proc_run', $arr); + if(! $arr['run_cmd']) return; @@ -1855,8 +1836,8 @@ function proc_run(){ $args[0] = ((x(App::$config,'system')) && (x(App::$config['system'],'php_path')) && (strlen(App::$config['system']['php_path'])) ? App::$config['system']['php_path'] : 'php'); - // redirect proc_run statements of legacy daemon processes to the new Daemon Master object class - // We will keep this interface until everybody has transitioned. + // redirect proc_run statements of legacy daemon processes to the newer Daemon Master object class + // We will keep this interface until everybody has transitioned. (2016-05-20) if(strstr($args[1],'include/')) { // convert 'include/foo.php' to 'Foo' @@ -1871,14 +1852,7 @@ function proc_run(){ } } - for($x = 0; $x < count($args); $x++) { - if(is_array($args[$x])) { - logger('ERROR: shell args is array . ' . print_r($args,true)); - btlogger('args:'); - } - $args[$x] = escapeshellarg($args[$x]); - } - + $args = array_map('escapeshellarg',$args); $cmdline = implode($args," "); if(is_windows()) { diff --git a/include/smarty.php b/include/smarty.php index 762efe335..9d443e269 100755 --- a/include/smarty.php +++ b/include/smarty.php @@ -1,6 +1,7 @@ <?php /** @file */ -require_once 'include/ITemplateEngine.php'; -require_once("library/Smarty/libs/Smarty.class.php"); + +require_once('include/ITemplateEngine.php'); +require_once('library/Smarty/libs/Smarty.class.php'); class FriendicaSmarty extends Smarty { diff --git a/include/text.php b/include/text.php index 3f2e85fc8..554518e32 100644 --- a/include/text.php +++ b/include/text.php @@ -2860,3 +2860,32 @@ function pdl_selector($uid, $current="") { return $o; } +/* + * array flatten_array_recursive(array); + * returns a one-dimensional array from a multi-dimensional array + * empty values are discarded + * example: print_r(flatten_array_recursive(array('foo','bar',array('baz','blip',array('zob','glob')),'','grip'))); + * + * Array ( [0] => foo [1] => bar [2] => baz [3] => blip [4] => zob [5] => glob [6] => grip ) + * + */ + +function flatten_array_recursive($arr) { + $ret = array(); + + if(! $arr) + return $ret; + + foreach($arr as $a) { + if(is_array($a)) { + $tmp = flatten_array_recursive($a); + if($tmp) { + $ret = array_merge($ret,$tmp); + } + } + elseif($a) { + $ret[] = $a; + } + } + return($ret); +} |