Form declaration (from menu to submit)

Output a simple form, with validation and submit handlers

  1. /*
  2.  * Implementation of hook_menu()
  3.  */
  4. function mysnippet_menu() {
  5. $items['mysnippet/myform'] = array(
  6. 'title' => 'A basic form',
  7. 'description' => 'Example to create a form, validate and handle submitted values',
  8. 'page callback' => 'drupal_get_form', // we want a form
  9. 'page arguments' => array('mysnippet_create_form'),
  10. 'access arguments' => array('basic permission'), //only users with this permission enabled have access to the form otherwise use 'access callback' => TRUE,
  11. 'type' => MENU_CALLBACK, // won't be displayed in any menu you could use MENU_PRIMARY_LINKS
  12. );
  13. return $items;
  14. }
  15.  
  16. /*
  17.  * Implementation of hook_form()
  18.  */
  19. function mysnippet_create_form($form, &$form_state) {
  20. //the documentation of the form API can be found here: http://drupal.org/node/1702548
  21. $form['name'] = array(
  22. '#type' => 'textfield', // we define a simple text field
  23. '#title' => 'What is your name?',
  24. '#description' => 'you can not enter here Drupal...',
  25. '#required' => TRUE, //we do not want an empty value
  26. '#default_value'=> variable_get("basic_name",""),
  27. );
  28. return $form;
  29. }
  30.  
  31. /*
  32.  * Implementation of hook_form_validate()
  33.  */
  34. function mysnippet_create_form_validate($form, &$form_state) {//submitted values are hold in $form_state['values']
  35. // dpm($form_state['values']) //to see them all
  36. if($form_state['values']['name']=='Drupal') { // we verify that the name is not Drupal
  37. form_set_error('name', 'You can not use Drupal here...'); // if yes we set an error on the field name
  38. }
  39. }
  40.  
  41. /*
  42.  * Implementation of hook_form_submit()
  43.  */
  44. function mysnippet_create_form_submit($form, &$form_state) {
  45. //we use variable_set to record our values in the database (table variable)
  46. variable_set('basic_name', $form_state['values']['name']);
  47.  
  48. //we display a confirmation message
  49. drupal_set_message('Your settings have been saved !', 'status');
  50. }

Form field conditionnal display

In this snippet the text field mycustom is only displayed if the value of the select field myoptions is custom

Theme and render

display some content using drupal_render() and theme (this is the official way to use theme function)

Simple block definition

Define and set content into a block. See hook_block_configure and hook_block_save if you want people be able to choose options.

Form declaration (from menu to submit)

Output a simple form, with validation and submit handlers

Jquery file structure declaration

Declare custom jquery code (attached to a theme or module) so that $ selector is available