danielebarchiesi@0: condition('module', 'imce')->execute(); danielebarchiesi@0: variable_del('imce_profiles'); danielebarchiesi@0: variable_del('imce_roles_profiles'); danielebarchiesi@0: variable_del('imce_settings_textarea'); danielebarchiesi@0: variable_del('imce_settings_absurls'); danielebarchiesi@0: variable_del('imce_settings_replace'); danielebarchiesi@0: variable_del('imce_settings_thumb_method'); danielebarchiesi@0: variable_del('imce_settings_disable_private'); danielebarchiesi@0: variable_del('imce_custom_content'); danielebarchiesi@0: variable_del('imce_custom_process'); danielebarchiesi@0: variable_del('imce_custom_init'); danielebarchiesi@0: variable_del('imce_custom_scan'); danielebarchiesi@0: variable_del('imce_custom_response'); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Updates from 6.x to 7.x. danielebarchiesi@0: */ danielebarchiesi@0: function imce_update_7000() { danielebarchiesi@0: // Update role-profile assignments danielebarchiesi@0: $roles_profiles = variable_get('imce_roles_profiles', array()); danielebarchiesi@0: if (!empty($roles_profiles)) { danielebarchiesi@0: $scheme = variable_get('file_default_scheme', 'public'); danielebarchiesi@0: foreach ($roles_profiles as $rid => &$role) { danielebarchiesi@0: $role[$scheme . '_pid'] = $role['pid']; danielebarchiesi@0: unset($role['pid']); danielebarchiesi@0: } danielebarchiesi@0: variable_set('imce_roles_profiles', $roles_profiles); danielebarchiesi@0: } danielebarchiesi@0: // Update textarea ids danielebarchiesi@0: $ids = str_replace(' ', '', variable_get('imce_settings_textarea', '')); danielebarchiesi@0: if ($ids != '') { danielebarchiesi@0: $ids = explode(',', $ids); danielebarchiesi@0: foreach ($ids as &$id) { danielebarchiesi@0: $id .= '*'; danielebarchiesi@0: } danielebarchiesi@0: variable_set('imce_settings_textarea', implode(', ', $ids)); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Migrates imce files from {files} to {file_managed}. danielebarchiesi@0: * Removes {imce_files} in favor of {file_usage}. danielebarchiesi@0: */ danielebarchiesi@0: function imce_update_7001(&$sandbox) { danielebarchiesi@0: if (!db_table_exists('imce_files') || !db_table_exists('files')) { danielebarchiesi@0: return; danielebarchiesi@0: } danielebarchiesi@0: // Initiate progress danielebarchiesi@0: if (!isset($sandbox['progress'])) { danielebarchiesi@0: $sandbox['progress'] = 0; danielebarchiesi@0: $sandbox['last_fid_processed'] = 0; danielebarchiesi@0: $sandbox['max'] = db_query("SELECT COUNT(*) FROM {imce_files} i INNER JOIN {files} f ON i.fid = f.fid")->fetchField(); danielebarchiesi@0: } danielebarchiesi@0: // Prepare variables danielebarchiesi@0: $limit = 250; danielebarchiesi@0: $basedir = variable_get('file_directory_path', conf_path() . '/files') . '/'; danielebarchiesi@0: $baselen = strlen($basedir); danielebarchiesi@0: $scheme = file_default_scheme() . '://'; danielebarchiesi@0: $result = db_query_range('SELECT f.* FROM {imce_files} i INNER JOIN {files} f ON i.fid = f.fid WHERE i.fid > :fid ORDER BY i.fid', 0, $limit, array(':fid' => $sandbox['last_fid_processed']))->fetchAll(); danielebarchiesi@0: // Migrate imce files from {files} to {file_managed} danielebarchiesi@0: foreach ($result as $file) { danielebarchiesi@0: $relpath = substr($file->filepath, 0, $baselen) == $basedir ? substr($file->filepath, $baselen) : $file->filepath; danielebarchiesi@0: $file->uri = file_stream_wrapper_uri_normalize($scheme . $relpath); danielebarchiesi@0: unset($file->filepath); danielebarchiesi@0: if (!db_query("SELECT 1 FROM {file_managed} WHERE fid = :fid", array(':fid' => $file->fid))->fetchField()) { danielebarchiesi@0: // Check duplicate uri danielebarchiesi@0: if ($fid = db_query("SELECT fid FROM {file_managed} WHERE uri = :uri", array(':uri' => $file->uri))->fetchField()) { danielebarchiesi@0: $file->fid = $fid; danielebarchiesi@0: } danielebarchiesi@0: else { danielebarchiesi@0: drupal_write_record('file_managed', $file); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: file_usage_add($file, 'imce', 'file', $file->fid); danielebarchiesi@0: $sandbox['progress']++; danielebarchiesi@0: $sandbox['last_fid_processed'] = $file->fid; danielebarchiesi@0: } danielebarchiesi@0: // Drop {imce_files} if the progress is complete. danielebarchiesi@0: $sandbox['#finished'] = empty($sandbox['max']) ? 1 : $sandbox['progress'] / $sandbox['max']; danielebarchiesi@0: if ($sandbox['#finished'] >= 1) { danielebarchiesi@0: db_drop_table('imce_files'); danielebarchiesi@0: return t('Migrated IMCE files.'); danielebarchiesi@0: } danielebarchiesi@0: }