diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/user/user.module | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/user/user.module b/modules/user/user.module index 277c5fc5a..500875779 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -3691,3 +3691,27 @@ function user_file_download_access($field, $entity_type, $entity) { return user_view_access($entity); } } + +/** + * Implements hook_system_info_alter(). + * + * Drupal 7 ships with two methods to add additional fields to users: Profile + * module, a legacy module dating back from 2002, and Field API integration + * with users. While Field API support for users currently provides less end + * user features, the inefficient data storage mechanism of Profile module, as + * well as its lack of consistency with the rest of the entity / field based + * systems in Drupal 7, make this a sub-optimal solution to those who were not + * using it in previous releases of Drupal. + * + * To prevent new Drupal 7 sites from installing Profile module, and + * unwittingly ending up with two completely different and incompatible methods + * of extending users, remove it from the available modules by setting it to + * hidden if the profile_* tables are not already present. + * + * @todo: Remove in D8, pending upgrade path. + */ +function user_system_info_alter(&$info, $file, $type) { + if ($type == 'module' && $file->name == 'profile' && !db_table_exists('profile_field')) { + $info['hidden'] = TRUE; + } +} |