]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Just discovered the PEAR_Error handling function in index.php. Duh.
authorZach Copley <zach@controlyourself.ca>
Thu, 12 Feb 2009 06:08:20 +0000 (22:08 -0800)
committerZach Copley <zach@controlyourself.ca>
Thu, 12 Feb 2009 06:08:20 +0000 (22:08 -0800)
Renamed the Action functions to throw an exception like it. I still
think it probably makes sense to have the callback defined in both
places for finer control.

actions/emailsettings.php
actions/register.php
lib/action.php

index c6c98345389a2de5ccd583a509bb1e31463ddd8e..0a86aa66d182aed98e58d6328ea5c05ad40dbe8d 100644 (file)
@@ -489,7 +489,7 @@ class EmailsettingsAction extends AccountSettingsAction
     }
     
     /**
-     * Check old fashioned PEAR_Error msgs coming from DB_DataObject
+     * Handle old fashioned PEAR_Error msgs coming from DB_DataObject
      *
      * In this case email don't exist in the DB yet, so DB_DataObject
      * throws an error. Overrided from Action.
@@ -499,13 +499,13 @@ class EmailsettingsAction extends AccountSettingsAction
      * @return nothing
      */
      
-    function checkDB_DataObjectError($error) {
+    function handleError($error) {
         if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) {
            
            // Do nothing.
                       
         } else {
-            parent::checkDB_DataObjectError($error);
+            parent::handleError($error);
         }
     }
     
index 853bd0cf662bd2187995f05d2e4330bcd2c5e403..aafb54ebbf7001abda76b998a2e4667f7b48965d 100644 (file)
@@ -229,7 +229,7 @@ class RegisterAction extends Action
     }
         
     /**
-     * Check old fashioned PEAR_Error msgs coming from DB_DataObject
+     * Handle old fashioned PEAR_Error msgs coming from DB_DataObject
      *
      * In this case nickname and email don't exist in the DB yet,
      * so DB_DataObject throws an error. Overrided from Action.
@@ -239,13 +239,13 @@ class RegisterAction extends Action
      * @return nothing
      */
      
-    function checkDB_DataObjectError($error) {
+    function handleError($error) {
         if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) {
            
            // Do nothing.
                       
         } else {
-            parent::checkDB_DataObjectError($error);
+            parent::handleError($error);
         }
     }
 
index e3a8ef62c76f9a98e4d29b2cf4802fc80cde0b0c..926fe93fb7914fd5d6452021368a98cf7eabb299 100644 (file)
@@ -82,16 +82,10 @@ class Action extends HTMLOutputter // lawsuit
      */
     function prepare($argarray)
     {
-        // This is for checking PEAR_Errors raised by DB_DataObject.
-        // Setting this to PEAR_ERROR_CALLBACK because setting
-        // to PEAR_ERROR_EXCEPTION does't work to allow PEAR_Errors
-        // to be handled as PHP5 exceptions, and PEAR_ERROR_RETURN
-        // does not cause DB_DataObject to actually return PEAR_Errors
-        // that can be checked with PEAR::isError() -- instead
-        // they just disappear into the ether, and can only be checked for
-        // after the fact. -- Zach    
+     
+        // For PEAR_Errors comming from DB_DataObject
         PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 
-               array($this, "checkDB_DataObjectError"));
+               array($this, "handleError"));
         
         $this->args =& common_copy_args($argarray);
         return true;
@@ -856,7 +850,7 @@ class Action extends HTMLOutputter // lawsuit
     }
 
     /**
-     * Check old fashioned PEAR_Error msgs coming from DB_DataObject
+     * Handle old fashioned PEAR_Error msgs coming from DB_DataObject
      *
      * Logs the DB_DataObject error. Override to do something else.
      * 
@@ -865,9 +859,20 @@ class Action extends HTMLOutputter // lawsuit
      * @return nothing
      */
      
-    function checkDB_DataObjectError($error) {
-        common_log(LOG_ERR, $error->getMessage());
-            // XXX: throw an exception here? --Zach
+    function handleError($error) {
+                        
+        common_log(LOG_ERR, "PEAR error: " . $error->getMessage());
+         $msg = sprintf(_('The database for %s isn\'t responding correctly, '.
+                          'so the site won\'t work properly. '.
+                          'The site admins probably know about the problem, '.
+                          'but you can contact them at %s to make sure. '.
+                          'Otherwise, wait a few minutes and try again.'),
+                        common_config('site', 'name'),
+                        common_config('site', 'email'));
+
+         $dac = new DBErrorAction($msg, 500);
+         $dac->showPage();
+         exit(-1);            
     }
     
     /**