override a default .tpl.php file in a custom module

to basically use a template file in a custom module use the hook_theme_registry_alter(&$theme_registry) like this

  1. function mymodule_theme_registry_alter(&$theme_registry) {
  2. // this will override the default page.tpl.php by page--mymodule.tpl.php located at the root of mymodule
  3. $module_path = drupal_get_path('module', 'mymodule');
  4.  
  5. $theme_registry['page__mymodule'] = array(
  6. 'template' => $module_path.'/page--mymodule',
  7. 'type' => 'theme_engine',
  8. 'theme path' => $module_path,
  9. 'render element' => 'page',
  10. );
  11. }

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