user_field_privacy.install in User Field Privacy 7
Install, update and uninstall functions for the user_field_privacy module.
File
user_field_privacy.installView source
<?php
/**
* @file
* Install, update and uninstall functions for the user_field_privacy module.
*/
/**
* Implements hook_schema().
*/
function user_field_privacy_schema() {
$schema['user_field_privacy_value'] = array(
'fields' => array(
'fid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'uid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'private' => array(
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array(
'fid',
'uid',
),
'indexes' => array(
'fid' => array(
'fid',
),
'uid' => array(
'uid',
),
),
);
return $schema;
}
/**
* Converts the DB settings to proper Field API settings for exportability.
*/
function user_field_privacy_update_7000() {
// Not using Batch API and/or update hooks' $sandbox: most likely we do not
// have that many fields which would cause PHP timeouts.
$query = db_select('user_field_privacy_field', 'ufpf');
$query
->fields('ufpf', array(
'privacy',
));
$field_config_instance = $query
->innerJoin('field_config_instance', 'fci', '%alias.id = ufpf.fid');
$query
->fields('fci', array(
'field_name',
));
$result = $query
->execute();
while ($field = $result
->fetchObject()) {
$instance = field_info_instance('user', $field->field_name, 'user');
$instance['settings']['user_field_privacy'] = $field->privacy;
field_update_instance($instance);
}
}
/**
* Drops the no longer needed user_field_privacy_field table.
*/
function user_field_privacy_update_7001() {
db_drop_table('user_field_privacy_field');
}
/**
* Make {user_field_privacy_value}.fid and .uid fields NOT NULL.
*/
function user_field_privacy_update_7002() {
db_change_field('user_field_privacy_value', 'fid', 'fid', array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
));
db_change_field('user_field_privacy_value', 'uid', 'uid', array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
));
}
Functions
Name![]() |
Description |
---|---|
user_field_privacy_schema | Implements hook_schema(). |
user_field_privacy_update_7000 | Converts the DB settings to proper Field API settings for exportability. |
user_field_privacy_update_7001 | Drops the no longer needed user_field_privacy_field table. |
user_field_privacy_update_7002 | Make {user_field_privacy_value}.fid and .uid fields NOT NULL. |