Enable block

There is no available API to programmatically set a block. Like Drupal core does, we have to use db directly.

  1. // we want to enable a block created by views
  2. db_update('block')
  3. 'status' => 1,
  4. 'weight' => 3,
  5. 'region' => 'sidebar_first',
  6. ))
  7. ->condition('module', 'views')
  8. ->condition('delta', 'blog_latests')
  9. ->condition('theme', 'bartik')
  10. ->execute();

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