Index: branches/5.2.x/core/install/upgrades.php =================================================================== diff -u -N -r16634 -r16779 --- branches/5.2.x/core/install/upgrades.php (.../upgrades.php) (revision 16634) +++ branches/5.2.x/core/install/upgrades.php (.../upgrades.php) (revision 16779) @@ -1,6 +1,6 @@ migrateExportUserPresets(); + } + if ( $mode != 'before' ) { return; } @@ -2411,4 +2415,43 @@ } } } + + /** + * Transforms "export_settings" persistent session variable into "ExportUserPresets" database table. + * + * @return void + */ + protected function migrateExportUserPresets() + { + $sql = 'SELECT VariableValue, PortalUserId + FROM ' . TABLE_PREFIX . 'UserPersistentSessionData + WHERE VariableName = "export_settings"'; + $variable_values = $this->Conn->GetColIterator($sql, 'PortalUserId'); + + foreach ( $variable_values as $user_id => $variable_value ) { + if ( !kUtil::IsSerialized($variable_value) ) { + continue; + } + + $variable_value = unserialize($variable_value); + + foreach ( $variable_value as $prefix => $prefix_export_settings ) { + foreach ( $prefix_export_settings as $name => $export_settings ) { + $fields_hash = array( + 'PortalUserId' => $user_id, + 'ItemPrefix' => $prefix, + 'PresetName' => $name, + 'PresetData' => json_encode($export_settings), + ); + $this->Conn->doInsert($fields_hash, TABLE_PREFIX . 'ExportUserPresets', 'REPLACE'); + } + } + } + + $sql = 'DELETE + FROM ' . TABLE_PREFIX . 'UserPersistentSessionData + WHERE VariableName = "export_settings"'; + $this->Conn->Query($sql); + } + }