Open Monograph Press  3.3.0
XmlWebService.inc.php
1 <?php
2 
17 import('lib.pkp.classes.webservice.WebService');
18 import('lib.pkp.classes.xslt.XSLTransformer');
19 
20 class XmlWebService extends WebService {
22  var $_returnType;
23 
27  function __construct() {
28  // Parent constructor intentionally not called
29  if (extension_loaded('dom')) {
30  $this->_returnType = XSL_TRANSFORMER_DOCTYPE_DOM;
31  } else {
32  $this->_returnType = XSL_TRANSFORMER_DOCTYPE_STRING;
33  }
34  }
35 
40  function getReturnType() {
41  return $this->_returnType;
42  }
43 
48  function setReturnType($returnType) {
49  if ($returnType == XSL_TRANSFORMER_DOCTYPE_DOM) {
50  if (!extension_loaded('dom')) {
51  fatalError('This system does not meet minimum requirements!');
52  }
53  }
54 
55  $this->_returnType = $returnType;
56  }
57 
58 
64  function &call(&$webServiceRequest) {
65  // Call the web service
66  $xmlResult = parent::call($webServiceRequest);
67 
68  if (Config::getVar('debug', 'log_web_service_info')) {
69  error_log('Time: ' . date('c') . "\nRequest: " . print_r($webServiceRequest, true) . "\nResponse: " . print_r($xmlResult, true) . "\nLast response status: " . $this->_lastResponseStatus . "\n");
70  }
71  // Catch web service errors
72  if (is_null($xmlResult)) return $xmlResult;
73 
74  switch ($this->_returnType) {
75  case XSL_TRANSFORMER_DOCTYPE_DOM:
76  // Create DOM document
77  $resultDOM = new DOMDocument('1.0', Config::getVar('i18n', 'client_charset'));
78  // Try to handle non-well-formed responses
79  $resultDOM->recover = true;
80  $resultDOM->loadXML($xmlResult);
81  return $resultDOM;
82 
83  case XSL_TRANSFORMER_DOCTYPE_STRING:
84  return $xmlResult;
85 
86  default:
87  assert(false);
88  }
89  }
90 }
91 
XmlWebService\call
& call(&$webServiceRequest)
Definition: XmlWebService.inc.php:67
XmlWebService\setReturnType
setReturnType($returnType)
Definition: XmlWebService.inc.php:51
WebService
Abstract base class for a web service.
Definition: WebService.inc.php:25
XmlWebService\$_returnType
$_returnType
Definition: XmlWebService.inc.php:25
XmlWebService\getReturnType
getReturnType()
Definition: XmlWebService.inc.php:43
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
XmlWebService
A web service that returns XML data.
Definition: XmlWebService.inc.php:20
XmlWebService\__construct
__construct()
Definition: XmlWebService.inc.php:30
fatalError
if(!function_exists('import')) fatalError($reason)
Definition: functions.inc.php:32