Index: civicrm_error.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/civicrm_error/civicrm_error.install,v
retrieving revision 1.1
diff -u -p -r1.1 civicrm_error.install
--- civicrm_error.install	20 Jul 2007 15:44:34 -0000	1.1
+++ civicrm_error.install	26 Oct 2009 18:05:48 -0000
@@ -17,36 +17,34 @@ function civicrm_error_uninstall() {
   civicrm_error_config(false);
 }
 
-function civicrm_error_config($setup = true) {
-  global $db_url;
-  if (is_array($db_url) && isset($db_url['civicrm'])) {
-    db_set_active('civicrm');
-    $domains = db_result(db_query('SELECT COUNT(id) FROM civicrm_domain'));
-    if ($domains = 1) {
-      $config = unserialize(db_result(db_query('SELECT config_backend FROM civicrm_domain WHERE id = 1')));
-      if (array_key_exists('fatalErrorHandler', $config)) {
-        $config['fatalErrorHandler'] = ($setup ? 'civicrm_error_handler' : null);
-        /** TODO: this royal screws things up.  Need to fix **/
-//         db_query('UPDATE civicrm_domain SET config_backend = "$s" WHERE id = 1', serialize($config));
-        $fail = true;
-      }
-      else {
-        $fail = true;
-      }
-    }
-    else {
-      $fail = true;
-    }
-    db_set_active();
+function civicrm_error_config($setup = TRUE) {
+  civicrm_initialize(TRUE);
+
+  require_once "CRM/Core/DAO/Domain.php";
+  $domain =& new CRM_Core_DAO_Domain();
+  $domain->selectAdd( );
+  $domain->selectAdd( 'config_backend' );
+  $domain->find(true);
+
+  if ($domain->config_backend) {
+    $defaults   = unserialize($domain->config_backend);
+    $defaults['fatalErrorHandler'] = 'civicrm_error_handler';
+    CRM_Core_BAO_Setting::add($defaults);
+    drupal_set_message(t('CiviCRM Error Handler Installed'));
   }
   else {
-    $fail = true;
+    $fail = TRUE;
   }
+
   if ($fail) {
     $not = !$setup ? 'not ' : '';
-    drupal_set_message(t("Unable to set CiviCRM to {$not}use the custom error handler. Please go to %path and set %param to %value", array('%path' => 'Administer CiviCRM » Global Settings » Debugging', '%param' => 'Fatal Error Handler', '%value' => 'civicrm_error_handler')));
-  }
-  else {
-    drupal_set_message(t('CiviCRM Error Handler Installed'));
+    drupal_set_message(t("Unable to set CiviCRM to {$not}use the custom error handler.
+      Please go to %path and set %param to %value",
+      array(
+        '%path' => 'Administer CiviCRM » Global Settings » Debugging',
+        '%param' => 'Fatal Error Handler', '%value' => 'civicrm_error_handler'
+      )
+    ));
   }
-}
\ No newline at end of file
+}
+
