-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaccordion_blocks.admin.inc
75 lines (62 loc) · 2.18 KB
/
accordion_blocks.admin.inc
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
<?php
/**
* @file
* Add, Update and Delete block functions for the accordion blocks module.
*/
/**
* Menu callback for displaying the list of
* accordion blocks created.
*/
function accordion_block_list() {
$result = db_select('accordion_blocks', 'sd')
->fields('sd', array('title', 'id'))
->orderBy('title', 'ASC')
->execute();
$header = array(
array('data' => t('Accordion Blocks')),
array('data' => t('Operations'), 'colspan' => 3),
);
$rows = array();
foreach ($result as $row) {
$tablerow = array(
array('data' => $row->title),
array('data' => l(t('Edit'), 'admin/structure/accordion_block/manage/' . $row->id . '/edit')),
array('data' => l(t('Delete'), 'admin/structure/accordion_block/manage/' . $row->id . '/delete')),
);
$rows[] = $tablerow;
}
if (!$rows) {
$rows[] = array(array('data' => t('No Accordion blocks available.'), 'colspan' => 4));
}
$build = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#attributes' => array('id' => 'accordion_blocks'),
);
return $build;
}
/**
* Deletion of accordion block.
*/
function accordion_block_delete($form, $form_state, $accordion_block) {
$form['id'] = array('#type' => 'hidden', '#value' => $accordion_block['id']);
$form['sd_name'] = array('#type' => 'hidden', '#value' => $accordion_block['title']);
return confirm_form($form, t('Are you sure you want to delete the accordion block %name?', array('%name' => $accordion_block['title'])), 'admin/structure/accordion_block', '', t('Delete'), t('Cancel'));
}
/**
* Submit handler for accordion block deletion.
*/
function accordion_block_delete_submit($form, &$form_state) {
$delta = $form_state['values']['sd_name'] . "_" . $form_state['values']['id'];
db_delete('accordion_blocks')
->condition('id', $form_state['values']['id'])
->execute();
db_delete('block')
->condition('module', 'accordion_blocks')
->condition('delta', $delta)
->execute();
drupal_set_message(t('The accordion block %name has been removed.', array('%name' => $form_state['values']['sd_name'])));
cache_clear_all();
$form_state['redirect'] = 'admin/structure/accordion_block';
}