Connect to an external db

Sometimes it is useful to use another database than the one installed by default by Drupal.
1. Declare the database in settings.php
the entry default / default is created by Drupal (no idea why it is 2 times default...)

  1. $databases = array (
  2. 'default' =>
  3. 'default' =>
  4. 'database' => 'drupal_db',
  5. 'username' => 'xxx',
  6. ...
  7. ),
  8. ),
  9. 'myotherdb' =>
  10. 'default' =>
  11. 'database' => 'my_snippet',
  12. 'username' => 'xxx',
  13. ...
  14. ),
  15. ),
  16. );

2.then in a module use db_set_active() function to switch from database.

  1. db_set_active('myotherdb');
  2. db_query("select snippet_nid from xx");

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