-
Notifications
You must be signed in to change notification settings - Fork 3
/
demo.module
132 lines (124 loc) · 3.68 KB
/
demo.module
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
/**
* @file
* Demonstration site API Backdrop integration functions.
*/
/**
* Implements hook_perm().
*/
function demo_permission() {
return array(
'administer demo settings' => array(
'title' => t('Create snapshots and reset the site'),
'restrict access' => TRUE,
),
);
}
/**
* Implements hook_menu().
*/
function demo_menu() {
$items = array();
$admin_access = array('administer demo settings');
$items['admin/structure/demo'] = array(
'title' => 'Snapshots',
'description' => 'Create snapshots and reset the site.',
'page callback' => 'backdrop_get_form',
'page arguments' => array('demo_manage_form'),
'access arguments' => $admin_access,
'file' => 'demo.admin.inc',
);
$items['admin/structure/demo/list'] = array(
'title' => 'List',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
$items['admin/structure/demo/dump'] = array(
'title' => 'Create snapshot',
'page callback' => 'backdrop_get_form',
'page arguments' => array('demo_dump_form'),
'access arguments' => $admin_access,
'file' => 'demo.admin.inc',
'type' => MENU_LOCAL_ACTION,
);
$items['admin/structure/demo/reset'] = array(
'title' => 'Reset',
'page callback' => 'backdrop_get_form',
'page arguments' => array('demo_reset_confirm'),
'access arguments' => $admin_access,
'file' => 'demo.admin.inc',
'type' => MENU_LOCAL_TASK,
'weight' => 3,
);
$items['admin/structure/demo/delete/%'] = array(
'title' => 'Delete snapshot',
'page callback' => 'backdrop_get_form',
'page arguments' => array('demo_delete_confirm', 4),
'access arguments' => $admin_access,
'file' => 'demo.admin.inc',
'type' => MENU_VISIBLE_IN_BREADCRUMB,
);
$items['admin/structure/demo/settings'] = array(
'title' => 'Settings',
'page callback' => 'backdrop_get_form',
'page arguments' => array('demo_admin_settings'),
'access arguments' => $admin_access,
'file' => 'demo.admin.inc',
'type' => MENU_LOCAL_TASK,
'weight' => 10,
);
$items['demo/autocomplete'] = array(
'page callback' => 'demo_autocomplete',
'access arguments' => $admin_access,
'file' => 'demo.admin.inc',
'type' => MENU_CALLBACK,
);
$items['demo/download'] = array(
'page callback' => 'demo_download',
'access arguments' => $admin_access,
'file' => 'demo.admin.inc',
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Create a new snapshot.
*
* @param $options
* A structured array of snapshot options:
* - filename: The base output filename, without extension.
* - default: Whether to set this dump as new default snapshot.
* - description: A description for the snapshot. If a snapshot with the same
* name already exists and this is left blank, the new snapshot will reuse
* the existing description.
* - tables: An array of tables to dump, keyed by table name (including table
* prefix, if any). The value is an array of dump options:
* - schema: Whether to dump the table schema.
* - data: Whether to dump the table data.
*/
function demo_dump($options) {
module_load_include('inc', 'demo', 'demo.admin');
return _demo_dump($options);
}
/**
* Reset site using snapshot.
*
* @param $filename
* Base snapshot filename, without extension.
* @param $verbose
* Whether to output status messages.
*/
function demo_reset($filename, $verbose = TRUE) {
module_load_include('inc', 'demo', 'demo.admin');
return _demo_reset($filename, $verbose);
}
/**
* Implements hook_config_info().
*/
function demo_config_info() {
$prefixes['demo.settings'] = array(
'label' => t('Demo settings'),
'group' => t('Configuration'),
);
return $prefixes;
}