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/>.
/**
* A webservice interface to Mantis Bug Tracker
*
* @package MantisBT
* @copyright Copyright 2004 Victor Boctor - vboctor@users.sourceforge.net
* @copyright Copyright 2005 MantisBT Team - mantisbt-dev@lists.sourceforge.net
* @link http://www.mantisbt.org
*/
# Path to MantisBT is assumed to be the grand parent directory. If this is not
# the case, then this variable should be set to the MantisBT path.
# This can not be a configuration option, then MantisConnect configuration
# needs MantisBT to be included first to make use of the constants and possibly
# configuration defined in MantisBT.
$t_mantis_dir = dirname( dirname( dirname( __FILE__ ) ) ) . DIRECTORY_SEPARATOR;
# include Mantis files
$g_bypass_headers = true;
require_once( $t_mantis_dir . 'core.php' );
/**
* Checks if the request for the webservice is a documentation request (eg:
* WSDL) or an actual webservice call.
* @return boolean
*/
function mci_is_webservice_call() {
if( isset( $_SERVER['QUERY_STRING'] ) ) {
$t_qs = $_SERVER['QUERY_STRING'];
} else if( isset( $GLOBALS['QUERY_STRING'] ) ) {
$t_qs = $GLOBALS['QUERY_STRING'];
}
if( isset( $t_qs ) && preg_match( '/wsdl/', $t_qs ) ) {
return false;
} else {
return true;
}
}
# If SOAP extension is not enabled, error out.
if( !extension_loaded( 'soap' ) ) {
echo 'PHP SOAP extension is not enabled.';
exit();
}
if( !mci_is_webservice_call() ) {
# if we have a documentation request, do some tidy up to prevent lame bot loops e.g. /mantisconnect.php/mc_enum_etas/mc_project_get_versions/
$t_parts = explode( 'mantisconnect.php/', strtolower( $_SERVER['SCRIPT_NAME'] ), 2 );
if( isset( $t_parts[1] ) && (strlen( $t_parts[1] ) > 0 ) ) {
echo 'This is not a SOAP webservice request, for documentation, see ' . $t_parts[0] . 'mantisconnect.php';
exit();
}
header( 'Content-Type: text/xml' );
$t_wsdl = file_get_contents( 'mantisconnect.wsdl' );
$t_wsdl = str_replace( 'http://www.mantisbt.org/bugs/api/soap/mantisconnect.php', config_get( 'path' ).'api/soap/mantisconnect.php', $t_wsdl );
echo $t_wsdl;
exit();
}
require_once( 'mc_core.php' );
$t_server = new SoapServer( 'mantisconnect.wsdl',
array( 'features' => SOAP_USE_XSI_ARRAY_TYPE + SOAP_SINGLE_ELEMENT_ARRAYS )
);
$t_server->addFunction( SOAP_FUNCTIONS_ALL );
$t_server->handle();
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists