trying to work arround "PHP Fatal error: Cannot unset string offsets in /usr/share/egroupware/importexport/inc/class.importexport_schedule_ui.inc.php on line 444"

This commit is contained in:
Ralf Becker 2012-03-13 10:22:15 +00:00
parent dff1f3894e
commit b68cbecbe2

View File

@ -187,7 +187,7 @@
foreach($types[$data['type']] as $key => $title) { foreach($types[$data['type']] as $key => $title) {
$options['plugin'][$key] = $title; $options['plugin'][$key] = $title;
} }
} }
} }
$options['definition'] = array(); $options['definition'] = array();
@ -393,7 +393,7 @@
// Lock job for an hour to prevent multiples overlapping // Lock job for an hour to prevent multiples overlapping
$data['lock'] = time() + 3600; $data['lock'] = time() + 3600;
self::update_job($data, true); self::update_job($data, true);
// check file // check file
$file_check = self::check_target($data); $file_check = self::check_target($data);
if($file_check !== true) { if($file_check !== true) {
@ -423,35 +423,26 @@
if(is_dir($data['target'])) if(is_dir($data['target']))
{ {
$dir = opendir($data['target']); $targets = array();
$contents = array(); foreach(scandir($data['target']) as $target)
while(false !== ($item = readdir($dir))) {
$contents[] = $item;
}
closedir($dir);
$targets = array_diff($contents, array('.','..'));
$files = array();
foreach($targets as $key => &$target)
{ {
if ($target == '.' || $target == '..') continue;
$target = $data['target'].(substr($data['target'],-1) == '/' ? '' : '/').$target; $target = $data['target'].(substr($data['target'],-1) == '/' ? '' : '/').$target;
// Check modification time, make sure it's not currently being written // Check modification time, make sure it's not currently being written
// Skip files modified in the last 10 seconds // Skip files modified in the last 10 seconds
$mod_time = filemtime($target); $mod_time = filemtime($target);
if($mod_time >= time() - 10) if($mod_time >= time() - 10)
{ {
$data['result'][$target] = lang('Skipped'); $data['result'][$target] = lang('Skipped');
unset($targets[$key]);
continue; continue;
} }
$files[$mod_time.$target] = $target; $targets[$mod_time.$target] = $target;
} }
if($files) if($targets)
{ {
ksort($files); ksort($targets);
} }
$targets = $files;
unset($target); // Unset it, or it will be overwritten in loop below
} }
else else
{ {
@ -480,7 +471,7 @@
fclose($resource); fclose($resource);
$data['errors'][$target][] = $i_ex->getMessage(); $data['errors'][$target][] = $i_ex->getMessage();
} }
if(method_exists($po, 'get_warnings') && $po->get_warnings()) { if(method_exists($po, 'get_warnings') && $po->get_warnings()) {
fwrite(STDERR, 'importexport_schedule: ' . date('c') . ": Import warnings:\n#\tWarning\n"); fwrite(STDERR, 'importexport_schedule: ' . date('c') . ": Import warnings:\n#\tWarning\n");