captcha.install in CAPTCHA 5.3
Same filename and directory in other branches
Installation file for the core CAPTCHA module.
File
captcha.installView source
<?php
/**
* @file
* Installation file for the core CAPTCHA module.
*/
/**
* Create tables on install
*/
function captcha_install() {
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
db_query("CREATE TABLE {captcha_points} (\n form_id varchar(128) NOT NULL,\n module varchar(64) default NULL,\n type varchar(64) default NULL,\n PRIMARY KEY (form_id)\n ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
$succes = TRUE;
break;
case 'pgsql':
db_query("CREATE TABLE {captcha_points} (\n form_id varchar(128) NOT NULL,\n module varchar(64) default NULL,\n type varchar(64) default NULL,\n PRIMARY KEY (form_id)\n );");
$succes = TRUE;
break;
default:
drupal_set_message(t('Unsupported database.'), 'error');
$succes = FALSE;
}
if ($succes) {
// insert some defaults
$form_ids = array(
'comment_form',
'contact_mail_user',
'contact_mail_page',
'user_register',
'user_pass',
'user_login',
'user_login_block',
);
foreach ($form_ids as $form_id) {
db_query("INSERT INTO {captcha_points} (form_id, module, type) VALUES ('%s', NULL, NULL)", $form_id);
}
drupal_set_message(t('The installation of the captcha_points table and some default entries was successful.'), 'status');
drupal_set_message(t('You can now <a href="!captcha_admin">configure the CAPTCHA module</a> for your site.', array(
'!captcha_admin' => url('admin/user/captcha'),
)), 'status');
}
else {
drupal_set_message(t('The installation of the CAPTCHA module failed.'), 'error');
}
}
/**
* Implementation of hook_update_N()
*/
function captcha_update_1() {
$items = array();
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$items[] = update_sql("CREATE TABLE {captcha_points} (\n form_id varchar(128) NOT NULL,\n module varchar(64) default NULL,\n type varchar(64) default NULL,\n PRIMARY KEY (form_id)\n ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
$succes = TRUE;
break;
case 'pgsql':
$items[] = update_sql("CREATE TABLE {captcha_points} (\n form_id varchar(128) NOT NULL,\n module varchar(64) default NULL,\n type varchar(64) default NULL,\n PRIMARY KEY (form_id)\n );");
$succes = TRUE;
break;
default:
drupal_set_message(t('Unsupported database.'), 'error');
$succes = FALSE;
break;
}
if ($succes) {
// insert some defaults
$form_ids = array(
'comment_form',
'contact_mail_user',
'contact_mail_page',
'user_register',
'user_pass',
);
foreach ($form_ids as $form_id) {
$items[] = update_sql("INSERT INTO {captcha_points} (form_id, module, type) VALUES ('{$form_id}', NULL, NULL)");
}
}
return $items;
}
/**
* Implementation of hook_update_N()
*/
function captcha_update_2() {
$items = array();
// insert some defaults
$form_ids = array(
'user_login',
'user_login_block',
);
foreach ($form_ids as $form_id) {
$items[] = update_sql("INSERT INTO {captcha_points} (form_id, module, type) VALUES ('{$form_id}', NULL, NULL)");
}
return $items;
}
/**
* Implementation of hook_update_N()
*/
function captcha_update_3() {
// Clearing of the menu cache is needed because the internal menu structure
// of the CAPTCHA module changed a bit.
// Because update.php does menu cache clearing automatically,
// we just do nothing here except returning an empty array.
return array();
}
/**
* Remove tables on uninstall.
*/
function captcha_uninstall() {
db_query("DROP TABLE {captcha_points}");
db_query("DELETE FROM {variable} WHERE name LIKE 'captcha_%'");
cache_clear_all('variables', 'cache');
}
Functions
Name![]() |
Description |
---|---|
captcha_install | Create tables on install |
captcha_uninstall | Remove tables on uninstall. |
captcha_update_1 | Implementation of hook_update_N() |
captcha_update_2 | Implementation of hook_update_N() |
captcha_update_3 | Implementation of hook_update_N() |