| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- <?php
 
- /**
 
- * @file
 
- * The theme system, which controls the output of email messages.
 
- */
 
- /**
 
- * Implements hook_theme_registry_alter().
 
- */
 
- function mailsystem_theme_theme_registry_alter(&$theme_registry) {
 
-   global $theme_key;
 
-   static $recursion_prevention = FALSE;
 
-   // Prevent recursive execution.
 
-   if ($recursion_prevention) {
 
-     return;
 
-   }
 
-   $recursion_prevention = TRUE;
 
-   $mailsystem_theme = mailsystem_get_mail_theme();
 
-   // Only take action if the mailsystem theme is not the current theme.
 
-   if ($mailsystem_theme != $theme_key) {
 
-     $themes = list_themes();
 
-     // Get the mailsystem theme to be used for rendering emails.
 
-     if (isset($themes[$mailsystem_theme])) {
 
-       $theme = clone $themes[$mailsystem_theme];
 
-       if (isset($theme)) {
 
-         // Establish variables for further processing.
 
-         $base_theme = array();
 
-         if (isset($theme->base_themes)) {
 
-           foreach (array_keys($theme->base_themes) as $base) {
 
-             $base_theme[$base] = clone $themes[$base];
 
-           }
 
-         }
 
-         if (isset($theme->base_theme) && !isset($base_theme[$theme->base_theme])) {
 
-           $base_theme[$theme->base_theme] = clone $themes[$theme->base_theme];
 
-         }
 
-         if (isset($theme->engine)) {
 
-           $theme_engine = $theme->engine;
 
-         }
 
-         // Include template files to let _theme_load_registry add preprocess
 
-         // functions.
 
-         include_once(drupal_get_path('theme', $theme->name) . '/template.php');
 
-         foreach ($base_theme as $base) {
 
-           include_once(drupal_get_path('theme', $base->name) . '/template.php');
 
-         }
 
-         // Get the theme_registry cache.
 
-         $cache = _theme_load_registry($theme, $base_theme, $theme_engine);
 
-         // Change the registry for hooks with a 'mail theme' element.
 
-         foreach ($theme_registry as $name => $hook) {
 
-           if (!empty($hook['mail theme'])) {
 
-             if (isset($cache[$name])) {
 
-               $cache[$name]['includes'][] = drupal_get_path('theme', $theme->name) . '/template.php';
 
-               foreach ($base_theme as $base) {
 
-                 $cache[$name]['includes'][] = drupal_get_path('theme', $base->name) . '/template.php';
 
-               }
 
-               // Change the current registry for the new record.
 
-               $theme_registry[$name] = $cache[$name];
 
-             }
 
-             // Look for template suggestions.
 
-             foreach ($cache as $cache_name => $cache_hook) {
 
-               if (strpos($cache_name, $name . '__') !== FALSE) {
 
-                 $cache_hook['includes'][] = drupal_get_path('theme', $theme->name) . '/template.php';
 
-                 foreach ($base_theme as $base) {
 
-                   $cache_hook['includes'][] = drupal_get_path('theme', $base->name) . '/template.php';
 
-                 }
 
-                 // Change the current registry for the new record.
 
-                 $theme_registry[$cache_name] = $cache_hook;
 
-               }
 
-             }
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   $recursion_prevention = FALSE;
 
- }
 
 
  |