wysiwyg_test.module 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * @file
  4. * Testing functionality for Wysiwyg module.
  5. */
  6. /**
  7. * Implements hook_menu().
  8. */
  9. function wysiwyg_test_menu() {
  10. $items['wysiwyg-test/ajax'] = array(
  11. 'title' => 'Ajaxified form',
  12. 'page callback' => 'drupal_get_form',
  13. 'page arguments' => array('wysiwyg_test_ajax_form'),
  14. 'access callback' => TRUE,
  15. );
  16. return $items;
  17. }
  18. /**
  19. * Form constructor for an ajaxified form lazy-loading a textarea.
  20. */
  21. function wysiwyg_test_ajax_form($form, &$form_state) {
  22. $form['enable'] = array(
  23. '#type' => 'checkbox',
  24. '#title' => 'Load textarea',
  25. '#ajax' => array(
  26. 'callback' => 'wysiwyg_test_ajax_form_callback',
  27. 'wrapper' => 'ajax-wrapper',
  28. ),
  29. );
  30. $form['wrapper'] = array(
  31. '#type' => 'container',
  32. '#id' => 'ajax-wrapper',
  33. );
  34. return $form;
  35. }
  36. /**
  37. * #ajax callback for wysiwyg_test_ajax_form().
  38. */
  39. function wysiwyg_test_ajax_form_callback($form, &$form_state) {
  40. $form['body'] = array(
  41. '#type' => 'text_format',
  42. '#default_value' => '',
  43. );
  44. form_builder($form['form_id']['#value'], $form, $form_state);
  45. return $form['body'];
  46. }