summaryrefslogtreecommitdiff
path: root/lib/action.php
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@controlyourself.ca>2009-02-12 18:30:10 +0000
committerSarven Capadisli <csarven@controlyourself.ca>2009-02-12 18:30:10 +0000
commit033503dc84c5a31408345f61cd6c8ca79239e25b (patch)
tree7679efb9ccbdde739f29b1d8f7bb050956df5020 /lib/action.php
parent3c8c0572efef97c25037545e1e971f0ce3cd7cc8 (diff)
parentab8d27b8d1e25bd1058b904d03fedf97148f4b89 (diff)
Merge branch '0.7.x' of git@gitorious.org:laconica/dev into 0.7.x
Diffstat (limited to 'lib/action.php')
-rw-r--r--lib/action.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/action.php b/lib/action.php
index bd38bf79c..926fe93fb 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -82,6 +82,11 @@ class Action extends HTMLOutputter // lawsuit
*/
function prepare($argarray)
{
+
+ // For PEAR_Errors comming from DB_DataObject
+ PEAR::setErrorHandling(PEAR_ERROR_CALLBACK,
+ array($this, "handleError"));
+
$this->args =& common_copy_args($argarray);
return true;
}
@@ -845,6 +850,32 @@ class Action extends HTMLOutputter // lawsuit
}
/**
+ * Handle old fashioned PEAR_Error msgs coming from DB_DataObject
+ *
+ * Logs the DB_DataObject error. Override to do something else.
+ *
+ * @param PEAR_Error
+ *
+ * @return nothing
+ */
+
+ 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);
+ }
+
+ /**
* Returns the current URL
*
* @return string current URL