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!!

  1. $to = 'user@domain.tld';
  2.  
  3. $body = 'Dear,
  4.  
  5. This is a message
  6.  
  7. with multilines
  8.  
  9. best regards';
  10.  
  11. $module = 'my_snippet';
  12. $key = 'notify';
  13. $language = language_default();
  14. $params = array();
  15. $from = variable_get('site_mail', '');
  16. $send = FALSE;
  17. $message = drupal_mail($module, $key, $to, $language, $params, $from, $send);
  18.  
  19. $message['subject'] = "This is a subject";
  20. $message['body'] = explode("\n", $body);
  21.  
  22. $system = drupal_mail_system($module, $key);
  23.  
  24. $message = $system->format($message);
  25.  
  26. $message['result'] = $system->mail($message);

Display errors - WSOD

The bootstrap override the values you could set to display error ad the reporting level. To be 100% sure everything is printed out when something fails in a blank screen (wsod), make index.php like this:

Properly render a field

Drupal offers a few (sometimes complicated...) solutions to output a field. Lets take an example with a date field.
To display the full rendered field: field_view_field()

Using once()

ensure ajax reload don't apply the behaviours for items already processed

Change the theme

Programmatically change the theme on runtime by implementing hook_custom_theme()

Manually clear caches

for views and panels

Add a Jquery ui library

get the library names to use in /misc/ui folder

Embed a custom page

Get the rendered output of a custom page created with page manager (ctools) module

Embed a mini panel

Get the html output of a mini-panel

alter / automatize the install process

in the .profile file of the install profile (here "mysnippet" profile)

Aegir: perform custom tasks after a new site is installed

in a custom module, in a file called mysnippet.drush.inc (keep in mind that the install process is handled by drush...)