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. }

Static variable usage

there is a drupal wrapper for static variables: drupal_static()

Simple modal output with Ctools

Modal window provided by Ctools was designed to output forms but it can serve simple html as well.

Connect to an external db

Sometimes it is useful to use another database than the one installed by default by Drupal.

usefull image functions

how to get an image path or theme a preset image ?

override a default .tpl.php file in theme

To override a default .tpl.php file (to NOT use the page.tpl.php file for instance but page--mysnippet.tpl.php)

Programmaticaly insert block

to output a block created by a module in code, use:

View hooks order

The execution order of view hooks is important if you don't want your tweaks to be overridden

Drupal module list: lesser known

Huge list. I'm sure these Drupal modules will help in the future... if they are not currently used yet!! Always rely on (good...) modules built by the Drupal community than write your own!

Send an email

There is unfortunately no easy way to send an email in Drupal... and no way to send an html email using core functions!!

Firebug console error prevention

If you need to publish code that contains "console" calls (for instance console.log with firebug) and don't want javascript to be broken on browser that don't have console enabled, this function is useful: