diff -r 07239de796bb -r e756a8c72c3d cms/drupal/modules/contact/contact.install --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/drupal/modules/contact/contact.install Fri Sep 08 12:04:06 2017 +0200 @@ -0,0 +1,168 @@ + 'Contact form category settings.', + 'fields' => array( + 'cid' => array( + 'type' => 'serial', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'description' => 'Primary Key: Unique category ID.', + ), + 'category' => array( + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + 'default' => '', + 'description' => 'Category name.', + 'translatable' => TRUE, + ), + 'recipients' => array( + 'type' => 'text', + 'not null' => TRUE, + 'size' => 'big', + 'description' => 'Comma-separated list of recipient e-mail addresses.', + ), + 'reply' => array( + 'type' => 'text', + 'not null' => TRUE, + 'size' => 'big', + 'description' => 'Text of the auto-reply message.', + ), + 'weight' => array( + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + 'description' => "The category's weight.", + ), + 'selected' => array( + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + 'size' => 'tiny', + 'description' => 'Flag to indicate whether or not category is selected by default. (1 = Yes, 0 = No)', + ), + ), + 'primary key' => array('cid'), + 'unique keys' => array( + 'category' => array('category'), + ), + 'indexes' => array( + 'list' => array('weight', 'category'), + ), + ); + + return $schema; +} + +/** + * Implements hook_install(). + */ +function contact_install() { + // Insert a default contact category. + db_insert('contact') + ->fields(array( + 'category' => 'Website feedback', + 'recipients' => variable_get('site_mail', ini_get('sendmail_from')), + 'selected' => 1, + 'reply' => '', + )) + ->execute(); +} + +/** + * Implements hook_uninstall(). + */ +function contact_uninstall() { + variable_del('contact_default_status'); + variable_del('contact_threshold_limit'); + variable_del('contact_threshold_window'); +} + +/** + * Implements hook_update_dependencies(). + */ +function contact_update_dependencies() { + // contact_update_7001() relies on the {role_permission} table being updated + // to the new format and filled with data. + $dependencies['contact'][7001] = array( + 'system' => 7007, + ); + + // contact_update_7002() relies on the {role_permission} table having the + // module field, which is created in user_update_7006(). + $dependencies['contact'][7002] = array( + 'user' => 7006, + ); + + return $dependencies; +} + +/** + * @addtogroup updates-6.x-to-7.x + * @{ + */ + +/** + * Rename the threshold limit variable. + */ +function contact_update_7000() { + variable_set('contact_threshold_limit', variable_get('contact_hourly_threshold', 5)); + variable_del('contact_hourly_threshold'); +} + +/** + * Rename the administer contact forms permission. + */ +function contact_update_7001() { + db_update('role_permission') + ->fields(array('permission' => 'administer contact forms')) + ->condition('permission', 'administer site-wide contact form') + ->execute(); +} + +/** + * Enable the 'access user contact forms' for registered users by default. + */ +function contact_update_7002() { + // Do not use user_role_grant_permission() since it relies on + // hook_permission(), which will not run for contact module if it is + // disabled. + db_merge('role_permission') + ->key(array( + 'rid' => DRUPAL_AUTHENTICATED_RID, + 'permission' => 'access user contact forms', + 'module' => 'contact', + )) + ->execute(); +} + +/** + * Change the weight column to normal int. + */ +function contact_update_7003() { + db_drop_index('contact', 'list'); + db_change_field('contact', 'weight', 'weight', array( + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + 'description' => "The category's weight.", + ), array( + 'indexes' => array( + 'list' => array('weight', 'category'), + ), + )); +} + +/** + * @} End of "addtogroup updates-6.x-to-7.x". + */