honeypot.install in Honeypot 8
Same filename and directory in other branches
Contains install and update functions for Honeypot.
File
honeypot.installView source
<?php
/**
* @file
* Contains install and update functions for Honeypot.
*/
use Drupal\Core\Url;
/**
* Implements hook_schema().
*/
function honeypot_schema() {
$schema['honeypot_user'] = [
'description' => 'Table that stores failed attempts to submit a form.',
'fields' => [
'uid' => [
'description' => 'Foreign key to {users}.uid; uniquely identifies a Drupal user to whom this ACL data applies.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
],
'hostname' => [
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
'description' => 'Hostname of user that that triggered honeypot.',
],
'timestamp' => [
'description' => 'Date/time when the form submission failed, as Unix timestamp.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
],
],
'indexes' => [
'uid' => [
'uid',
],
'timestamp' => [
'timestamp',
],
],
];
return $schema;
}
/**
* Implements hook_install().
*/
function honeypot_install() {
if (PHP_SAPI !== 'cli') {
$config_url = Url::fromUri('base://admin/config/content/honeypot');
\Drupal::messenger()
->addMessage(t('Honeypot installed successfully. Please <a href=":url">configure Honeypot</a> to protect your forms from spam bots.', [
':url' => $config_url
->toString(),
]));
}
}
/**
* Implements hook_uninstall().
*/
function honeypot_uninstall() {
// Clear the bootstrap cache.
\Drupal::cache('bootstrap')
->deleteAll();
\Drupal::configFactory()
->getEditable('honeypot.settings.yml')
->delete();
}
/**
* Adds the 'hostname' column to the {honeypot_user} table.
*/
function honeypot_update_8100() {
$schema = honeypot_schema();
$spec = $schema['honeypot_user']['fields']['hostname'];
$spec['initial'] = '';
\Drupal::database()
->schema()
->addField('honeypot_user', 'hostname', $spec);
}
Functions
Name | Description |
---|---|
honeypot_install | Implements hook_install(). |
honeypot_schema | Implements hook_schema(). |
honeypot_uninstall | Implements hook_uninstall(). |
honeypot_update_8100 | Adds the 'hostname' column to the {honeypot_user} table. |