pagebreak.inc 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * @file
  4. * Webform module page break component.
  5. */
  6. /**
  7. * Implements _webform_defaults_component().
  8. */
  9. function _webform_defaults_pagebreak() {
  10. return array(
  11. 'name' => '',
  12. 'form_key' => NULL,
  13. 'pid' => 0,
  14. 'weight' => 0,
  15. 'extra' => array(
  16. 'private' => FALSE,
  17. 'next_page_label' => '',
  18. 'prev_page_label' => '',
  19. ),
  20. );
  21. }
  22. /**
  23. * Implements _webform_theme_component().
  24. */
  25. function _webform_theme_pagebreak() {
  26. return array(
  27. 'webform_display_pagebreak' => array(
  28. 'render element' => 'element',
  29. 'file' => 'components/pagebreak.inc',
  30. ),
  31. );
  32. }
  33. /**
  34. * Implements _webform_edit_component().
  35. */
  36. function _webform_edit_pagebreak($component) {
  37. $form = array();
  38. // Force the parent to always be root.
  39. $form['position']['pid'] = array(
  40. '#type' => 'hidden',
  41. '#value' => '0',
  42. );
  43. $form['display'] = array('#type' => 'markup'); // Hide the display options.
  44. $form['extra']['next_page_label'] = array(
  45. '#type' => 'textfield',
  46. '#title' => t('Next page button label'),
  47. '#description' => t('This is used for the <em>Next Page</em> button on the page before this page break. Default: <em>Next Page &gt;</em>'),
  48. '#default_value' => $component['extra']['next_page_label'],
  49. '#size' => 30,
  50. );
  51. $form['extra']['prev_page_label'] = array(
  52. '#type' => 'textfield',
  53. '#title' => t('Prev page button label'),
  54. '#description' => t('This is used for the <em>Prev Page</em> button on the page after this page break. Default: <em>&lt; Prev Page</em>'),
  55. '#default_value' => $component['extra']['prev_page_label'],
  56. '#size' => 30,
  57. );
  58. return $form;
  59. }
  60. /**
  61. * Implements _webform_render_component().
  62. */
  63. function _webform_render_pagebreak($component, $value = NULL, $filter = TRUE) {
  64. $element = array(
  65. '#type' => 'hidden',
  66. '#value' => $component['name'],
  67. '#weight' => $component['weight'],
  68. );
  69. return $element;
  70. }
  71. /**
  72. * Implements _webform_render_component().
  73. */
  74. function _webform_display_pagebreak($component, $value = NULL, $format = 'html') {
  75. $element = array(
  76. '#theme' => 'webform_display_pagebreak',
  77. '#title' => $component['name'],
  78. '#weight' => $component['weight'],
  79. '#format' => $format,
  80. '#translatable' => array('title'),
  81. );
  82. return $element;
  83. }
  84. /**
  85. * Format the text output data for this component.
  86. */
  87. function theme_webform_display_pagebreak($variables) {
  88. $element = $variables['element'];
  89. return $element['#format'] == 'html' ? '<h2 class="webform-page">' . check_plain($element['#title']) . '</h2>' : "--" . $element['#title'] . "--\n";
  90. }