Chris@0: 'Stores module data as key/value pairs per user.', Chris@0: 'fields' => [ Chris@0: 'uid' => [ Chris@18: 'description' => 'The {users}.uid this record affects.', Chris@0: 'type' => 'int', Chris@0: 'unsigned' => TRUE, Chris@0: 'not null' => TRUE, Chris@0: 'default' => 0, Chris@0: ], Chris@0: 'module' => [ Chris@0: 'description' => 'The name of the module declaring the variable.', Chris@0: 'type' => 'varchar_ascii', Chris@0: 'length' => DRUPAL_EXTENSION_NAME_MAX_LENGTH, Chris@0: 'not null' => TRUE, Chris@0: 'default' => '', Chris@0: ], Chris@0: 'name' => [ Chris@0: 'description' => 'The identifier of the data.', Chris@0: 'type' => 'varchar_ascii', Chris@0: 'length' => 128, Chris@0: 'not null' => TRUE, Chris@0: 'default' => '', Chris@0: ], Chris@0: 'value' => [ Chris@0: 'description' => 'The value.', Chris@0: 'type' => 'blob', Chris@0: 'not null' => FALSE, Chris@0: 'size' => 'big', Chris@0: ], Chris@0: 'serialized' => [ Chris@0: 'description' => 'Whether value is serialized.', Chris@0: 'type' => 'int', Chris@0: 'size' => 'tiny', Chris@0: 'unsigned' => TRUE, Chris@0: 'default' => 0, Chris@0: ], Chris@0: ], Chris@0: 'primary key' => ['uid', 'module', 'name'], Chris@0: 'indexes' => [ Chris@0: 'module' => ['module'], Chris@0: 'name' => ['name'], Chris@0: ], Chris@0: 'foreign keys' => [ Chris@18: 'data_user' => [ Chris@18: 'table' => 'users', Chris@18: 'columns' => [ Chris@18: 'uid' => 'uid', Chris@18: ], Chris@18: ], Chris@0: ], Chris@0: ]; Chris@0: Chris@0: return $schema; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Implements hook_install(). Chris@0: */ Chris@0: function user_install() { Chris@0: $storage = \Drupal::entityManager()->getStorage('user'); Chris@0: // Insert a row for the anonymous user. Chris@0: $storage Chris@0: ->create([ Chris@0: 'uid' => 0, Chris@0: 'status' => 0, Chris@0: 'name' => '', Chris@0: ]) Chris@0: ->save(); Chris@0: Chris@0: // We need some placeholders here as name and mail are unique. Chris@0: // This will be changed by the settings form in the installer. Chris@0: $storage Chris@0: ->create([ Chris@0: 'uid' => 1, Chris@0: 'name' => 'placeholder-for-uid-1', Chris@0: 'mail' => 'placeholder-for-uid-1', Chris@0: 'status' => TRUE, Chris@0: ]) Chris@0: ->save(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Fix invalid token in the status_blocked email body. Chris@0: */ Chris@0: function user_update_8100() { Chris@0: $config_factory = \Drupal::configFactory(); Chris@0: $config = $config_factory->getEditable('user.mail'); Chris@0: $mail = $config->get('status_blocked'); Chris@0: if (strpos($mail['body'], '[site:account-name]') !== FALSE) { Chris@0: $mail['body'] = str_replace('[site:account-name]', '[site:name]', $mail['body']); Chris@0: $config->set('status_blocked', $mail)->save(TRUE); Chris@0: } Chris@0: }