/include/nusoap/nusoap.php
PHP | 10058 lines | 7499 code | 227 blank | 2332 comment | 804 complexity | 08f16a90957ec98acd49a1a5a43458dc MD5 | raw file
Possible License(s): LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
Large files files are truncated, but you can click here to view the full file
- <?php
- /*
- Modification information for LGPL compliance
- commit af784931b8ab2263776badac5ac3fc4776c9cd61
- Author: Stanislav Malyshev <smalyshev@gmail.com>
- Date: Thu Feb 17 18:09:12 2011 -0800
- bug 34897 - remove characters that aren't valid in XML
- commit 1767411d701b8216cc5e043888fd1337e2eca315
- Author: Stanislav Malyshev <smalyshev@gmail.com>
- Date: Fri Jan 7 12:19:10 2011 -0800
- conserve memory when no debug is enabled
- commit 843510ebf455368865302a05b9d5041815a32c23
- Author: John Mertic <jmertic@sugarcrm.com>
- Date: Wed Nov 17 13:18:09 2010 -0500
- Bug 40716 - Fix WSDL validation problem by removing hardcoded schemaLocation attribute for the <xsd:import> tag.
- commit 2bd12c02078f3e291bd9c1e76179a144c788ce97
- Author: Collin Lee <clee@Collin-Lee-MacBook-Pro.local>
- Date: Fri Oct 22 16:37:42 2010 -0400
- Bug: 39937
- We traced the error to a combination of the new Hoovers' WSDL + the nusoapclient code that winds up improperly encoding the parameter elem
- ents (this is because the namespace specified for the soap call did not match that declared in the WSDL). Made changes to nusoap.php so that w
- e may manually set a payload XML portion that will not apply the namespace encoding to the parameters. Fixed unit tests to reflect the changes
- and also re-enabled those for Hoovers that were marked skipped.
- r58622 - 2010-10-22 18:18:59 -0700 (Fri, 22 Oct 2010) - engsvnbuild - Author: lam <lam@198.18.142.201>
- bug 40066
- r58361 - 2010-09-29 16:59:02 -0700 (Wed, 29 Sep 2010) - kjing - Author: Jenny Gonsalves <jenny@sugarcrm.com>
- Merging with maint_6_0_1 (svn merge -r 58250:58342)
- r57813 - 2010-08-19 10:34:44 -0700 (Thu, 19 Aug 2010) - kjing - Author: John Mertic <jmertic@sugarcrm.com>
- Bug 39085 - When loading the opposite search panel via ajax on the ListViews, call the index action instead of the ListView action to avoid touching pre-MVC code by accident.
- r57707 - 2010-08-10 12:26:13 -0700 (Tue, 10 Aug 2010) - kjing - Author: Stanislav Malyshev <smalyshev@gmail.com>
- fix SOAP calls with no parameters
- r56990 - 2010-06-16 13:05:36 -0700 (Wed, 16 Jun 2010) - kjing - snapshot "Mango" svn branch to a new one for GitHub sync
- r56989 - 2010-06-16 13:01:33 -0700 (Wed, 16 Jun 2010) - kjing - defunt "Mango" svn dev branch before github cutover
- r55980 - 2010-04-19 13:31:28 -0700 (Mon, 19 Apr 2010) - kjing - create Mango (6.1) based on windex
- r51719 - 2009-10-22 10:18:00 -0700 (Thu, 22 Oct 2009) - mitani - Converted to Build 3 tags and updated the build system
- r51634 - 2009-10-19 13:32:22 -0700 (Mon, 19 Oct 2009) - mitani - Windex is the branch for Sugar Sales 1.0 development
- r51508 - 2009-10-14 07:40:23 -0700 (Wed, 14 Oct 2009) - jmertic - More fallout fixes from the PHP 5.3 ereg to preg changes.
- r51455 - 2009-10-13 07:56:48 -0700 (Tue, 13 Oct 2009) - jmertic - Bug 33202 - Enable install of SugarCRM on PHP 5.3.0, asserting that the minimum supported version is PHP 5.2.x.
- r51443 - 2009-10-12 13:34:36 -0700 (Mon, 12 Oct 2009) - jmertic - Bug 33332 - Made application PHP 5.3 compliant with E_DEPRECATED warnings on by:
- - Changing all ereg function to either preg or simple string based ones
- - No more references to magic quotes.
- - Change all the session_unregister() functions to just unset() the correct session variable instead.
- r50375 - 2009-08-24 18:07:43 -0700 (Mon, 24 Aug 2009) - dwong - branch kobe2 from tokyo r50372
- r45763 - 2009-04-01 12:16:18 -0700 (Wed, 01 Apr 2009) - majed - Removed half of the require_once and include_onces in the product that were redundant or could be handled easily by the auto loader
- r45680 - 2009-03-30 14:34:35 -0700 (Mon, 30 Mar 2009) - Samir Gandhi - modifeid serializeSchema to generate WS-I compliant WSDL
- r42807 - 2008-12-29 11:16:59 -0800 (Mon, 29 Dec 2008) - dwong - Branch from trunk/sugarcrm r42806 to branches/tokyo/sugarcrm
- r42645 - 2008-12-18 13:41:08 -0800 (Thu, 18 Dec 2008) - awu - merging maint_5_2_0 rev41336:HEAD to trunk
- r41647 - 2008-11-11 17:44:30 -0800 (Tue, 11 Nov 2008) - majed - Fixes a few bugs
- r41596 - 2008-11-10 19:20:04 -0800 (Mon, 10 Nov 2008) - Samir Gandhi - modified to set $method in the code
- r41558 - 2008-11-10 14:35:34 -0800 (Mon, 10 Nov 2008) - majed - changes nusoap to allow for registering classes
- r39619 - 2008-09-09 13:41:34 -0700 (Tue, 09 Sep 2008) - jmertic - Bug 24827 - Remove all instances where we return a new object and assign it by reference, since this is deprecated in PHP 5 and emits E_DEPRECATED errors in PHP 5.3.
- Touched:
- - data/SugarBean.php
- - include/domit/php_http_client_generic.php
- - include/domit/php_http_connector.php
- - include/domit/testing_domit.php
- - include/domit/xml_domit_getelementsbypath.php
- - include/domit/xml_domit_lite_parser.php
- - include/domit/xml_domit_nodemaps.php
- - include/domit/xml_domit_parser.php
- - include/domit/xml_domit_shared.php
- - include/generic/SugarWidgets/SugarWidgetField.php
- - include/generic/SugarWidgets/SugarWidgetReportField.php
- - include/ListView/ProcessView.php
- - include/nusoap/class.soapclient.php
- - include/nusoap/nusoap.php
- - include/nusoap/nusoapmime.php
- - include/Pear/HTML_Safe/Safe.php
- - include/Pear/XML_HTMLSax3/HTMLSax3.php
- - modules/Administration/RebuildWorkFlow.php
- - modules/Expressions/RelateSelector.php
- - modules/Reports/templates/templates_reports.php
- - modules/WorkFlow/Delete.php
- - modules/WorkFlow/Save.php
- - modules/WorkFlow/SaveSequence.php
- - modules/WorkFlow/WorkFlow.php
- - modules/WorkFlowActionShells/CreateStep1.php
- - modules/WorkFlowActionShells/CreateStep2.php
- - modules/WorkFlowActionShells/Save.php
- - modules/WorkFlowActionShells/WorkFlowActionShell.php
- - modules/WorkFlowAlerts/Save.php
- - modules/WorkFlowAlerts/WorkFlowAlert.php
- - modules/WorkFlowAlertShells/DetailView.php
- - modules/WorkFlowAlertShells/WorkFlowAlertShell.php
- - modules/WorkFlowTriggerShells/CreateStep1.php
- - modules/WorkFlowTriggerShells/CreateStepFilter.php
- - modules/WorkFlowTriggerShells/SaveFilter.php
- - modules/WorkFlowTriggerShells/WorkFlowTriggerShell.php
- - soap/SoapHelperFunctions.php
- - test/modules/DynamicFields/DynamicFields_Bug24095_test.php
- - test/simpletest/browser.php
- - test/simpletest/default_reporter.php
- - test/simpletest/detached.php
- - test/simpletest/eclipse.php
- - test/simpletest/expectation.php
- - test/simpletest/extensions/pear_test_case.php
- - test/simpletest/form.php
- - test/simpletest/http.php
- - test/simpletest/mock_objects.php
- - test/simpletest/page.php
- - test/simpletest/parser.php
- - test/simpletest/remote.php
- - test/simpletest/shell_tester.php
- - test/simpletest/simple_test.php
- - test/simpletest/simpletest.php
- - test/simpletest/test/acceptance_test.php
- - test/simpletest/test/adapter_test.php
- - test/simpletest/test/authentication_test.php
- - test/simpletest/test/browser_test.php
- - test/simpletest/test/collector_test.php
- - test/simpletest/test/compatibility_test.php
- - test/simpletest/test/detached_test.php
- - test/simpletest/test/eclipse_test.php
- - test/simpletest/test/encoding_test.php
- - test/simpletest/test/errors_test.php
- - test/simpletest/test/expectation_test.php
- - test/simpletest/test/form_test.php
- - test/simpletest/test/frames_test.php
- - test/simpletest/test/http_test.php
- - test/simpletest/test/live_test.php
- - test/simpletest/test/mock_objects_test.php
- - test/simpletest/test/page_test.php
- - test/simpletest/test/parse_error_test.php
- - test/simpletest/test/parser_test.php
- - test/simpletest/test/remote_test.php
- - test/simpletest/test/shell_test.php
- - test/simpletest/test/shell_tester_test.php
- - test/simpletest/test/simpletest_test.php
- - test/simpletest/test/site/page_request.php
- - test/simpletest/test/tag_test.php
- - test/simpletest/test/unit_tester_test.php
- - test/simpletest/test/user_agent_test.php
- - test/simpletest/test/visual_test.php
- - test/simpletest/test/xml_test.php
- - test/simpletest/test_case.php
- - test/simpletest/ui/array_reporter/test.php
- - test/simpletest/ui/recorder/test.php
- - test/simpletest/unit_tester.php
- - test/simpletest/url.php
- - test/simpletest/user_agent.php
- - test/simpletest/web_tester.php
- - test/spikephpcoverage/src/PEAR.php
- - test/spikephpcoverage/src/util/Utility.php
- - test/spikephpcoverage/src/XML/Parser.php
- - test/spikephpcoverage/src/XML/Parser/Simple.php
- - test/test_utilities/SugarTest_SimpleBrowser.php
- r38362 - 2008-07-28 14:06:59 -0700 (Mon, 28 Jul 2008) - roger - bug: 23897. Using print_r when using the debug statement in nusoap will print out the statements to the screen if the call is coming from the UI.
- r38300 - 2008-07-25 13:33:43 -0700 (Fri, 25 Jul 2008) - Samir Gandhi - put the debug in parseresponse function
- r38293 - 2008-07-25 12:32:34 -0700 (Fri, 25 Jul 2008) - Samir Gandhi - to put all the debug statements return value in the call function
- r36824 - 2008-06-18 09:26:11 -0700 (Wed, 18 Jun 2008) - roger - bug: 21832
- r26422 - 2007-09-05 17:29:12 -0700 (Wed, 05 Sep 2007) - majed - migrate from beta 1 to trunk
- r15787 - 2006-08-10 10:14:41 -0700 (Thu, 10 Aug 2006) - roger - RRS: bug 7961
- r14701 - 2006-07-17 13:37:26 -0700 (Mon, 17 Jul 2006) - roger - RRS: bug 5801
- r13782 - 2006-06-06 10:58:55 -0700 (Tue, 06 Jun 2006) - majed - changes entry point code
- r11466 - 2006-02-01 15:49:47 -0800 (Wed, 01 Feb 2006) - jacob - Adding extra !empty check to get around a PHP warning.
- r11115 - 2006-01-17 14:54:45 -0800 (Tue, 17 Jan 2006) - majed - add entry point validation
- r10585 - 2005-12-13 14:42:26 -0800 (Tue, 13 Dec 2005) - majed - adds new license mechanisim
- r10170 - 2005-12-05 18:37:46 -0800 (Mon, 05 Dec 2005) - majed - fixes various issues
- r8999 - 2005-11-04 05:26:49 -0800 (Fri, 04 Nov 2005) - roger - When nusoap was upgraded we had an issue with the user's default language not being populated during a soap request. I determined the reason this was happening and have checked in the corresponding change to nusoap.
- r8991 - 2005-11-03 19:07:25 -0800 (Thu, 03 Nov 2005) - majed - fixes nusoap issue
- r8846 - 2005-10-31 11:01:12 -0800 (Mon, 31 Oct 2005) - majed - new version of nusoap
- r7905 - 2005-09-21 19:12:57 -0700 (Wed, 21 Sep 2005) - majed - restores old nusoap pre & with a few fixes
- r7861 - 2005-09-20 15:40:25 -0700 (Tue, 20 Sep 2005) - majed - & fix for 3.5.1
- r7452 - 2005-08-17 11:32:34 -0700 (Wed, 17 Aug 2005) - majed - changes soap to nusoap
- r5820 - 2005-06-21 14:22:24 -0700 (Tue, 21 Jun 2005) - majed - fixes issues with nusoap and with custom fields
- r5462 - 2005-05-25 13:50:11 -0700 (Wed, 25 May 2005) - majed - upgraded nusoap to .6.9
- r5104 - 2005-05-04 15:33:41 -0700 (Wed, 04 May 2005) - majed - gets rid of HTTP_GET_VARS and what not which has been deprecated
- r573 - 2004-09-04 13:03:32 -0700 (Sat, 04 Sep 2004) - sugarclint - undoing copyrights added in inadvertantly. --clint
- r546 - 2004-09-03 11:49:38 -0700 (Fri, 03 Sep 2004) - sugarmsi - removed echo count
- r354 - 2004-08-02 23:00:37 -0700 (Mon, 02 Aug 2004) - sugarjacob - Adding Soap
- */
- if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
- /*
- $Id: nusoap.php 58622 2010-10-23 01:18:59Z engsvnbuild $
- NuSOAP - Web Services Toolkit for PHP
- Copyright (c) 2002 NuSphere Corporation
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- n
- This library 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
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- The NuSOAP project home is:
- http://sourceforge.net/projects/nusoap/
- The primary support for NuSOAP is the Help forum on the project home page.
- If you have any questions or comments, please email:
- Dietrich Ayala
- dietrich@ganx4.com
- http://dietrich.ganx4.com/nusoap
- NuSphere Corporation
- http://www.nusphere.com
- */
- /*
- * Some of the standards implmented in whole or part by NuSOAP:
- *
- * SOAP 1.1 (http://www.w3.org/TR/2000/NOTE-SOAP-20000508/)
- * WSDL 1.1 (http://www.w3.org/TR/2001/NOTE-wsdl-20010315)
- * SOAP Messages With Attachments (http://www.w3.org/TR/SOAP-attachments)
- * XML 1.0 (http://www.w3.org/TR/2006/REC-xml-20060816/)
- * Namespaces in XML 1.0 (http://www.w3.org/TR/2006/REC-xml-names-20060816/)
- * XML Schema 1.0 (http://www.w3.org/TR/xmlschema-0/)
- * RFC 2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
- * RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1
- * RFC 2617 HTTP Authentication: Basic and Digest Access Authentication
- */
- /* load classes
- // necessary classes
- require_once('class.soapclient.php');
- require_once('class.soap_val.php');
- require_once('class.soap_parser.php');
- require_once('class.soap_fault.php');
- // transport classes
- require_once('class.soap_transport_http.php');
- // optional add-on classes
- require_once('class.xmlschema.php');
- require_once('class.wsdl.php');
- // server class
- require_once('class.soap_server.php');*/
- // class variable emulation
- // cf. http://www.webkreator.com/php/techniques/php-static-class-variables.html
- $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel'] = 0;
- /**
- *
- * nusoap_base
- *
- * @author Dietrich Ayala <dietrich@ganx4.com>
- * @author Scott Nichol <snichol@users.sourceforge.net>
- * @access public
- */
- class nusoap_base {
- /**
- * Identification for HTTP headers.
- *
- * @var string
- * @access private
- */
- var $title = 'NuSOAP';
- /**
- * Version for HTTP headers.
- *
- * @var string
- * @access private
- */
- var $version = '0.9.5';
- /**
- * CVS revision for HTTP headers.
- *
- * @var string
- * @access private
- */
- var $revision = '$Revision: 58622 $';
- /**
- * Current error string (manipulated by getError/setError)
- *
- * @var string
- * @access private
- */
- var $error_str = '';
- /**
- * Current debug string (manipulated by debug/appendDebug/clearDebug/getDebug/getDebugAsXMLComment)
- *
- * @var string
- * @access private
- */
- var $debug_str = '';
- /**
- * toggles automatic encoding of special characters as entities
- * (should always be true, I think)
- *
- * @var boolean
- * @access private
- */
- var $charencoding = true;
- /**
- * the debug level for this instance
- *
- * @var integer
- * @access private
- */
- var $debugLevel;
- /**
- * set schema version
- *
- * @var string
- * @access public
- */
- var $XMLSchemaVersion = 'http://www.w3.org/2001/XMLSchema';
- /**
- * charset encoding for outgoing messages
- *
- * @var string
- * @access public
- */
- //var $soap_defencoding = 'ISO-8859-1';
- var $soap_defencoding = 'UTF-8';
- /**
- * namespaces in an array of prefix => uri
- *
- * this is "seeded" by a set of constants, but it may be altered by code
- *
- * @var array
- * @access public
- */
- var $namespaces = array(
- 'SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/',
- 'xsd' => 'http://www.w3.org/2001/XMLSchema',
- 'xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
- 'SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/'
- );
- /**
- * namespaces used in the current context, e.g. during serialization
- *
- * @var array
- * @access private
- */
- var $usedNamespaces = array();
- /**
- * XML Schema types in an array of uri => (array of xml type => php type)
- * is this legacy yet?
- * no, this is used by the nusoap_xmlschema class to verify type => namespace mappings.
- * @var array
- * @access public
- */
- var $typemap = array(
- 'http://www.w3.org/2001/XMLSchema' => array(
- 'string'=>'string','boolean'=>'boolean','float'=>'double','double'=>'double','decimal'=>'double',
- 'duration'=>'','dateTime'=>'string','time'=>'string','date'=>'string','gYearMonth'=>'',
- 'gYear'=>'','gMonthDay'=>'','gDay'=>'','gMonth'=>'','hexBinary'=>'string','base64Binary'=>'string',
- // abstract "any" types
- 'anyType'=>'string','anySimpleType'=>'string',
- // derived datatypes
- 'normalizedString'=>'string','token'=>'string','language'=>'','NMTOKEN'=>'','NMTOKENS'=>'','Name'=>'','NCName'=>'','ID'=>'',
- 'IDREF'=>'','IDREFS'=>'','ENTITY'=>'','ENTITIES'=>'','integer'=>'integer','nonPositiveInteger'=>'integer',
- 'negativeInteger'=>'integer','long'=>'integer','int'=>'integer','short'=>'integer','byte'=>'integer','nonNegativeInteger'=>'integer',
- 'unsignedLong'=>'','unsignedInt'=>'','unsignedShort'=>'','unsignedByte'=>'','positiveInteger'=>''),
- 'http://www.w3.org/2000/10/XMLSchema' => array(
- 'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double',
- 'float'=>'double','dateTime'=>'string',
- 'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'),
- 'http://www.w3.org/1999/XMLSchema' => array(
- 'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double',
- 'float'=>'double','dateTime'=>'string',
- 'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'),
- 'http://soapinterop.org/xsd' => array('SOAPStruct'=>'struct'),
- 'http://schemas.xmlsoap.org/soap/encoding/' => array('base64'=>'string','array'=>'array','Array'=>'array'),
- 'http://xml.apache.org/xml-soap' => array('Map')
- );
- /**
- * XML entities to convert
- *
- * @var array
- * @access public
- * @deprecated
- * @see expandEntities
- */
- var $xmlEntities = array('quot' => '"','amp' => '&',
- 'lt' => '<','gt' => '>','apos' => "'");
- /**
- * Payload override
- * This is to allows us to override the payload to resolve issues where we need to take
- * control of the xml content
- * @var string
- * @access public
- *
- */
- var $payloadOverride;
- /**
- * constructor
- *
- * @access public
- */
- function nusoap_base() {
- $this->debugLevel = $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel'];
- }
- /**
- * gets the global debug level, which applies to future instances
- *
- * @return integer Debug level 0-9, where 0 turns off
- * @access public
- */
- function getGlobalDebugLevel() {
- return $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel'];
- }
- /**
- * sets the global debug level, which applies to future instances
- *
- * @param int $level Debug level 0-9, where 0 turns off
- * @access public
- */
- function setGlobalDebugLevel($level) {
- $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel'] = $level;
- }
- /**
- * gets the debug level for this instance
- *
- * @return int Debug level 0-9, where 0 turns off
- * @access public
- */
- function getDebugLevel() {
- return $this->debugLevel;
- }
- /**
- * sets the debug level for this instance
- *
- * @param int $level Debug level 0-9, where 0 turns off
- * @access public
- */
- function setDebugLevel($level) {
- $this->debugLevel = $level;
- }
- /**
- * adds debug data to the instance debug string with formatting
- *
- * @param string $string debug data
- * @access private
- */
- function debug($string){
- if ($this->debugLevel > 0) {
- $this->appendDebug($this->getmicrotime().' '.get_class($this).": $string\n");
- }
- }
- /**
- * adds debug data to the instance debug string without formatting
- *
- * @param string $string debug data
- * @access public
- */
- function appendDebug($string){
- if ($this->debugLevel > 0) {
- // it would be nice to use a memory stream here to use
- // memory more efficiently
- $this->debug_str .= $string;
- }
- }
- /**
- * clears the current debug data for this instance
- *
- * @access public
- */
- function clearDebug() {
- // it would be nice to use a memory stream here to use
- // memory more efficiently
- $this->debug_str = '';
- }
- /**
- * gets the current debug data for this instance
- *
- * @return debug data
- * @access public
- */
- function &getDebug() {
- // it would be nice to use a memory stream here to use
- // memory more efficiently
- return $this->debug_str;
- }
- /**
- * gets the current debug data for this instance as an XML comment
- * this may change the contents of the debug data
- *
- * @return debug data as an XML comment
- * @access public
- */
- function &getDebugAsXMLComment() {
- // it would be nice to use a memory stream here to use
- // memory more efficiently
- while (strpos($this->debug_str, '--')) {
- $this->debug_str = str_replace('--', '- -', $this->debug_str);
- }
- $ret = "<!--\n" . $this->debug_str . "\n-->";
- return $ret;
- }
- /**
- * expands entities, e.g. changes '<' to '<'.
- *
- * @param string $val The string in which to expand entities.
- * @access private
- */
- function expandEntities($val) {
- if ($this->charencoding) {
- $val = htmlspecialchars($val, ENT_QUOTES, $this->soap_defencoding);
- // XML 1.0 doesn't allow those...
- $val = preg_replace("/([\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F])/", '', $val);
- }
- return $val;
- }
- /**
- * returns error string if present
- *
- * @return mixed error string or false
- * @access public
- */
- function getError(){
- if($this->error_str != ''){
- return $this->error_str;
- }
- return false;
- }
- /**
- * sets error string
- *
- * @return boolean $string error string
- * @access private
- */
- function setError($str){
- $this->error_str = $str;
- }
- /**
- * detect if array is a simple array or a struct (associative array)
- *
- * @param mixed $val The PHP array
- * @return string (arraySimple|arrayStruct)
- * @access private
- */
- function isArraySimpleOrStruct($val) {
- $keyList = array_keys($val);
- foreach ($keyList as $keyListValue) {
- if (!is_int($keyListValue)) {
- return 'arrayStruct';
- }
- }
- return 'arraySimple';
- }
- /**
- * serializes PHP values in accordance w/ section 5. Type information is
- * not serialized if $use == 'literal'.
- *
- * @param mixed $val The value to serialize
- * @param string $name The name (local part) of the XML element
- * @param string $type The XML schema type (local part) for the element
- * @param string $name_ns The namespace for the name of the XML element
- * @param string $type_ns The namespace for the type of the element
- * @param array $attributes The attributes to serialize as name=>value pairs
- * @param string $use The WSDL "use" (encoded|literal)
- * @param boolean $soapval Whether this is called from soapval.
- * @return string The serialized element, possibly with child elements
- * @access public
- */
- function serialize_val($val,$name=false,$type=false,$name_ns=false,$type_ns=false,$attributes=false,$use='encoded',$soapval=false) {
- $this->debug("in serialize_val: name=$name, type=$type, name_ns=$name_ns, type_ns=$type_ns, use=$use, soapval=$soapval");
- $this->appendDebug('value=' . $this->varDump($val));
- $this->appendDebug('attributes=' . $this->varDump($attributes));
- if (is_object($val) && get_class($val) == 'soapval' && (! $soapval)) {
- $this->debug("serialize_val: serialize soapval");
- $xml = $val->serialize($use);
- $this->appendDebug($val->getDebug());
- $val->clearDebug();
- $this->debug("serialize_val of soapval returning $xml");
- return $xml;
- }
- // force valid name if necessary
- if (is_numeric($name)) {
- $name = '__numeric_' . $name;
- } elseif (! $name) {
- $name = 'noname';
- }
- // if name has ns, add ns prefix to name
- $xmlns = '';
- if($name_ns){
- $prefix = 'nu'.rand(1000,9999);
- $name = $prefix.':'.$name;
- $xmlns .= " xmlns:$prefix=\"$name_ns\"";
- }
- // if type is prefixed, create type prefix
- if($type_ns != '' && $type_ns == $this->namespaces['xsd']){
- // need to fix this. shouldn't default to xsd if no ns specified
- // w/o checking against typemap
- $type_prefix = 'xsd';
- } elseif($type_ns){
- $type_prefix = 'ns'.rand(1000,9999);
- $xmlns .= " xmlns:$type_prefix=\"$type_ns\"";
- }
- // serialize attributes if present
- $atts = '';
- if($attributes){
- foreach($attributes as $k => $v){
- $atts .= " $k=\"".$this->expandEntities($v).'"';
- }
- }
- // serialize null value
- if (is_null($val)) {
- $this->debug("serialize_val: serialize null");
- if ($use == 'literal') {
- // TODO: depends on minOccurs
- $xml = "<$name$xmlns$atts/>";
- $this->debug("serialize_val returning $xml");
- return $xml;
- } else {
- if (isset($type) && isset($type_prefix)) {
- $type_str = " xsi:type=\"$type_prefix:$type\"";
- } else {
- $type_str = '';
- }
- $xml = "<$name$xmlns$type_str$atts xsi:nil=\"true\"/>";
- $this->debug("serialize_val returning $xml");
- return $xml;
- }
- }
- // serialize if an xsd built-in primitive type
- if($type != '' && isset($this->typemap[$this->XMLSchemaVersion][$type])){
- $this->debug("serialize_val: serialize xsd built-in primitive type");
- if (is_bool($val)) {
- if ($type == 'boolean') {
- $val = $val ? 'true' : 'false';
- } elseif (! $val) {
- $val = 0;
- }
- } else if (is_string($val)) {
- $val = $this->expandEntities($val);
- }
- if ($use == 'literal') {
- $xml = "<$name$xmlns$atts>$val</$name>";
- $this->debug("serialize_val returning $xml");
- return $xml;
- } else {
- $xml = "<$name$xmlns xsi:type=\"xsd:$type\"$atts>$val</$name>";
- $this->debug("serialize_val returning $xml");
- return $xml;
- }
- }
- // detect type and serialize
- $xml = '';
- switch(true) {
- case (is_bool($val) || $type == 'boolean'):
- $this->debug("serialize_val: serialize boolean");
- if ($type == 'boolean') {
- $val = $val ? 'true' : 'false';
- } elseif (! $val) {
- $val = 0;
- }
- if ($use == 'literal') {
- $xml .= "<$name$xmlns$atts>$val</$name>";
- } else {
- $xml .= "<$name$xmlns xsi:type=\"xsd:boolean\"$atts>$val</$name>";
- }
- break;
- case (is_int($val) || is_long($val) || $type == 'int'):
- $this->debug("serialize_val: serialize int");
- if ($use == 'literal') {
- $xml .= "<$name$xmlns$atts>$val</$name>";
- } else {
- $xml .= "<$name$xmlns xsi:type=\"xsd:int\"$atts>$val</$name>";
- }
- break;
- case (is_float($val)|| is_double($val) || $type == 'float'):
- $this->debug("serialize_val: serialize float");
- if ($use == 'literal') {
- $xml .= "<$name$xmlns$atts>$val</$name>";
- } else {
- $xml .= "<$name$xmlns xsi:type=\"xsd:float\"$atts>$val</$name>";
- }
- break;
- case (is_string($val) || $type == 'string'):
- $this->debug("serialize_val: serialize string");
- $val = $this->expandEntities($val);
- if ($use == 'literal') {
- $xml .= "<$name$xmlns$atts>$val</$name>";
- } else {
- $xml .= "<$name$xmlns xsi:type=\"xsd:string\"$atts>$val</$name>";
- }
- break;
- case is_object($val):
- $this->debug("serialize_val: serialize object");
- if (get_class($val) == 'soapval') {
- $this->debug("serialize_val: serialize soapval object");
- $pXml = $val->serialize($use);
- $this->appendDebug($val->getDebug());
- $val->clearDebug();
- } else {
- if (! $name) {
- $name = get_class($val);
- $this->debug("In serialize_val, used class name $name as element name");
- } else {
- $this->debug("In serialize_val, do not override name $name for element name for class " . get_class($val));
- }
- foreach(get_object_vars($val) as $k => $v){
- $pXml = isset($pXml) ? $pXml.$this->serialize_val($v,$k,false,false,false,false,$use) : $this->serialize_val($v,$k,false,false,false,false,$use);
- }
- }
- if(isset($type) && isset($type_prefix)){
- $type_str = " xsi:type=\"$type_prefix:$type\"";
- } else {
- $type_str = '';
- }
- if ($use == 'literal') {
- $xml .= "<$name$xmlns$atts>$pXml</$name>";
- } else {
- $xml .= "<$name$xmlns$type_str$atts>$pXml</$name>";
- }
- break;
- break;
- case (is_array($val) || $type):
- // detect if struct or array
- $valueType = $this->isArraySimpleOrStruct($val);
- if($valueType=='arraySimple' || preg_match('/^ArrayOf/',$type)){
- $this->debug("serialize_val: serialize array");
- $i = 0;
- if(is_array($val) && count($val)> 0){
- foreach($val as $v){
- if(is_object($v) && get_class($v) == 'soapval'){
- $tt_ns = $v->type_ns;
- $tt = $v->type;
- } elseif (is_array($v)) {
- $tt = $this->isArraySimpleOrStruct($v);
- } else {
- $tt = gettype($v);
- }
- $array_types[$tt] = 1;
- // TODO: for literal, the name should be $name
- $xml .= $this->serialize_val($v,'item',false,false,false,false,$use);
- ++$i;
- }
- if(count($array_types) > 1){
- $array_typename = 'xsd:anyType';
- } elseif(isset($tt) && isset($this->typemap[$this->XMLSchemaVersion][$tt])) {
- if ($tt == 'integer') {
- $tt = 'int';
- }
- $array_typename = 'xsd:'.$tt;
- } elseif(isset($tt) && $tt == 'arraySimple'){
- $array_typename = 'SOAP-ENC:Array';
- } elseif(isset($tt) && $tt == 'arrayStruct'){
- $array_typename = 'unnamed_struct_use_soapval';
- } else {
- // if type is prefixed, create type prefix
- if ($tt_ns != '' && $tt_ns == $this->namespaces['xsd']){
- $array_typename = 'xsd:' . $tt;
- } elseif ($tt_ns) {
- $tt_prefix = 'ns' . rand(1000, 9999);
- $array_typename = "$tt_prefix:$tt";
- $xmlns .= " xmlns:$tt_prefix=\"$tt_ns\"";
- } else {
- $array_typename = $tt;
- }
- }
- $array_type = $i;
- if ($use == 'literal') {
- $type_str = '';
- } else if (isset($type) && isset($type_prefix)) {
- $type_str = " xsi:type=\"$type_prefix:$type\"";
- } else {
- $type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"".$array_typename."[$array_type]\"";
- }
- // empty array
- } else {
- if ($use == 'literal') {
- $type_str = '';
- } else if (isset($type) && isset($type_prefix)) {
- $type_str = " xsi:type=\"$type_prefix:$type\"";
- } else {
- $type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"xsd:anyType[0]\"";
- }
- }
- // TODO: for array in literal, there is no wrapper here
- $xml = "<$name$xmlns$type_str$atts>".$xml."</$name>";
- } else {
- // got a struct
- $this->debug("serialize_val: serialize struct");
- if(isset($type) && isset($type_prefix)){
- $type_str = " xsi:type=\"$type_prefix:$type\"";
- } else {
- $type_str = '';
- }
- if ($use == 'literal') {
- $xml .= "<$name$xmlns$atts>";
- } else {
- $xml .= "<$name$xmlns$type_str$atts>";
- }
- foreach($val as $k => $v){
- // Apache Map
- if ($type == 'Map' && $type_ns == 'http://xml.apache.org/xml-soap') {
- $xml .= '<item>';
- $xml .= $this->serialize_val($k,'key',false,false,false,false,$use);
- $xml .= $this->serialize_val($v,'value',false,false,false,false,$use);
- $xml .= '</item>';
- } else {
- $xml .= $this->serialize_val($v,$k,false,false,false,false,$use);
- }
- }
- $xml .= "</$name>";
- }
- break;
- default:
- $this->debug("serialize_val: serialize unknown");
- $xml .= 'not detected, got '.gettype($val).' for '.$val;
- break;
- }
- $this->debug("serialize_val returning $xml");
- return $xml;
- }
- /**
- * serializes a message
- *
- * @param string $body the XML of the SOAP body
- * @param mixed $headers optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array
- * @param array $namespaces optional the namespaces used in generating the body and headers
- * @param string $style optional (rpc|document)
- * @param string $use optional (encoded|literal)
- * @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded)
- * @return string the message
- * @access public
- */
- function serializeEnvelope($body,$headers=false,$namespaces=array(),$style='rpc',$use='encoded',$encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'){
- // TODO: add an option to automatically run utf8_encode on $body and $headers
- // if $this->soap_defencoding is UTF-8. Not doing this automatically allows
- // one to send arbitrary UTF-8 characters, not just characters that map to ISO-8859-1
- $this->debug("In serializeEnvelope length=" . strlen($body) . " body (max 1000 characters)=" . substr($body, 0, 1000) . " style=$style use=$use encodingStyle=$encodingStyle");
- $this->debug("headers:");
- $this->appendDebug($this->varDump($headers));
- $this->debug("namespaces:");
- $this->appendDebug($this->varDump($namespaces));
- // serialize namespaces
- $ns_string = '';
- foreach(array_merge($this->namespaces,$namespaces) as $k => $v){
- $ns_string .= " xmlns:$k=\"$v\"";
- }
- if($encodingStyle) {
- $ns_string = " SOAP-ENV:encodingStyle=\"$encodingStyle\"$ns_string";
- }
- // serialize headers
- if($headers){
- if (is_array($headers)) {
- $xml = '';
- foreach ($headers as $k => $v) {
- if (is_object($v) && get_class($v) == 'soapval') {
- $xml .= $this->serialize_val($v, false, false, false, false, false, $use);
- } else {
- $xml .= $this->serialize_val($v, $k, false, false, false, false, $use);
- }
- }
- $headers = $xml;
- $this->debug("In serializeEnvelope, serialized array of headers to $headers");
- }
- $headers = "<SOAP-ENV:Header>".$headers."</SOAP-ENV:Header>";
- }
- // serialize envelope
- return
- '<?xml version="1.0" encoding="'.$this->soap_defencoding .'"?'.">".
- '<SOAP-ENV:Envelope'.$ns_string.">".
- $headers.
- "<SOAP-ENV:Body>".
- $body.
- "</SOAP-ENV:Body>".
- "</SOAP-ENV:Envelope>";
- }
- /**
- * formats a string to be inserted into an HTML stream
- *
- * @param string $str The string to format
- * @return string The formatted string
- * @access public
- * @deprecated
- */
- function formatDump($str){
- $str = htmlspecialchars($str);
- return nl2br($str);
- }
- /**
- * contracts (changes namespace to prefix) a qualified name
- *
- * @param string $qname qname
- * @return string contracted qname
- * @access private
- */
- function contractQname($qname){
- // get element namespace
- //$this->xdebug("Contract $qname");
- if (strrpos($qname, ':')) {
- // get unqualified name
- $name = substr($qname, strrpos($qname, ':') + 1);
- // get ns
- $ns = substr($qname, 0, strrpos($qname, ':'));
- $p = $this->getPrefixFromNamespace($ns);
- if ($p) {
- return $p . ':' . $name;
- }
- return $qname;
- } else {
- return $qname;
- }
- }
- /**
- * expands (changes prefix to namespace) a qualified name
- *
- * @param string $qname qname
- * @return string expanded qname
- * @access private
- */
- function expandQname($qname){
- // get element prefix
- if(strpos($qname,':') && !preg_match('/^http:\/\//',$qname)){
- // get unqualified name
- $name = substr(strstr($qname,':'),1);
- // get ns prefix
- $prefix = substr($qname,0,strpos($qname,':'));
- if(isset($this->namespaces[$prefix])){
- return $this->namespaces[$prefix].':'.$name;
- } else {
- return $qname;
- }
- } else {
- return $qname;
- }
- }
- /**
- * returns the local part of a prefixed string
- * returns the original string, if not prefixed
- *
- * @param string $str The prefixed string
- * @return string The local part
- * @access public
- */
- function getLocalPart($str){
- if($sstr = strrchr($str,':')){
- // get unqualified name
- return substr( $sstr, 1 );
- } else {
- return $str;
- }
- }
- /**
- * returns the prefix part of a prefixed string
- * returns false, if not prefixed
- *
- * @param string $str The prefixed string
- * @return mixed The prefix or false if there is no prefix
- * @access public
- */
- function getPrefix($str){
- if($pos = strrpos($str,':')){
- // get prefix
- return substr($str,0,$pos);
- }
- return false;
- }
- /**
- * pass it a prefix, it returns a namespace
- *
- * @param string $prefix The prefix
- * @return mixed The namespace, false if no namespace has the specified prefix
- * @access public
- */
- function getNamespaceFromPrefix($prefix){
- if (isset($this->namespaces[$prefix])) {
- return $this->namespaces[$prefix];
- }
- //$this->setError("No namespace registered for prefix '$prefix'");
- return false;
- }
- /**
- * returns the prefix for a given namespace (or prefix)
- * or false if no prefixes registered for the given namespace
- *
- * @param string $ns The namespace
- * @return mixed The prefix, false if the namespace has no prefixes
- * @access public
- */
- function getPrefixFromNamespace($ns) {
- foreach ($this->namespaces as $p => $n) {
- if ($ns == $n || $ns == $p) {
- $this->usedNamespaces[$p] = $n;
- return $p;
- }
- }
- return false;
- }
- /**
- * returns the time in ODBC canonical form with microseconds
- *
- * @return string The time in ODBC canonical form with microseconds
- * @access public
- */
- function getmicrotime() {
- if (function_exists('gettimeofday')) {
- $tod = gettimeofday();
- $sec = $tod['sec'];
- $usec = $tod['usec'];
- } else {
- $sec = time();
- $usec = 0;
- }
- return strftime('%Y-%m-%d %H:%M:%S', $sec) . '.' . sprintf('%06d', $usec);
- }
- /**
- * Returns a string with the output of var_dump
- *
- * @param mixed $data The variable to var_dump
- * @return string The output of var_dump
- * @access public
- */
- function varDump($data) {
- if ($this->debugLevel <= 0) {
- return '';
- }
- ob_start();
- var_dump($data);
- $ret_val = ob_get_contents();
- ob_end_clean();
- return $ret_val;
- }
- /**
- * represents the object as a string
- *
- * @return string
- * @access public
- */
- function __toString() {
- return $this->varDump($this);
- }
- }
- // XML Schema Datatype Helper Functions
- //xsd:dateTime helpers
- /**
- * convert unix timestamp to ISO 8601 compliant date string
- *
- * @param int $timestamp Unix time stamp
- * @param boolean $utc Whether the time stamp is UTC or local
- * @return mixed ISO 8601 date string or false
- * @access public
- */
- function timestamp_to_iso8601($timestamp,$utc=true){
- $datestr = date('Y-m-d\TH:i:sO',$timestamp);
- $pos = strrpos($datestr, "+");
- if ($pos === FALSE) {
- $pos = strrpos($datestr, "-");
- }
- if ($pos !== FALSE) {
- if (strlen($datestr) == $pos + 5) {
- $datestr = substr($datestr, 0, $pos + 3) . ':' . substr($datestr, -2);
- }
- }
- if($utc){
- $pattern = '/'.
- '([0-9]{4})-'. // centuries & years CCYY-
- '([0-9]{2})-'. // months MM-
- '([0-9]{2})'. // days DD
- 'T'. // separator T
- '([0-9]{2}):'. // hours hh:
- '([0-9]{2}):'. // minutes mm:
- '([0-9]{2})(\.[0-9]*)?'. // seconds ss.ss...
- '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
- '/';
- if(preg_match($pattern,$datestr,$regs)){
- return sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ',$regs[1],$regs[2],$regs[3],$regs[4],$regs[5],$regs[6]);
- }
- return false;
- } else {
- return $datestr;
- }
- }
- /**
- * convert ISO 8601 compliant date string to unix timestamp
- *
- * @param string $datestr ISO 8601 compliant date string
- * @return mixed Unix timestamp (int) or false
- * @access public
- */
- function iso8601_to_timestamp($datestr){
- $pattern = '/'.
- '([0-9]{4})-'. // centuries & years CCYY-
- '([0-9]{2})-'. // months MM-
- '([0-9]{2})'. // days DD
- 'T'. // separator T
- '([0-9]{2}):'. // hours hh:
- '([0-9]{2}):'. // minutes mm:
- '([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss...
- '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
- '/';
- if(preg_match($pattern,$datestr,$regs)){
- // not utc
- if($regs[8] != 'Z'){
- $op = substr($regs[8],0,1);
- $h = substr($regs[8],1,2);
- $m = substr($regs[8],strlen($regs[8])-2,2);
- if($op == '-'){
- $regs[4] = $regs[4] + $h;
- $regs[5] = $regs[5] + $m;
- } elseif($op == '+'){
- $regs[4] = $regs[4] - $h;
- $regs[5] = $regs[5] - $m;
- }
- }
- return gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);
- // return strtotime("$regs[1]-$regs[2]-$regs[3] $regs[4]:$regs[5]:$regs[6]Z");
- } else {
- return false;
- }
- }
- /**
- * sleeps some number of microseconds
- *
- * @param string $usec the number of microseconds to sleep
- * @access public
- * @deprecated
- */
- function usleepWindows($usec)
- {
- $start = gettimeofday();
- do
- {
- $stop = gettimeofday();
- $timePassed = 1000000 * ($stop['sec'] - $start['sec'])
- + $stop['usec'] - $start['usec'];
- }
- while ($timePassed < $usec);
- }
- ?><?php
- /*
- Modification information for LGPL compliance
- r58622 - 2010-10-22 18:18:59 -0700 (Fri, 22 Oct 2010) - engsvnbuild - Author: lam <lam@198.18.142.201>
- bug 40066
- r58361 - 2010-09-29 16:59:02 -0700 (Wed, 29 Sep 2010) - kjing - Author: Jenny Gonsalves <jenny@sugarcrm.com>
- Merging with maint_6_0_1 (svn merge -r 58250:58342)
- r57813 - 2010-08-19 10:34:44 -0700 (Thu, 19 Aug 2010) - kjing - Author: John Mertic <jmertic@sugarcrm.com>
- Bug 39085 - When loading the opposite search panel via ajax on the ListViews, call the index action instead of the ListView action to avoid touching pre-MVC code by accident.
- r57707 - 2010-08-10 12:26:13 -0700 (Tue, 10 Aug 2010) - kjing - Author: Stanislav Malyshev <smalyshev@gmail.com>
- fix SOAP calls with no parameters
- r56990 - 2010-06-16 13:05:36 -0700 (Wed, 16 Jun 2010) - kjing - snapshot "Mango" svn branch to a new one for GitHub sync
- r56989 - 2010-06-16 13:01:33 -0700 (Wed, 16 Jun 2010) - kjing - defunt "Mango" svn dev branch before github cutover
- r55980 - 2010-04-19 13:31:28 -0700 (Mon, 19 Apr 2010) - kjing - create Mango (6.1) based on windex
- r51719 - 2009-10-22 10:18:00 -0700 (Thu, 22 Oct 2009) - mitani - Converted to Build 3 tags and updated the build system
- r51634 - 2009-10-19 13:32:22 -0700 (Mon, 19 Oct 2009) - mitani - Windex is the branch for Sugar Sales 1.0 development
- r51508 - 2009-10-14 07:40:23 -0700 (Wed, 14 Oct 2009) - jmertic - More fallout fixes from the PHP 5.3 ereg to preg changes.
- r51455 - 2009-10-13 07:56:48 -0700 (Tue, 13 Oct 2009) - jmertic - Bug 33202 - Enable install of SugarCRM on PHP 5.3.0, asserting that the minimum supported version is PHP 5.2.x.
- r51443 - 2009-10-12 13:34:36 -0700 (Mon, 12 Oct 2009) - jmertic - Bug 33332 - Made application PHP 5.3 compliant with E_DEPRECATED warnings on by:
- - Changing all ereg function to either preg or simple string based ones
- - No more references to magic quotes.
- - Change all the session_unregister() functions to just unset() the correct session variable instead.
- r50375 - 2009-08-24 18:07:43 -0700 (Mon, 24 Aug 2009) - dwong - branch kobe2 from tokyo r50372
- r45763 - 2009-04-01 12:16:18 -0700 (Wed, 01 Apr 2009) - majed - Removed half of the require_once and include_onces in the product that were redundant or could be handled easily by the auto loader
- r45680 - 2009-03-30 14:34:35 -0700 (Mon, 30 Mar 2009) - Samir Gandhi - modifeid serializeSchema to generate WS-I compliant WSDL
- r42807 - 2008-12-29 11:16:59 -0800 (Mon, 29 Dec 2008) - dwong - Branch from trunk/sugarcrm r42806 to branches/tokyo/sugarcrm
- r42645 - 2008-12-18 13:41:08 -0800 (Thu, 18 Dec 2008) - awu - merging maint_5_2_0 rev41336:HEAD to trunk
- r41647 - 2008-11-11 17:44:30 -0800 (Tue, 11 Nov 2008) - majed - Fixes a few bugs
- r41596 - 2008-11-10 19:20:04 -0800 (Mon, 10 Nov 2008) - Samir Gandhi - modified to set $method in the code
- r41558 - 2008-11-10 14:35:34 -0800 (Mon, 10 Nov 2008) - majed - changes nusoap to allow for registering classes
- r39619 - 2008-09-09 13:41:34 -0700 (Tue, 09 Sep 2008) - jmertic - Bug 24827 - Remove all instances where we return a new object and assign it by reference, since this is deprecated in PHP 5 and emits E_DEPRECATED errors in PHP 5.3.
- Touched:
- - data/SugarBean.php
- - include/domit/php_http_client_generic.php
- - include/domit/php_http_connector.php
- - include/domit/testing_domit.php
- - include/domit/xml_domit_getelementsbypath.php
- - include/domit/xml_domit_lite_parser.php
- - include/domit/xml_domit_nodemaps.php
- - include/domit/xml_domit_parser.php
- - include/domit/xml_domit_shared.php
- - include/generic/SugarWidgets/SugarWidgetField.php
- - include/generic/SugarWidgets/SugarWidgetReportField.php
- - include/ListView/ProcessView.php
- - include/nusoap/class.soapclient.php
- - include/nusoap/nusoap.php
- - include/nusoap/nusoapmime.php
- - include/Pear/HTML_Safe/Safe.php
- - include/Pear/XML_HTMLSax3/HTMLSax3.php
- - modules/Administration/RebuildWorkFlow.php
- - modules/Expressions/RelateSelector.php
- - modules/Reports/templates/templates_reports.php
- - modules/WorkFlow/Delete.php
- - modules/WorkFlow/Save.php
- - modules/WorkFlow/SaveSequence.php
- - modules/WorkFlow/WorkFlow.php
- - modules/WorkFlowActionShells/CreateStep1.php
- - modules/WorkFlowActionShells/CreateStep2.php
- - modules/WorkFlowActionShells/Save.php
- - modules/WorkFlowActionShells/WorkFlowActionShell.php
- - modules/WorkFlowAlerts/Save.php
- - modules/WorkFlowAlerts/WorkFlowAlert.php
- - modules/WorkFlowAlertShells/DetailView.php
- - modules/WorkFlowAlertShells/WorkFlowAlertShell.php
- - modules/WorkFlowTriggerShells/CreateStep1.php
- - modules/WorkFlowTriggerShells/CreateStepFilter.php
- - modules/WorkFlowTriggerShells/SaveFilter.php
- - modules/WorkFlowTriggerShells/WorkFlowTriggerShell.php
- - soap/SoapHelperFunctions.php
- - test/modules/DynamicFields/DynamicFields_Bug24095_test.php
- - test/simpletest/browser.php
- - test/simpletest/default_reporter.php
- - test/simpletest/detached.php
- - test/simpletest/eclipse.php
- - test/simpletest/expectation.php
- - test/simpletest/extensions/pear_test_case.php
- - test/simpletest/form.php
- - test/simpletest/http.php
- - test/simpletest/mock_objects.php
- - test/simpletest/page.php
- - test/simpletest/parser.php
- - test/simpletest/remote.php
- - test/simpletest/shell_tester.php
- - test/simpletest/simple_test.php
- - test/simpletest/simpletest.php
- - test/simpletest/test/acceptance_test.php
- - test/simpletest/test/adapter_test.php
- - test/simpletest/test/authentication_test.php
- - test/simpletest/test/browser_test.php
- - test/simpletest/test/collector_test.php
- - test/simpletest/test/compatibility_test.php
- - test/simpletest/test/detached_test.php
- - test/simpletest/test/eclipse_test.php
- - test/simpletest/test/encoding_test.php
- - test/simpletest/test/errors_test.php
- - test/simpletest/test/expectation_test.php
- - test/simpletest/test/form_test.php
- - test/simpletest/test/frames_test.php
- - test/simpletest/test/http_test.php
- - test/simpletest/test/live_test.php
- - test/simpletest/test/mock_objects_test.php
- - test/simpletest/test/page_test.php
- - test/simpletest/test/parse_error_test.php
- - test/simpletest/test/parser_test.php
- - test/simpletest/test/remote_test.php
- - test/simpletest/test/shell_test.php
- - test/simpletest/test/shell_tester_test.php
- - test/simpletest/test/simpletest_test.php
- - test/simpletest/test/site/page_request.php
- - test/simpletest/test/tag_test.php
- - test/simpletest/test/unit_tester_test.php
- - test/simpletest/test/user_agent_test.php
- - test/simpletest/test/visual_test.php
- - test/simpletest/test/xml_test.php
- - test/simpletest/test_case.php
- - test/simpletest/ui/array_reporter/test.php
- - test/simpletest/ui/recorder/test.php
- - test/simpletest/unit_tester.php
- - test/simpletest/url.php
- - test/simpletest/user_agent.php
- - test/simpletest/web_tester.php
- - test/spikephpcoverage/src/PEAR.php
- - test/spikephpcoverage/src/util/Utility.php
- - test/spikephpcoverage/src/XML/Parser.php
- - test/spikephpcoverage/src/XML/Parser/Simple.php
- - test/test_utilities/SugarTest_SimpleBrowser.php
- r38362 - 2008-07-28 14:06:59 -0700 (Mon, 28 Jul 2008) - roger - bug: 23897. Using print_r when using the debug statement in nusoap will print out the statements to the screen if the call is coming from the UI.
- r38300 - 2008-07-25 13:33:43 -0700 (Fri, 25 Jul 2008) - Samir Gandhi - put the debug in parseresponse function
- r38293 - 2008-07-25 12:32:34 -0700 (Fri, 25 Jul 2008) - Samir Gandhi - to put all the debug statements return value in the call function
- r36824 - 2008-06-18 09:26:11 -0700 (Wed, 18 Jun 2008) - roger - bug: 21832
- r26422 - 2007-09-05 17:29:12 -0700 (Wed, 05 Sep 2007) - majed - migrate from beta 1 to trunk
- r15787 - 2006-08-10 10:14:41 -0700 (Thu, 10 Aug 2006) - roger - RRS: bug 7961
- r14701 - 2006-07-17 13:37:26 -0700 (Mon, 17 Jul 2006) - roger - RRS: bug 5801
- r13782 - 2006-06-06 10:58:55 -0700 (Tue, 06 Jun 2006) - majed - changes entry point code
- r11466 - 2006-02-01 15:49:47 -0800 (Wed, 01 Feb 2006) - jacob - Adding extra !empty check to get around a PHP warning.
- r11115 - 2006-01-17 14:54:45 -0800 (Tue, 17 Jan 2006) - majed - add entry point validation
- r10585 - 2005-12-13 14:42:26 -0800 (Tue, 13 Dec 2005) - majed - adds new license mechanisim
- r10170 - 2005-12-05 18:37:46 -0800 (Mon, 05 Dec 2005) - majed - fixes various issues
- r8999 - 2005-11-04 05:26:49 -0800 (Fri, 04 Nov 2005) - roger - When nusoap was upgraded we had an issue with the user's default language not being populated during a soap request. I determined the reason this was happening and have checked in the corresponding change to nusoap.
- r8991 - 2005-11-03 19:07:25 -0800 (Thu, 03 Nov 2005) - majed - fixes nusoap issue
- r8846 - 2005-10-31 11:01:12 -0800 (Mon, 31 Oct 2005) - majed - new version of nusoap
- r7905 - 2005-09-21 19:12:57 -0700 (Wed, 21 Sep 2005) - majed - restores old nusoap pre & with a few fixes
- r7861 - 2005-09-20 15:40:25 -0700 (Tue, 20 Sep 2005) - majed - & fix for 3.5.1
- r7452 - 2005-08-17 11:32:34 -0700 (Wed, 17 Aug 2005) - majed - changes soap to nusoap
- r5820 - 2005-06-21 14:22:24 -0700 (Tue, 21 Jun 2005) - majed - fixes issues with nusoap and with custom fields
- r5462 - 2005-05-25 13:50:11 -0700 (Wed, 25 May 2005) - majed - upgraded nusoap to .6.9
- r5104 - 2005-05-04 15:33:41 -0700 (Wed, 04 May 2005) - majed - gets rid of HTTP_GET_VARS and what not which has been deprecated
- r573 - 2004-09-04 13:03:32 -0700 (Sat, 04 Sep 2004) - sugarclint - undoing copyrights added in inadvertantly. --clint
- r546 - 2004-09-03 11:49:38 -0700 (Fri, 03 Sep 2004) - sugarmsi - removed echo count
- r354 - 2004-08-02 23:00:37 -0700 (Mon, 02 Aug 2004) - sugarjacob - Adding Soap
- */
- /**
- * Contains information for a SOAP fault.
- * Mainly used for returning faults from deployed functions
- * in a server instance.
- * @author …
Large files files are truncated, but you can click here to view the full file