accordion_blocks.admin.inc 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * @file
  4. * Add, Update and Delete block functions for the accordion blocks module.
  5. */
  6. /**
  7. * Menu callback for displaying the list of
  8. * accordion blocks created.
  9. */
  10. function accordion_block_list() {
  11. $result = db_select('accordion_blocks', 'sd')
  12. ->fields('sd', array('title', 'id'))
  13. ->orderBy('title', 'ASC')
  14. ->execute();
  15. $header = array(
  16. array('data' => t('Accordion Blocks')),
  17. array('data' => t('Operations'), 'colspan' => 3),
  18. );
  19. $rows = array();
  20. foreach ($result as $row) {
  21. $tablerow = array(
  22. array('data' => $row->title),
  23. array('data' => l(t('Edit'), 'admin/structure/accordion_block/manage/' . $row->id . '/edit')),
  24. array('data' => l(t('Delete'), 'admin/structure/accordion_block/manage/' . $row->id . '/delete')),
  25. );
  26. $rows[] = $tablerow;
  27. }
  28. if (!$rows) {
  29. $rows[] = array(array('data' => t('No Accordion blocks available.'), 'colspan' => 4));
  30. }
  31. $build = array(
  32. '#theme' => 'table',
  33. '#header' => $header,
  34. '#rows' => $rows,
  35. '#attributes' => array('id' => 'accordion_blocks'),
  36. );
  37. return $build;
  38. }
  39. /**
  40. * Deletion of accordion block.
  41. */
  42. function accordion_block_delete($form, $form_state, $accordion_block) {
  43. $form['id'] = array('#type' => 'hidden', '#value' => $accordion_block['id']);
  44. $form['sd_name'] = array('#type' => 'hidden', '#value' => $accordion_block['title']);
  45. 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'));
  46. }
  47. /**
  48. * Submit handler for accordion block deletion.
  49. */
  50. function accordion_block_delete_submit($form, &$form_state) {
  51. $delta = $form_state['values']['sd_name'] . "_" . $form_state['values']['id'];
  52. db_delete('accordion_blocks')
  53. ->condition('id', $form_state['values']['id'])
  54. ->execute();
  55. db_delete('block')
  56. ->condition('module', 'accordion_blocks')
  57. ->condition('delta', $delta)
  58. ->execute();
  59. drupal_set_message(t('The accordion block %name has been removed.', array('%name' => $form_state['values']['sd_name'])));
  60. cache_clear_all();
  61. $form_state['redirect'] = 'admin/structure/accordion_block';
  62. }