/** * This hook is called when system experience fatal error * * @param Error $error * @return null */ function handle_fatal_error($error) { if (DEBUG >= DEBUG_DEVELOPMENT) { dump_error($error); die; } else { print '<p style="text-align: left; background: red; color: white; padding: 5px; font: 12px Verdana; font-weight: normal;">Fatal error: We failed to executed your request</p>'; die; } // if }
/** * Handle fatal error * * @param Error $error * @return null */ function handle_fatal_error($error) { if (DEBUG >= DEBUG_DEVELOPMENT) { dump_error($error); } else { if (instance_of($error, 'RoutingError') || instance_of($error, 'RouteNotDefinedError')) { header("HTTP/1.1 404 Not Found"); print '<h1>Not Found</h1>'; if (instance_of($error, 'RoutingError')) { print '<p>Page "<em>' . clean($error->getRequestString()) . '</em>" not found.</p>'; } else { print '<p>Route "<em>' . clean($error->getRouteName()) . '</em>" not mapped.</p>'; } // if print '<p><a href="' . assemble_url('homepage') . '">« Back to homepage</a></p>'; die; } // if // Send email to administrator if (defined('ADMIN_EMAIL') && is_valid_email(ADMIN_EMAIL)) { $content = '<p>Hi,</p><p>activeCollab setup at ' . clean(ROOT_URL) . ' experienced fatal error. Info:</p>'; ob_start(); dump_error($error, false); $content .= ob_get_clean(); @mail(ADMIN_EMAIL, 'activeCollab Crash Report', $content, "Content-Type: text/html; charset=utf-8"); } // if // log... if (defined('ENVIRONMENT_PATH') && class_exists('Logger')) { $logger =& Logger::instance(); $logger->logToFile(ENVIRONMENT_PATH . '/logs/' . date('Y-m-d') . '.txt'); } // if } // if $error_message = '<div style="text-align: left; background: white; color: red; padding: 7px 15px; border: 1px solid red; font: 12px Verdana; font-weight: normal;">'; $error_message .= '<p>Fatal error: activeCollab has failed to executed your request (reason: ' . clean(get_class($error)) . '). Information about this error has been logged and sent to administrator.</p>'; if (is_valid_url(ROOT_URL)) { $error_message .= '<p><a href="' . ROOT_URL . '">« Back to homepage</a></p>'; } // if $error_message .= '</div>'; print $error_message; die; }
/** * Add new error to collection * * @param Error $error * @return boolean */ function collect(&$error) { if (!instance_of($error, 'Error')) { return false; } // if $this->errors[] = $error; if ($error->is_fatal) { if (function_exists('handle_fatal_error')) { handle_fatal_error($error); } else { if (defined('DEBUG') && DEBUG) { dump_error($error); } else { print 'We are sorry but fatal error prevented system from executing your request. Please try again in a few minutes'; } // if die; } // if } // if }
function httpfs_chown($data) { $fields = unpack('Nuid/Ngid', $data); $path = explode("", substr($data, 8), 2)[0]; if ($fields['uid'] != 0xffffffff) { $u = chown($path, $fields['uid']); $g = TRUE; } if ($fields['gid'] != 0xffffffff) { $g = chgrp($path, $fields['gid']); $u = TRUE; } if ($u && $g) { dump_ok(); } else { dump_error(NOT_PERMITTED); } }
/** * Connect to database with parameters provided in config file * * @param void * @return boolean */ function connect_to_database() { $database_connect = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PERSIST, DB_CHARSET); if (is_error($database_connect)) { if (DEBUG) { dump_error($database_connect); } else { trigger_error('Failed to connect to database'); } // if } // if }