Ejemplo n.º 1
0
/**
 *  This user-defined error handler supports the built-in error_reporting()
 *  function, and is basically just an expansion of the built-in error-
 *  handling routine.  If it receives a fatal error (E_USER_ERROR or E_ERROR),
 *  it prints a more reassuring message to the viewer of the page and sends an
 *  email message to the address stored in Error_Email, which is defined in
 *  conf.php.
/**/
function error_handler($errno, $errstr, $errfile, $errline, $vars)
{
    global $db;
    if (class_exists('Translate')) {
        $errstr = Translate::find()->string($errstr);
    }
    // Try to auto-repair damaged SQL tables
    if ($db && preg_match("/Incorrect key file for table: '(\\w+)'/", $errstr, $match)) {
        $db->query('REPAIR TABLE ' . $match[1]);
    }
    // Don't die on so-called fatal regex errors
    if (preg_match("/Got error '(.+?)' from regexp/", $errstr, $match)) {
        add_error('Regular Expression Error:  ' . $match[1]);
        return;
    }
    // Leave early if we haven't requested reports from this kind of error
    if (!($errno & error_reporting())) {
        return;
    }
    // Fatal errors should report considerably more detail
    if (in_array($errno, array(E_USER_ERROR, E_ERROR))) {
        // What type of error?
        $subject = 'FATAL Error';
        // Email a backtrace
        $err = build_backtrace($errno, $errstr, $errfile, $errline, $vars);
        email_backtrace($err, $errfile, $errline, $subject);
        // Print something to the user, too.
        if (file_exists('modules/_shared/tmpl/_errors/fatal.php')) {
            require_once 'modules/_shared/tmpl/_errors/fatal.php';
        } else {
            echo "<hr><p><b>Fatal Error</b> at {$errfile}, line {$errline}:<br />{$errstr}</p>\n", '<p>If you choose to ', '<b><u><a href="http://svn.mythtv.org/trac/newticket" target="_blank">submit a bug report</a></u></b>, ', 'please make sure to include a<br />', 'brief description of what you were doing, along with the following<br />', 'backtrace as an attachment (please don\'t paste the whole thing into<br />', "the ticket).\n", "<hr>\n", "<b>Backtrace</b>:<br />\n<pre>", htmlentities($err), '</pre>';
        }
        // Fatal error means that we exit.
        exit;
    } else {
        echo "<hr><p><b>", error_type($errno), "</b>", " at {$errfile}, line {$errline}:<br />{$errstr}</p>\n", "<!-- " . build_backtrace($errno, $errstr, $errfile, $errline, $vars) . " -->\n", "<hr>\n";
    }
}
Ejemplo n.º 2
0
    // Change language?  Make sure we load the new translation file, too.
    if ($_POST['language'] && $_POST['language'] != $_SESSION['language']) {
        $_SESSION['language'] = $_POST['language'];
        // Unset the date/time formats in session so translation can fill in the
        // language specific defaults
        unset($_SESSION['date_statusbar']);
        unset($_SESSION['date_scheduled']);
        unset($_SESSION['date_scheduled_popup']);
        unset($_SESSION['date_recorded']);
        unset($_SESSION['date_search']);
        unset($_SESSION['date_listing_key']);
        unset($_SESSION['date_listing_jump']);
        unset($_SESSION['date_channel_jump']);
        unset($_SESSION['date_job_status']);
        unset($_SESSION['time_format']);
        Translate::find()->load_translation();
    }
    redirect_browser(module . '/' . $Path[1] . '/' . $Path[2]);
}
/**
 * Displays a <select> of the available templates
/**/
function template_select($name = 'tmpl', $selected = null)
{
    echo '<select name="' . $name . '">';
    foreach (array('default', 'lite', 'kgtv') as $tmpl) {
        // Print the option
        echo '<option value="' . html_entities($tmpl) . '"';
        if ($selected == $tmpl) {
            echo ' SELECTED';
        }
Ejemplo n.º 3
0
function tn($string)
{
    $args = func_get_args();
    $args = array_slice($args, 1);
    return Translate::find()->number($string, $args);
}