From: Michael M Slusarz Date: Wed, 17 Nov 2010 18:37:17 +0000 (-0700) Subject: Converted horde/Data to using Horde_Session X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=e96f5568566c6face0ebeeeb4da5befe59cf54d3;p=horde.git Converted horde/Data to using Horde_Session No injection or anything - just switching out $_SESSION calls for Horde_Session calls. horde/Data in its current incarnation is EXTREMELY tied to Horde applications. It either needs to be abstracted more or completely incorporated within horde or horde/Core. Additionally, apps should not be directly accessing the import_data session value. --- diff --git a/framework/Data/lib/Horde/Data/Base.php b/framework/Data/lib/Horde/Data/Base.php index 80bd245d6..1fdc474f0 100644 --- a/framework/Data/lib/Horde/Data/Base.php +++ b/framework/Data/lib/Horde/Data/Base.php @@ -260,10 +260,12 @@ abstract class Horde_Data_Base { /* First step. */ if (is_null($action)) { - $_SESSION['import_data'] = array(); return Horde_Data::IMPORT_FILE; } + // TODO - Must be injected + $session = $GLOBALS['injector']->getInstance('Horde_Session'); + switch ($action) { case Horde_Data::IMPORT_FILE: if (!isset($this->_browser)) { @@ -278,7 +280,7 @@ abstract class Horde_Data_Base if ($_FILES['import_file']['size'] <= 0) { throw new Horde_Data_Exception(Horde_Data_Translation::t("The file contained no data.")); } - $_SESSION['import_data']['format'] = $this->_vars->import_format; + $session->set('horde', 'import_data/format', $this->_vars->import_format); break; case Horde_Data::IMPORT_MAPPED: @@ -289,6 +291,9 @@ abstract class Horde_Data_Base $appKeys = explode("\t", $this->_vars->appKeys); $map = array(); $dates = array(); + + $import_data = $session->get('horde', 'import_data/data', Horde_Session::TYPE_ARRAY); + foreach ($appKeys as $key => $app) { $map[$dataKeys[$key]] = $app; if (isset($param['time_fields']) && @@ -297,19 +302,21 @@ abstract class Horde_Data_Base $dates[$dataKeys[$key]]['values'] = array(); $i = 0; /* Build an example array of up to 10 date/time fields. */ - while ($i < count($_SESSION['import_data']['data']) && count($dates[$dataKeys[$key]]['values']) < 10) { - if (!empty($_SESSION['import_data']['data'][$i][$dataKeys[$key]])) { - $dates[$dataKeys[$key]]['values'][] = $_SESSION['import_data']['data'][$i][$dataKeys[$key]]; + while ($i < count($import_data) && + count($dates[$dataKeys[$key]]['values']) < 10) { + if (!empty($import_data[$i][$dataKeys[$key]])) { + $dates[$dataKeys[$key]]['values'][] = $import_data[$i][$dataKeys[$key]]; } - $i++; + ++$i; } } } - $_SESSION['import_data']['map'] = $map; + + $session->set('horde', 'import_data/map', $map); if (count($dates) > 0) { foreach ($dates as $key => $data) { if (count($data['values'])) { - $_SESSION['import_data']['dates'] = $dates; + $session->set('horde', 'import_data/dates', $dates); return Horde_Data::IMPORT_DATETIME; } } @@ -330,28 +337,31 @@ abstract class Horde_Data_Base ); } - if (!isset($_SESSION['import_data']['data'])) { + if (!$session->exists('horde', 'import_data/data')) { throw new Horde_Data_Exception('The uploaded data was lost since the previous step.'); } /* Build the result data set as an associative array. */ $data = array(); - foreach ($_SESSION['import_data']['data'] as $row) { + $data_map = $session->get('horde', 'import_data/map', Horde_Session::TYPE_ARRAY); + + foreach ($session->get('horde', 'import_data/data') as $row) { $data_row = array(); foreach ($row as $key => $val) { - if (isset($_SESSION['import_data']['map'][$key])) { - $mapped_key = $_SESSION['import_data']['map'][$key]; + if (isset($data_map[$key])) { + $mapped_key = $data_map[$key]; if ($action == Horde_Data::IMPORT_DATETIME && !empty($val) && isset($param['time_fields']) && isset($param['time_fields'][$mapped_key])) { $val = $this->_mapDate($val, $param['time_fields'][$mapped_key], $params, $key); } - $data_row[$_SESSION['import_data']['map'][$key]] = $val; + $data_row[$mapped_key] = $val; } } $data[] = $data_row; } + return $data; } } @@ -365,10 +375,13 @@ abstract class Horde_Data_Base */ public function cleanup() { - if (isset($_SESSION['import_data']['file_name'])) { - @unlink($_SESSION['import_data']['file_name']); + // TODO - Must be injected + $session = $GLOBALS['injector']->getInstance('Horde_Session'); + + if ($filename = $session->get('horde', 'import_data/file_name')) { + @unlink($filename); } - $_SESSION['import_data'] = array(); + $session->remove('horde', 'import_data'); if ($this->_cleanupCallback) { return call_user_func($this->_cleanupCallback); diff --git a/framework/Data/lib/Horde/Data/Csv.php b/framework/Data/lib/Horde/Data/Csv.php index 4fc726973..646ef2b24 100644 --- a/framework/Data/lib/Horde/Data/Csv.php +++ b/framework/Data/lib/Horde/Data/Csv.php @@ -217,6 +217,8 @@ class Horde_Data_Csv extends Horde_Data_Base */ public function nextStep($action, $param = array()) { + $session = $GLOBALS['injector']->getInstance('Horde_Session'); + switch ($action) { case Horde_Data::IMPORT_FILE: parent::nextStep($action, $param); @@ -227,45 +229,42 @@ class Horde_Data_Csv extends Horde_Data_Base if (!move_uploaded_file($_FILES['import_file']['tmp_name'], $file_name)) { throw new Horde_Data_Exception('The uploaded file could not be saved.'); } - $_SESSION['import_data']['file_name'] = $file_name; + $session->set('horde', 'import_data/file_name', $file_name); /* Check if charset was specified. */ - $_SESSION['import_data']['charset'] = $this->_vars->charset; + $session->set('horde', 'import_data/charset', $this->_vars->charset); /* Read the file's first two lines to show them to the user. */ - $_SESSION['import_data']['first_lines'] = ''; - $fp = @fopen($file_name, 'r'); - if ($fp) { + $first_lines = ''; + if ($fp = @fopen($file_name, 'r')) { $line_no = 1; while ($line_no < 3 && $line = fgets($fp)) { - if (!empty($_SESSION['import_data']['charset'])) { - $line = Horde_String::convertCharset($line, $_SESSION['import_data']['charset'], $this->_charset); - } + $line = Horde_String::convertCharset($line, $this->_vars->charset, $this->_charset); $newline = Horde_String::length($line) > 100 ? "\n" : ''; - $_SESSION['import_data']['first_lines'] .= substr($line, 0, 100) . $newline; - $line_no++; + $first_lines .= substr($line, 0, 100) . $newline; + ++$line_no; } } + $session->set('horde', 'import_data/first_lines', $first_lines); return Horde_Data::IMPORT_CSV; case Horde_Data::IMPORT_CSV: - $_SESSION['import_data']['header'] = $this->_vars->header; + $session->set('horde', 'import_data/header', $this->_vars->header); $import_mapping = array(); if (isset($param['import_mapping'])) { $import_mapping = $param['import_mapping']; } - $import_data = $this->importFile( - $_SESSION['import_data']['file_name'], - $_SESSION['import_data']['header'], + $session->set('horde', 'import_data/data', $this->importFile( + $session->get('horde', 'import_data/file_name'), + $this->_vars->header, $this->_vars->sep, $this->_vars->quote, $this->_vars->fields, $import_mapping, - $_SESSION['import_data']['charset'], - $_SESSION['import_data']['crlf'] - ); - $_SESSION['import_data']['data'] = $import_data; - unset($_SESSION['import_data']['map']); + $session->get('horde', 'import_data/charset'), + $session->get('horde', 'import_data/crlf') + )); + $session->remove('horde', 'import_data/map'); return Horde_Data::IMPORT_MAPPED; default: diff --git a/framework/Data/lib/Horde/Data/Tsv.php b/framework/Data/lib/Horde/Data/Tsv.php index 95bfed3c3..52ce7c12a 100644 --- a/framework/Data/lib/Horde/Data/Tsv.php +++ b/framework/Data/lib/Horde/Data/Tsv.php @@ -39,7 +39,7 @@ class Horde_Data_Tsv extends Horde_Data_Base */ public function importData($contents, $header = false, $delimiter = "\t") { - if ($_SESSION['import_data']['format'] == 'pine') { + if ($GLOBALS['injector']->getInstance('Horde_Session')->get('horde', 'import_data/format') == 'pine') { $contents = preg_replace('/\n +/', '', $contents); } @@ -138,28 +138,38 @@ class Horde_Data_Tsv extends Horde_Data_Base */ public function nextStep($action, $param = array()) { + $session = $GLOBALS['injector']->getInstance('Horde_Session'); + switch ($action) { case Horde_Data::IMPORT_FILE: parent::nextStep($action, $param); - if ($_SESSION['import_data']['format'] == 'mulberry' || - $_SESSION['import_data']['format'] == 'pine') { - $_SESSION['import_data']['data'] = $this->importFile($_FILES['import_file']['tmp_name']); - $format = $_SESSION['import_data']['format']; - if ($format == 'mulberry') { + $format = $session->get('horde', 'import_data/format'); + if (in_array($format, array('mulberry', 'pine'))) { + $filedata = $this->importFile($_FILES['import_file']['tmp_name']); + + switch ($format) { + case 'mulberry': $appKeys = array('alias', 'name', 'email', 'company', 'workAddress', 'workPhone', 'homePhone', 'fax', 'notes'); $dataKeys = array(0, 1, 2, 3, 4, 5, 6, 7, 9); - } elseif ($format == 'pine') { + break; + + case 'pine': $appKeys = array('alias', 'name', 'email', 'notes'); $dataKeys = array(0, 1, 2, 4); + break; } + foreach ($appKeys as $key => $app) { $map[$dataKeys[$key]] = $app; } + $data = array(); - foreach ($_SESSION['import_data']['data'] as $row) { + foreach ($filedata as $row) { $hash = array(); - if ($format == 'mulberry') { + + switch ($format) { + case 'mulberry': if (preg_match("/^Grp:/", $row[0]) || empty($row[1])) { continue; } @@ -169,7 +179,9 @@ class Horde_Data_Tsv extends Horde_Data_Base $hash[$key] = stripslashes(preg_replace('/\\\\r/', "\n", $row[$key])); } } - } elseif ($format == 'pine') { + break; + + case 'pine': if (count($row) < 3 || preg_match("/^#DELETED/", $row[0]) || preg_match("/[()]/", $row[2])) { continue; } @@ -192,13 +204,16 @@ class Horde_Data_Tsv extends Horde_Data_Base $hash[$key] = $row[$key]; } } + break; } + $data[] = $hash; } - $_SESSION['import_data']['data'] = $data; - $_SESSION['import_data']['map'] = $map; - $ret = $this->nextStep(Horde_Data::IMPORT_DATA, $param); - return $ret; + + $session->set('horde', 'import_data/data', $data); + $session->set('horde', 'import_data/map', $map); + + return $this->nextStep(Horde_Data::IMPORT_DATA, $param); } /* Move uploaded file so that we can read it again in the next step @@ -212,27 +227,25 @@ class Horde_Data_Tsv extends Horde_Data_Base if (!move_uploaded_file($_FILES['import_file']['tmp_name'], $file_name)) { throw new Horde_Data_Exception('The uploaded file could not be saved.'); } - $_SESSION['import_data']['file_name'] = $file_name; + $session->set('horde', 'import_data/file_name', $file_name); /* Read the file's first two lines to show them to the user. */ - $_SESSION['import_data']['first_lines'] = ''; - $fp = @fopen($file_name, 'r'); - if ($fp) { + $first_lines = ''; + if ($fp = @fopen($file_name, 'r')) { $line_no = 1; - while ($line_no < 3 && $line = fgets($fp)) { + while (($line_no < 3) && ($line = fgets($fp))) { $newline = Horde_String::length($line) > 100 ? "\n" : ''; - $_SESSION['import_data']['first_lines'] .= substr($line, 0, 100) . $newline; - $line_no++; + $first_lines .= substr($line, 0, 100) . $newline; + ++$line_no; } } + $session->set('horde', 'import_data/first_lines', $first_lines); return Horde_Data::IMPORT_TSV; case Horde_Data::IMPORT_TSV: - $_SESSION['import_data']['header'] = $this->_vars->header; - $import_data = $this->importFile($_SESSION['import_data']['file_name'], - $_SESSION['import_data']['header']); - $_SESSION['import_data']['data'] = $import_data; - unset($_SESSION['import_data']['map']); + $session->set('horde', 'import_data/header', $this->_vars->header); + $session->set('horde', 'import_data/data', $this->importFile($session->get('horde', 'import_data/file_name'), $session->get('horde', 'import_data/header'))); + $session->remove('horde', 'import_data/map'); return Horde_Data::IMPORT_MAPPED; } diff --git a/horde/templates/data/csvinfo.inc b/horde/templates/data/csvinfo.inc index b331fef18..2bedf3304 100644 --- a/horde/templates/data/csvinfo.inc +++ b/horde/templates/data/csvinfo.inc @@ -8,18 +8,18 @@

-

+
get('horde', 'import_data/first_lines')) ?>


-
- +
+ get('horde', 'import_data/quote')): ?> -
+
- + get('horde', 'import_data/fields')): ?> -
+
" class="button" /> diff --git a/horde/templates/data/csvmap.inc b/horde/templates/data/csvmap.inc index d273cd989..bd15b6d68 100644 --- a/horde/templates/data/csvmap.inc +++ b/horde/templates/data/csvmap.inc @@ -59,10 +59,11 @@ function removePair()
@@ -71,16 +72,16 @@ function removePair() $value): + foreach ($data[0] as $key => $value): if (isset($app_fields[$key])): $matching[] = array($key, $app_fields[$key]); ?> - + diff --git a/horde/templates/data/datemap.inc b/horde/templates/data/datemap.inc index 5a65194b1..a760a822d 100644 --- a/horde/templates/data/datemap.inc +++ b/horde/templates/data/datemap.inc @@ -7,12 +7,14 @@ - $date): ?> +get('horde', 'import_data/map'); +foreach ($GLOBALS['session']->get('horde', 'import_data/dates') as $key => $date): ?> diff --git a/horde/templates/data/tsvinfo.inc b/horde/templates/data/tsvinfo.inc index ccecb575f..a366c2653 100644 --- a/horde/templates/data/tsvinfo.inc +++ b/horde/templates/data/tsvinfo.inc @@ -8,7 +8,7 @@

-

+
get('horde', 'import_data/first_lines')) ?>


diff --git a/kronolith/data.php b/kronolith/data.php index d4e24b568..d0620e6fb 100644 --- a/kronolith/data.php +++ b/kronolith/data.php @@ -189,8 +189,8 @@ case 'export': break; case Horde_Data::IMPORT_FILE: - $_SESSION['import_data']['import_cal'] = Horde_Util::getFormData('importCal'); - $_SESSION['import_data']['purge'] = Horde_Util::getFormData('purge'); + $session->set('horde', 'import_data/import_cal', Horde_Util::getFormData('importCal')); + $session->set('horde', 'import_data/purge', Horde_Util::getFormData('purge')); break; } @@ -202,7 +202,7 @@ if (!$error && $import_format) { if ($actionID == Horde_Data::IMPORT_FILE) { $cleanup = true; try { - if (!in_array($_SESSION['import_data']['import_cal'], array_keys(Kronolith::listCalendars(Horde_Perms::EDIT)))) { + if (!in_array($session->get('horde', 'import_data/import_cal'), array_keys(Kronolith::listCalendars(Horde_Perms::EDIT)))) { $notification->push(_("You do not have permission to add events to the selected calendar."), 'horde.error'); } else { $next_step = $data->nextStep($actionID, $param); @@ -237,16 +237,16 @@ if (is_array($next_step)) { if ($max_events !== true) { $num_events = Kronolith::countEvents(); } - list($type, $calendar) = explode('_', $_SESSION['import_data']['import_cal'], 2); + list($type, $calendar) = explode('_', $session->get('horde', 'import_data/import_cal'), 2); $kronolith_driver = Kronolith::getDriver($type, $calendar); if (!count($next_step)) { $notification->push(sprintf(_("The %s file didn't contain any events."), - $file_types[$_SESSION['import_data']['format']]), 'horde.error'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.error'); $error = true; } else { /* Purge old calendar if requested. */ - if ($_SESSION['import_data']['purge']) { + if ($session->get('horde', 'import_data/purge')) { try { $kronolith_driver->delete($calendar); $notification->push(_("Calendar successfully purged."), 'horde.success'); @@ -326,7 +326,7 @@ if (is_array($next_step)) { if (!$error) { $notification->push(sprintf(_("%s file successfully imported"), - $file_types[$_SESSION['import_data']['format']]), 'horde.success'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.success'); if (Horde_Util::getFormData('import_ajax')) { Horde::addInlineScript('window.parent.KronolithCore.loadCalendar(\'' . $type . '\', \'' . $calendar . '\');'); } diff --git a/mnemo/data.php b/mnemo/data.php index 156c2838d..c453f9ae3 100644 --- a/mnemo/data.php +++ b/mnemo/data.php @@ -89,7 +89,7 @@ case 'export': break; case Horde_Data::IMPORT_FILE: - $_SESSION['import_data']['target'] = Horde_Util::getFormData('notepad_target'); + $session->set('horde', 'import_data/target', Horde_Util::getFormData('notepad_target')); break; } @@ -116,7 +116,7 @@ if (is_array($next_step)) { $categories = $cManager->get(); /* Create a Mnemo storage instance. */ - $storage = &Mnemo_Driver::singleton($_SESSION['import_data']['target']); + $storage = &Mnemo_Driver::singleton($session->get('horde', 'import_data/target')); $max_memos = $GLOBALS['injector']->getInstance('Horde_Perms')->hasAppPermission('max_notes'); $num_memos = Mnemo::countMemos(); foreach ($next_step as $row) { @@ -164,7 +164,7 @@ if (is_array($next_step)) { if (is_array($row['created'])) { $row['created'] = $row['created']['ts']; } - $history->log('mnemo:' . $_SESSION['import_data']['target'] . ':' . $note['uid'], + $history->log('mnemo:' . $session->get('horde', 'import_data/target') . ':' . $note['uid'], array('action' => 'add', 'ts' => $row['created']), true); } if (!empty($row['modified'])) { @@ -172,7 +172,7 @@ if (is_array($next_step)) { if (is_array($row['modified'])) { $row['modified'] = $row['modified']['ts']; } - $history->log('mnemo:' . $_SESSION['import_data']['target'] . ':' . $note['uid'], + $history->log('mnemo:' . $session->get('horde', 'import_data/target') . ':' . $note['uid'], array('action' => 'modify', 'ts' => $row['modified']), true); } @@ -187,13 +187,13 @@ if (is_array($next_step)) { if (!count($next_step)) { $notification->push(sprintf(_("The %s file didn't contain any notes."), - $file_types[$_SESSION['import_data']['format']]), 'horde.error'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.error'); } elseif (is_a($result, 'PEAR_Error')) { $notification->push(sprintf(_("There was an error importing the data: %s"), $result->getMessage()), 'horde.error'); } else { $notification->push(sprintf(_("%s file successfully imported"), - $file_types[$_SESSION['import_data']['format']]), 'horde.success'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.success'); } $next_step = $data->cleanup(); } diff --git a/nag/data.php b/nag/data.php index 57bb5d23b..24bda67a3 100644 --- a/nag/data.php +++ b/nag/data.php @@ -132,7 +132,7 @@ case 'export': break; case Horde_Data::IMPORT_FILE: - $_SESSION['import_data']['target'] = Horde_Util::getFormData('tasklist_target'); + $session->set('horde', 'import_data/target', Horde_Util::getFormData('tasklist_target')); break; } @@ -159,7 +159,7 @@ if (is_array($next_step)) { $categories = $cManager->get(); /* Create a Nag storage instance. */ - $storage = Nag_Driver::singleton($_SESSION['import_data']['target']); + $storage = Nag_Driver::singleton($session->get('horde', 'import_data/target')); $max_tasks = $perms->hasAppPermission('max_tasks'); $num_tasks = Nag::countTasks(); $result = null; @@ -210,13 +210,13 @@ if (is_array($next_step)) { if (!count($next_step)) { $notification->push(sprintf(_("The %s file didn't contain any tasks."), - $file_types[$_SESSION['import_data']['format']]), 'horde.error'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.error'); } elseif (is_a($result, 'PEAR_Error')) { $notification->push(sprintf(_("There was an error importing the data: %s"), $result->getMessage()), 'horde.error'); } else { $notification->push(sprintf(_("%s successfully imported"), - $file_types[$_SESSION['import_data']['format']]), 'horde.success'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.success'); } $next_step = $data->cleanup(); } diff --git a/turba/data.php b/turba/data.php index f1ccaa244..a81262feb 100644 --- a/turba/data.php +++ b/turba/data.php @@ -355,13 +355,13 @@ case Horde_Data::IMPORT_FILE: break; } - $_SESSION['import_data']['target'] = $dest; - $_SESSION['import_data']['purge'] = Horde_Util::getFormData('purge'); + $session->set('horde', 'import_data/target', $dest); + $session->set('horde', 'import_data/purge', Horde_Util::getFormData('purge')); break; case Horde_Data::IMPORT_MAPPED: case Horde_Data::IMPORT_DATETIME: - foreach ($cfgSources[$_SESSION['import_data']['target']]['map'] as $field => $null) { + foreach ($cfgSources[$session->get('horde', 'import_data/target')]['map'] as $field => $null) { if (substr($field, 0, 2) != '__' && !is_array($null)) { if ($attributes[$field]['type'] == 'monthyear' || $attributes[$field]['type'] == 'monthdayyear') { @@ -421,7 +421,7 @@ if (is_array($next_step)) { $categories = $cManager->get(); /* Create a Turba storage instance. */ - $dest = $_SESSION['import_data']['target']; + $dest = $session->get('horde', 'import_data/target'); try { $driver = $injector->getInstance('Turba_Driver')->getDriver($source); } catch (Turba_Exception $e) { @@ -431,10 +431,10 @@ if (is_array($next_step)) { if (!count($next_step)) { $notification->push(sprintf(_("The %s file didn't contain any contacts."), - $file_types[$_SESSION['import_data']['format']]), 'horde.error'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.error'); } elseif ($driver) { /* Purge old address book if requested. */ - if ($_SESSION['import_data']['purge']) { + if ($session->get('horde', 'import_data/purge')) { try { $driver->deleteAll(); $notification->push(_("Address book successfully purged."), 'horde.success'); @@ -491,7 +491,7 @@ if (is_array($next_step)) { } if (!$error) { $notification->push(sprintf(_("%s file successfully imported."), - $file_types[$_SESSION['import_data']['format']]), 'horde.success'); + $file_types[$session->get('horde', 'import_data/format')]), 'horde.success'); } } $next_step = $data->cleanup(); @@ -500,7 +500,7 @@ if (is_array($next_step)) { switch ($next_step) { case Horde_Data::IMPORT_MAPPED: case Horde_Data::IMPORT_DATETIME: - foreach ($cfgSources[$_SESSION['import_data']['target']]['map'] as $field => $null) { + foreach ($cfgSources[$session->get('horde', 'import_data/target')]['map'] as $field => $null) { if (substr($field, 0, 2) != '__' && !is_array($null)) { $app_fields[$field] = $attributes[$field]['label']; } diff --git a/turba/lib/Data/Ldif.php b/turba/lib/Data/Ldif.php index 36ff5b408..c3d903dfc 100644 --- a/turba/lib/Data/Ldif.php +++ b/turba/lib/Data/Ldif.php @@ -225,9 +225,10 @@ class Turba_Data_Ldif extends Horde_Data case Horde_Data::IMPORT_FILE: parent::nextStep($action, $param); - $_SESSION['import_data']['data'] = $this->importFile($_FILES['import_file']['tmp_name']); + $f_data = $this->importFile($_FILES['import_file']['tmp_name']); + $data = array(); - foreach ($_SESSION['import_data']['data'] as $record) { + foreach ($f_data as $record) { $turbaHash = array(); foreach ($this->_turbaAttr as $value) { switch ($value) { @@ -284,7 +285,7 @@ class Turba_Data_Ldif extends Horde_Data $data[] = $turbaHash; } - unset($_SESSION['import_data']['data']); + $GLOBALS['session']->remove('horde', 'import_data/data'); return $data; default:
- +