blob: 4992b8b0b05155a39c5360fa95f18750106e1bd4 [file] [log] [blame]
<?php
/*
This ddt library is released under the terms of the HTMLArea license.
See license.txt that is shipped with Xinha.
*/
// must be included after the configuration has been loaded.
if ( ! defined( "IM_CONFIG_LOADED" ) )
die( "sorry" );
/**
* Debug and Error Message functions.
*
* These functions implement a procedural version of the formVista DDT debug
* message system.
*
* @package formVista
* @subpackage lib
* @copyright DTLink, LLC 2005
* @author Yermo Lamers
* @see http://www.formvista.com/contact.html
*/
// REVISION HISTORY:
//
// 26 Jan 2001 YmL:
// . initial revision
//
// 2002-06-19 YmL:
// . added logging debug and error messages to a file.
//
// 2004-02-06 YmL:
// . added a newline to generated messages.
//
// 2005-01-09 YmL:
// . now checks global $fvDEBUG[ "logfile" ] setting for
// logfile to output to.
// . dumping to file has not been combined into a dumpmsg
// method.
//
// 2005-02-25 YmL:
// . added _error() support for cmdLine programs.
//
// 2005-03-20 YmL:
// . changed license for this file to HTMLArea from RPL.
// . quick hack to repurpose for Xinha.
//
// -------------------------------------------------------
/**
* dumps message to stdout or log file depending upon global.
*
* checks $fvDEBUG["logfile"] global for name of file to dump
* messages to. Opens the file once.
*/
function dumpmsg( $msgline )
{
global $fvDEBUG;
if ( @$fvDEBUG[ "logfile" ] != NULL )
{
// only open the file once and store the handle in the global
// fvDEBUG array .. for now.
if ( @$fvDEBUG[ "logfile_fp" ] == NULL )
{
// we clear out the debug file on each run.
if (( $fvDEBUG[ "logfile_fp" ] = fopen( $fvDEBUG[ "logfile" ], "a" )) == NULL )
{
die( "ddt(): unable to open debug log" );
return false ;
}
}
fputs( $fvDEBUG[ "logfile_fp" ], "$msgline" );
fflush( $fvDEBUG[ "logfile_fp" ] );
}
else
{
echo $msgline;
}
} // end of dumpmsg.
/**
* displays a formatted debugging message.
*
* If ddtOn() was called, outputs a formatted debugging message.
*
* @param string $file filename, usually __FILE__
* @param string $line line number in file, usually __LINE__
* @param string $msg debugging message to display
*/
function _ddt( $file, $line, $msg )
{
global $_DDT;
global $_DDT_DEBUG_LOG;
global $_DDT_CMDLINE;
$basename = basename( $file );
if ( @$_DDT == "yes" )
{
if ( @$_DDT_CMDLINE == "yes" )
{
dumpmsg( basename( $file ) . ":$line: $msg \n" );
flush();
}
else
{
dumpmsg( "<p>$basename:$line: $msg</p>\n" );
}
}
} // end of _ddt
/**
* displays a formatted dump of an associative array.
*
* If ddtOn() was called, outputs a formatted debugging message showing
* contents of array.
*
* @param string $file filename, usually __FILE__
* @param string $line line number in file, usually __LINE__
* @param string $msg debugging message to display
* @param array $array_var array to dump.
*/
function _ddtArray( $file, $line, $msg, $array_var )
{
global $_DDT;
if ( $_DDT == "yes" )
{
dumpmsg( "<h2>$file:$line: $msg</h2>" );
foreach ( $array_var as $name => $value )
{
dumpmsg( "<p><b>$name</b> => <b>$value</b>\n" );
}
}
} // end of _ddtArray
// -----------------------------------------------------------------
/**
* Central Error Function.
*
* Displays a formatted error message to the user.
* If the global _DDT_ERROR_LOG is set the error message is dumped
* to that file instead of being displayed to the user.
*/
function _error( $file, $line, $msg )
{
global $_DDT_ERROR_LOG;
global $_DDT_CMDLINE;
if ( @$_DDT_ERROR_LOG == NULL )
{
if ( @$_DDT_CMDLINE == "yes" )
{
echo basename($file) . ":$line: $msg\n";
}
else
{
echo "<h2>$file:$line: $msg</h2>";
}
}
else
{
if (( $fp = fopen( $_DDT_ERROR_LOG, "a" )) != NULL )
{
fputs( $fp, date("D M j G:i:s T Y") . " - $file:$line: $msg\n" );
fclose( $fp );
}
}
} // end of _error
// ----------------------------------------------------------------------
function errorEcho( $title, $field )
{
global $error_msg;
if ( $error_msg[ $field ] != "" )
{
echo "<FONT SIZE=\"+2\" COLOR=\"RED\">$title</FONT>";
}
else
{
echo $title;
}
} // end of errorEcho
/**
* turns on procedural debugging.
*
* Causes _ddt() calls to display debugging messages.
*/
function _ddtOn()
{
global $_DDT;
$_DDT = "yes";
}
/**
* set error message destination.
*
* sets the destination for error messages.
*
* @param string $file full path to errorlog.
*/
function _setErrorLog( $errorLog )
{
global $_DDT_ERROR_LOG;
$_DDT_ERROR_LOG = $errorLog;
}
/**
* set output file for debugging messages.
*
* sets the destination file for debugging messages.
*
* @param string $file full path to debuglog.
*/
function _setDebugLog( $debugLog )
{
global $fvDEBUG;
$fvDEBUG[ "logfile" ] = $debugLog;
}
/**
* set debugging output style to command line.
*
* tells ddt to format debugging messages for a
* command line program.
*/
function _ddtSetCmdLine()
{
global $_DDT_CMDLINE;
$_DDT_CMDLINE = "yes";
}
// END
?>