mb.admin.inc 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. /*
  3. * @file
  4. * Function file to administer the MB module settings.
  5. */
  6. /**
  7. * Provides the MB button values settings form.
  8. */
  9. function mb_admin() {
  10. $module = 'mb';
  11. $mb_default_values = mb_default_values($module);
  12. $mb_values = mb_get_values($module);
  13. // Provide customizable button and tab values.
  14. // Don't make default value strings translatable here!
  15. $form['values'] = array(
  16. '#type' => 'fieldset',
  17. '#title' => t('Button and tab values'),
  18. '#description' => t('Use your own names for the buttons and the tab. These names are translatable with the translation interface. Do not enter translated texts here.'),
  19. '#collapsible' => FALSE,
  20. '#collapsed' => FALSE
  21. );
  22. $form['values'][$module . '_value_cancel'] = array(
  23. '#type' => 'textfield',
  24. '#title' => t('Cancel button'),
  25. '#size' => 20,
  26. '#maxlength' => 50,
  27. '#default_value' => isset($mb_values['cancel']) ? $mb_values['cancel'] : $mb_default_values['cancel'],
  28. '#required' => TRUE,
  29. '#prefix' => '<div class="' . $module . '-values-first, ' . $module . '-values-first">'
  30. );
  31. $form['values'][$module . '_value_sac'] = array(
  32. '#type' => 'textfield',
  33. '#title' => t('Save and continue button'),
  34. '#size' => 20,
  35. '#maxlength' => 50,
  36. '#default_value' => isset($mb_values['sac']) ? $mb_values['sac'] : $mb_default_values['sac'],
  37. '#required' => TRUE,
  38. '#suffix' => '</div>'
  39. );
  40. $form['values'][$module . '_value_sacn'] = array(
  41. '#type' => 'textfield',
  42. '#title' => t('Save and create new button'),
  43. '#size' => 20,
  44. '#maxlength' => 50,
  45. '#default_value' => isset($mb_values['sacn']) ? $mb_values['sacn'] : $mb_default_values['sacn'],
  46. '#required' => TRUE,
  47. '#prefix' => '<div class="' . $module . '-values-last, ' . $module . '-values-last">'
  48. );
  49. $form['values'][$module . '_value_tabcn'] = array(
  50. '#type' => 'textfield',
  51. '#title' => t('Create new tab'),
  52. '#description' => t('This tab are displayed in addition to the content %edit tab.', array('%edit' => t('Edit'))),
  53. '#size' => 20,
  54. '#maxlength' => 50,
  55. '#default_value' => isset($mb_values['tabcn']) ? $mb_values['tabcn'] : $mb_default_values['tabcn'],
  56. '#required' => TRUE,
  57. '#suffix' => '</div>'
  58. );
  59. $form['submit']['save'] = array(
  60. '#type' => 'submit',
  61. '#name' => 'save',
  62. '#value' => t('Save')
  63. );
  64. $form['submit']['reset'] = array(
  65. '#type' => 'submit',
  66. '#name' => 'reset',
  67. '#value' => t('Reset to defaults')
  68. );
  69. return $form;
  70. }
  71. /**
  72. * Display the MB button values settings form page.
  73. *
  74. * @return
  75. * The complete HTML formatted administer page.
  76. */
  77. function theme_mb_admin($variables) {
  78. $form = drupal_get_form('mb_admin');
  79. $output = drupal_render($output);
  80. $output .= drupal_render_children($form);
  81. $output .= '<p style="text-align: right">' . t('Module development by <a href="@development-url">Quiptime Group</a>.', array('@development-url' => url('http://www.quiptime.com'))) . '</p>';
  82. return $output;
  83. }
  84. /**
  85. * Save settings from the admin form.
  86. */
  87. function mb_admin_submit($form, &$form_state) {
  88. $module = 'mb';
  89. $mb_values = array();
  90. $mb_default_values = mb_default_values($module);
  91. if ($form_state['clicked_button']['#id'] == 'edit-save') {
  92. // Save the MB button value settings.
  93. // Don't make value strings translatable here!
  94. $mb_values = array(
  95. 'cancel' => isset($form_state['values'][$module . '_value_cancel']) ? trim($form_state['values'][$module . '_value_cancel']) : $mb_default_values['cancel'],
  96. 'sac' => isset($form_state['values'][$module . '_value_sac']) ? trim($form_state['values'][$module . '_value_sac']) : $mb_default_values['sac'],
  97. 'sacn' => isset($form_state['values'][$module . '_value_sacn']) ? trim($form_state['values'][$module . '_value_sacn']) : $mb_default_values['sacn'],
  98. 'tabcn' => isset($form_state['values'][$module . '_value_tabcn']) ? trim($form_state['values'][$module . '_value_tabcn']) : $mb_default_values['tabcn']
  99. );
  100. variable_set($module . '_values', $mb_values);
  101. drupal_set_message(t('The %module settings have been saved.', array('%module' => t('More Buttons'))), 'status');
  102. }
  103. elseif ($form_state['clicked_button']['#id'] == 'edit-reset') {
  104. $form_state['redirect'] = 'admin/config/mb/buttons/reset';
  105. }
  106. }
  107. /**
  108. * Menu callback. Define the confirm form output.
  109. *
  110. * @return
  111. * The confirm form.
  112. */
  113. function mb_reset() {
  114. $question = t('Are you sure you want to reset all %module settings to their default values?', array('%module' => t('More Buttons')));
  115. $variables = array(
  116. 'items' => mb_default_values('mb'),
  117. 'title' => 'Default values'
  118. );
  119. $information = theme('item_list', $variables);
  120. $information .= '<p>' . t('This action cannot be undone.') . '</p>';
  121. return confirm_form(array(),
  122. $question,
  123. array('path' => 'admin/config/mb/buttons', 'attributes' => array('class' => 'button')), $information,
  124. t('Reset'),
  125. t('Cancel')
  126. );
  127. }
  128. /**
  129. * Resave all system variables with their default values to reset the module settings.
  130. */
  131. function mb_reset_submit($form, &$form_state) {
  132. // Resave variables.
  133. $mb_default_values = mb_default_values('mb');
  134. variable_set('mb_values', $mb_default_values);
  135. drupal_set_message(t('The %module settings have been set back.', array('%module' => t('More Buttons'))), 'status');
  136. watchdog('More Buttons', 'The %module settings have been set back.', array('%module' => t('More Buttons')), WATCHDOG_NOTICE, l(t('view'), 'admin/config/mb/buttons'));
  137. $form_state['redirect'] = 'admin/config/mb/buttons';
  138. }