start copy from cimac web
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/**
|
||||
* FileMaker API for PHP
|
||||
*
|
||||
* @package FileMaker
|
||||
*
|
||||
* Copyright © 2005-2007, FileMaker, Inc. All rights reserved.
|
||||
* NOTE: Use of this source code is subject to the terms of the FileMaker
|
||||
* Software License which accompanies the code. Your use of this source code
|
||||
* signifies your agreement to such license terms and conditions. Except as
|
||||
* expressly granted in the Software License, no other copyright, patent, or
|
||||
* other intellectual property license or right is granted, either expressly or
|
||||
* by implication, by FileMaker.
|
||||
*/
|
||||
|
||||
/**#@+
|
||||
* @ignore Makes sure that the PEAR base class is loaded. Falls back to a
|
||||
* bundled version if it's not found in the include_path.
|
||||
*/
|
||||
@include_once 'PEAR.php';
|
||||
if (!class_exists('PEAR_Error')) {
|
||||
include_once 'FileMaker/PEAR.php';
|
||||
}
|
||||
/**#@-*/
|
||||
|
||||
/**
|
||||
* Extension of the PEAR_Error class for use in all FileMaker classes.
|
||||
*
|
||||
* @package FileMaker
|
||||
*/
|
||||
class FileMaker_Error extends PEAR_Error
|
||||
{
|
||||
/**
|
||||
* FileMaker object the error was generated from.
|
||||
*
|
||||
* @var FileMaker
|
||||
* @access private
|
||||
*/
|
||||
var $_fm;
|
||||
|
||||
/**
|
||||
* Overloaded FileMaker_Error constructor.
|
||||
*
|
||||
* @param FileMaker_Delegate &$fm FileMaker_Delegate object this error
|
||||
* came from.
|
||||
* @param string $message Error message.
|
||||
* @param integer $code Error code.
|
||||
*/
|
||||
function FileMaker_Error(&$fm, $message = null, $code = null)
|
||||
{
|
||||
$this->_fm =& $fm;
|
||||
parent::PEAR_Error($message, $code);
|
||||
|
||||
// Log the error.
|
||||
$fm->log($this->getMessage(), FILEMAKER_LOG_ERR);
|
||||
}
|
||||
|
||||
/**
|
||||
* Overloads getMessage() to return an equivalent FileMaker Web Publishing
|
||||
* Engine error if no message is explicitly set and this object has an
|
||||
* error code.
|
||||
*
|
||||
* @return string Error message.
|
||||
*/
|
||||
function getMessage()
|
||||
{
|
||||
if ($this->message === null && $this->getCode() !== null) {
|
||||
return $this->getErrorString();
|
||||
}
|
||||
return parent::getMessage();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string representation of $this->code in the language
|
||||
* currently set for PHP error messages in FileMaker Server Admin
|
||||
* Console.
|
||||
*
|
||||
* You should call getMessage() in most cases, if you are not sure whether
|
||||
* the error is a FileMaker Web Publishing Engine error with an error code.
|
||||
*
|
||||
* @return string Error description.
|
||||
*/
|
||||
function getErrorString()
|
||||
{
|
||||
// Default to English.
|
||||
$lang = basename($this->_fm->getProperty('locale'));
|
||||
if (!$lang) {
|
||||
$lang = 'en';
|
||||
}
|
||||
|
||||
static $strings = array();
|
||||
if (empty($strings[$lang])) {
|
||||
if (!@include_once dirname(__FILE__) . '/Error/' . $lang . '.php') {
|
||||
include_once dirname(__FILE__) . '/Error/en.php';
|
||||
}
|
||||
$strings[$lang] = $__FM_ERRORS;
|
||||
}
|
||||
|
||||
if (isset($strings[$lang][$this->getCode()])) {
|
||||
return $strings[$lang][$this->getCode()];
|
||||
}
|
||||
|
||||
return $strings[$lang][-1];
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the error is a detailed pre-validation error
|
||||
* or a FileMaker Web Publishing Engine error.
|
||||
*
|
||||
* @return boolean FALSE, to indicate that this is an error from the
|
||||
* Web Publishing Engine.
|
||||
*/
|
||||
function isValidationError()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user