Location: PHPKode > scripts > xMySQL > xmysql/objectstatus.class.php
<?php
// objectStatus 0.2
// Copyright (c) 2003 by Alexander Serbe. All rights reserved.
// ---------------------------------------------------------------------------------
// This program is free software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the Free Software
// Foundation; either version 2 of the License, or (at your option) any later
// version.
// This program is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
// PARTICULAR PURPOSE.  See the GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along with this
// program; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
// Suite 330, Boston, MA  02111-1307  USA.
// ---------------------------------------------------------------------------------

class objectStatus
{
	// Initialize object variables -------------------------------------------------
	var $status;					// Array. Status messages.
	
	function objectStatus ()
	{ // 0.1; 0.2 ---------------------------------------------------- Constructor -
		$this->status = array ();
		$this->statusMessage ( "objectStatus", "", "Object initialized.", 1 );
	} // objectStatus -------------------------------------------------------- END -
	
	function sendStatus ( $recipient, $subject, $cc="", $bcc="" )
	{ // 0.2 -------------------------------------------------------------- Public -
		if ( count ( $this->status ) <= 0 )
			return false;
		
		$message = "Status log generated " . date ( 'd M Y, H:i:s' ) . ".\n\n";
		for ( $i=0; $i<count ( $this->status ); $i++ )
		{
			$message .= $this->status[$i][0] . ": ";
			$message .= $this->status[$i][1] . "; ";
			$message .= $this->status[$i][2];
			( $this->status[$i][3] ) ? $message .= "." . $this->status[$i][3] : 0;
			$message .= " - ";
			( $this->status[$i][4] ) ? $message .= $this->status[$i][4] . ". " : 0;
			( $this->status[$i][6] ) ? $message .= $this->status[$i][6] : 0;
			( $this->status[$i][5] ) ? $message .= " (" . $this->status[$i][5] . ")" : 0;
		}
		
		$headers = "";
		( $cc ) ? $headers .= "CC: $cc\r\n" : 0;
		( $bcc ) ? $headers .= "BCC: $bcc\r\n" : 0;
		
		$ret =  @mail ( $recipient, $subject, $message, $headers );
		
		return $ret;
	} // sendStatus ---------------------------------------------------------- END -
	
	function statusLog ( $file, $mode=1, $reset=0 )
	{ // 0.1; 0.2 --------------------------------------------------------- Public -
		if ( count ( $this->status ) <= 0 )
			return false;
		
		$status_content = $this->statusPrintout ( "csv" );
		
		( $mode == 1 ) ? $fp = fopen ( $file, "w" ) : $fp = fopen ( $file, "a" );
		$check = fputs ( $fp, $status_content );
		fclose ( $fp );
		
		( $reset == 1 ) ? $this->statusReset () : 0;
		
		return $check;
	} // statusLog ----------------------------------------------------------- END -
	
	function statusMessage ( $object, $method="", $msg="", $type=1, $error_num="" )
	{ // 0.1; 0.2 --------------------------------------------------------- Public -
		$ip = getenv ( "REMOTE_ADDR" );
		$x = explode ( " ", microtime () );
		$ms = $x[0];
		$time = $x[1];
		$y = date ( 'd M Y, H:i:s', $time );
		$z = $y . substr ( $ms, 1, 7 );
		$this->status[] = array ( $z, $ip, $object, $method, $msg, $type, $error_num );
	} // statusMessage ------------------------------------------------------- END -
	
	function statusPrintout ( $type="table", $reset=0, $template="" )
	{ // 0.1; 0.2 --------------------------------------------------------- Public -
		if ( count ( $this->status ) <= 0 )
			return false;
		
		if ( $type == "table" )
		{
			if ( $template )
			{
				if ( !file_exists ( $template ) )
					return false;
				$fp = fopen ( $template, "r" );
				$html = fread ( $fp, filesize ( $template ) );
				fclose ( $fp );
				if ( strlen ( $html ) <= 0 )
					return false;
				preg_match ( "/<!-- rs:start -->(.*?)<!-- rs:end -->/si", $html, $rs );
				$recordset = $rs[2];
				if ( strlen ( $recordset ) <= 9 )
					return false;
				$records = "";
				for ( $i=0; $i<count ( $this->status ); $i++ )
				{
					$x = $recordset;
					$x = str_replace ( "<!-- time -->", $this->status[$i][0], $x );
					$x = str_replace ( "<!-- ip -->", $this->status[$i][1], $x );
					$x = str_replace ( "<!-- object -->", $this->status[$i][2], $x );
					$x = str_replace ( "<!-- method -->", $this->status[$i][3], $x );
					( $this->status[$i][5] == 1 ) ? $msg_line = $this->status[$i][4] : 0;
					( $this->status[$i][5] == 2 ) ? $msg_line = "Error: " . $this->status[$i][4] : 0;
					( $this->status[$i][5] == 3 ) ? $msg_line = "Warning: " . $this->status[$i][4] : 0;
					( $this->status[$i][5] == 2 && $this->status[$i][6] ) ? $msg_line .= " (" . $this->status[$i][6] . ")" : 0;
					$x = str_replace ( "<!-- messgage -->", $msg_line, $x );
					$records .= $x;
				}
				$html = str_replace ( $recordset, $x, $html );
				preg_match_all ( "/<!--(.*?)-->/si", $html, $f );
				foreach ( $f[0] as $tmp )
					$html = str_replace ( $tmp, "", $html );
				( $reset == 1 ) ? $this->statusReset () : 0;
				return $html;
			}
			else
			{
				$html = '<table border="1" cellpadding="3" cellspacing="2">';
				$html .= '<tr><th>Time</th><th>IP</th><th>Object</th><th>Method</th><th>Message</th></tr>';
				for ( $i=0; $i<count ( $this->status ); $i++ )
				{
					( $this->status[$i][5] == 1 ) ? $msg_line = $this->status[$i][4] : 0;
					( $this->status[$i][5] == 2 ) ? $msg_line = "Error: " . $this->status[$i][4] : 0;
					( $this->status[$i][5] == 3 ) ? $msg_line = "Warning: " . $this->status[$i][4] : 0;
					( $this->status[$i][5] == 2 && $this->status[$i][6] ) ? $msg_line .= " (" . $this->status[$i][6] . ")" : 0;
					
					$html .= '<tr><td>' . $this->status[$i][0] . '</td>';
					$html .= '<td>' . $this->status[$i][1] . '</td>';
					$html .= '<td>' . $this->status[$i][2] . '</td>';
					$html .= '<td>' . $this->status[$i][3] . '</td>';
					$html .= '<td>' . $msg_line .'</td></tr>';
				}
				$html .= '</table>';
				( $reset == 1 ) ? $this->statusReset () : 0;
				return $html;
			}
			return false;
		}
		elseif ( $type == "csv" )
		{
			$csv = "";
			for ( $i=0; $i<count ( $this->status ); $i++ )
			{
				$csv .= $this->status[$i][0] . ";";
				$csv .= $this->status[$i][1] . ";";
				$csv .= $this->status[$i][2] . ";";
				$csv .= $this->status[$i][3] . ";";
				$csv .= $this->status[$i][4] . ";";
				$csv .= $this->status[$i][5] . ";";
				$csv .= $this->status[$i][6] . "\n";
			}
			( $reset == 1 ) ? $this->statusReset () : 0;
			return $csv;
		}
		
		return false;
	} // statusPrintout ------------------------------------------------------ END -
	
	function statusReset ()
	{ // 0.1 ------------------------------------------------------------- Private -
		$this->status = array ();
	} // statusReset --------------------------------------------------------- END -
}
?>
Return current item: xMySQL