Skip to content
Snippets Groups Projects
  • Jared Hancock's avatar
    1c5338ac
    Add concept of initial data · 1c5338ac
    Jared Hancock authored
    We should move initial data out of the install SQL file, which will make way
    for a few things:
    
      * Internationalization -- which breaks the migrater model currently.
            Moving the data outside the install script makes it translatable
            without changing the SQL hash
      * Review -- Migrations which add more data don't highlight new features
            that need review to the adminsitrator
    1c5338ac
    History
    Add concept of initial data
    Jared Hancock authored
    We should move initial data out of the install SQL file, which will make way
    for a few things:
    
      * Internationalization -- which breaks the migrater model currently.
            Moving the data outside the install script makes it translatable
            without changing the SQL hash
      * Review -- Migrations which add more data don't highlight new features
            that need review to the adminsitrator
class.error.php 1.76 KiB
<?php
/*********************************************************************
    class.error.php

    Error handling for PHP < 5.0. Allows for returning a formal error from a
    function since throwing it isn't available. Also allows for consistent
    logging and debugging of errors in the osTicket system log.

    Peter Rotich <peter@osticket.com>
    Jared Hancock <jared@osticket.com>
    Copyright (c)  2006-2013 osTicket
    http://www.osticket.com

    Released under the GNU General Public License WITHOUT ANY WARRANTY.
    See LICENSE.TXT for details.

    vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/

class Error /* extends Exception */ {
    var $title = '';

    function Error($message) {
        call_user_func_array(array($this,'__construct'), func_get_args());
    }
    function __construct($message) {
        global $ost;

        $message = str_replace(ROOT_DIR, '(root)/', $message);

        if ($ost->getConfig()->getLogLevel() == 3)
            $message .= "\n\n" . $this->formatBacktrace(debug_backtrace());

        $ost->logError($this->getTitle(), $message);
    }

    function getTitle() {
        return get_class($this) . ": {$this->title}";
    }

    function formatBacktrace($bt) {
        $buffer = array();
        foreach ($bt as $i=>$frame)
            $buffer[] = sprintf("#%d %s%s%s at [%s:%d]", $i,
                $frame['class'], $frame['type'], $frame['function'],
                str_replace(ROOT_DIR, '', $frame['file']), $frame['line']);
        return implode("\n", $buffer);
    }
}

class InitialDataError extends Error {
    var $title = 'Problem with install initial data';
}

function raise_error($message, $class=false) {
    if (!$class) $class = 'Error';
    new $class($message);
}

?>