Sindbad~EG File Manager
<?php
# MantisBT - A PHP based bugtracking system
# MantisBT 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.
#
# MantisBT 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 MantisBT. If not, see <http://www.gnu.org/licenses/>.
/**
* Email Queue API
*
* @package CoreAPI
* @subpackage EmailQueueAPI
* @copyright Copyright 2000 - 2002 Kenzaburo Ito - kenito@300baud.org
* @copyright Copyright 2002 MantisBT Team - mantisbt-dev@lists.sourceforge.net
* @link http://www.mantisbt.org
*
* @uses constant_api.php
* @uses database_api.php
* @uses error_api.php
* @uses lang_api.php
* @uses utility_api.php
*/
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
require_api( 'error_api.php' );
require_api( 'lang_api.php' );
require_api( 'utility_api.php' );
/**
* EmailData Structure Definition
*/
class EmailData {
/**
* Email address
*/
public $email = '';
/**
* Subject text
*/
public $subject = '';
/**
* Body text
*/
public $body = '';
/**
* Meta Data array
*/
public $metadata = array(
'headers' => array(),
);
/**
* Email ID
*/
public $email_id = 0;
/**
* Submitted
*/
public $submitted = '';
};
/**
* Return a copy of the bug structure with all the instvars prepared for database insertion
* @param EmailData $p_email_data Email Data structure to store.
* @return EmailData
*/
function email_queue_prepare_db( EmailData $p_email_data ) {
$p_email_data->email_id = (int)$p_email_data->email_id;
return $p_email_data;
}
/**
* Add to email queue
* @param EmailData $p_email_data Email Data structure.
* @return integer
*/
function email_queue_add( EmailData $p_email_data ) {
$t_email_data = email_queue_prepare_db( $p_email_data );
# email cannot be blank
if( is_blank( $t_email_data->email ) ) {
error_parameters( lang_get( 'email' ) );
trigger_error( ERROR_EMPTY_FIELD, ERROR );
}
# subject cannot be blank
if( is_blank( $t_email_data->subject ) ) {
error_parameters( lang_get( 'subject' ) );
trigger_error( ERROR_EMPTY_FIELD, ERROR );
}
# body cannot be blank
if( is_blank( $t_email_data->body ) ) {
error_parameters( lang_get( 'body' ) );
trigger_error( ERROR_EMPTY_FIELD, ERROR );
}
$c_email = $t_email_data->email;
$c_subject = $t_email_data->subject;
$c_body = $t_email_data->body;
$c_metadata = serialize( $t_email_data->metadata );
db_param_push();
$t_query = 'INSERT INTO {email}
( email, subject, body, submitted, metadata)
VALUES
(' . db_param() . ',' . db_param() . ',' . db_param() . ',' . db_param() . ',' . db_param() . ')';
db_query( $t_query, array( $c_email, $c_subject, $c_body, db_now(), $c_metadata ) );
$t_id = db_insert_id( db_get_table( 'email' ), 'email_id' );
log_event( LOG_EMAIL_VERBOSE, sprintf( 'message %d queued', $t_id ) );
return $t_id;
}
/**
* Convert email db row to EmailData object
* @param array|false $p_row Database result row to convert.
* @return boolean|EmailData
*/
function email_queue_row_to_object( $p_row ) {
# typically this function takes as an input the result of db_fetch_array() which can be false.
if( $p_row === false ) {
return false;
}
$t_row = $p_row;
$t_row['metadata'] = unserialize( $t_row['metadata'] );
$t_email_data = new EmailData;
$t_row_keys = array_keys( $t_row );
$t_vars = get_object_vars( $t_email_data );
# Check each variable in the class
foreach( $t_vars as $t_var => $t_value ) {
# If we got a field from the DB with the same name
if( in_array( $t_var, $t_row_keys, true ) ) {
# Store that value in the object
$t_email_data->$t_var = $t_row[$t_var];
}
}
return $t_email_data;
}
/**
* Get Corresponding EmailData object
* @param integer $p_email_id An email identifier.
* @return boolean|EmailData
*/
function email_queue_get( $p_email_id ) {
db_param_push();
$t_query = 'SELECT * FROM {email} WHERE email_id=' . db_param();
$t_result = db_query( $t_query, array( $p_email_id ) );
$t_row = db_fetch_array( $t_result );
return email_queue_row_to_object( $t_row );
}
/**
* Delete entry from email queue
* @param integer $p_email_id Email queue identifier.
* @return void
*/
function email_queue_delete( $p_email_id ) {
db_param_push();
$t_query = 'DELETE FROM {email} WHERE email_id=' . db_param();
db_query( $t_query, array( $p_email_id ) );
log_event( LOG_EMAIL_VERBOSE, sprintf( 'message %d deleted from queue', $p_email_id ) );
}
/**
* Get array of email queue id's
* @return array
*/
function email_queue_get_ids() {
$t_query = 'SELECT email_id FROM {email} ORDER BY email_id ASC';
$t_result = db_query( $t_query );
$t_ids = array();
while( ( $t_row = db_fetch_array( $t_result ) ) !== false ) {
$t_ids[] = $t_row['email_id'];
}
return $t_ids;
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists