1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Api
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Wsdl base config
29: *
30: * @category Mage
31: * @package Mage_Api
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Api_Model_Wsdl_Config_Base extends Varien_Simplexml_Config
35: {
36: protected $_handler = '';
37:
38: /**
39: * @var Varien_Object
40: */
41: protected $_wsdlVariables = null;
42:
43: protected $_loadedFiles = array();
44:
45: public function __construct($sourceData=null)
46: {
47: $this->_elementClass = 'Mage_Api_Model_Wsdl_Config_Element';
48:
49: // remove wsdl parameter from query
50: $queryParams = Mage::app()->getRequest()->getQuery();
51: unset($queryParams['wsdl']);
52:
53: // set up default WSDL template variables
54: $this->_wsdlVariables = new Varien_Object(
55: array(
56: 'name' => 'Magento',
57: 'url' => htmlspecialchars(Mage::getUrl('*/*/*', array('_query' => $queryParams)))
58: )
59: );
60: parent::__construct($sourceData);
61: }
62:
63: /**
64: * Set handler
65: *
66: * @param string $handler
67: * @return Mage_Api_Model_Wsdl_Config_Base
68: */
69: public function setHandler($handler)
70: {
71: $this->_handler = $handler;
72: return $this;
73: }
74:
75: /**
76: * Get handler
77: *
78: * @return string
79: */
80: public function getHandler()
81: {
82: return $this->_handler;
83: }
84:
85: /**
86: * Processing file data
87: *
88: * @param string $text
89: * @return string
90: */
91: public function processFileData($text)
92: {
93: /** @var $template Mage_Core_Model_Email_Template_Filter */
94: $template = Mage::getModel('core/email_template_filter');
95:
96: $this->_wsdlVariables->setHandler($this->getHandler());
97:
98: $template->setVariables(array('wsdl'=>$this->_wsdlVariables));
99:
100: return $template->filter($text);
101: }
102:
103: public function addLoadedFile($file)
104: {
105: if (!in_array($file, $this->_loadedFiles)) {
106: $this->_loadedFiles[] = $file;
107: }
108: return $this;
109: }
110:
111: public function loadFile($file)
112: {
113: if (in_array($file, $this->_loadedFiles)) {
114: return false;
115: }
116: $res = parent::loadFile($file);
117: if ($res) {
118: $this->addLoadedFile($file);
119: }
120: return $this;
121: }
122:
123: /**
124: * Set variable to be used in WSDL template processing
125: *
126: * @param string $key Varible key
127: * @param string $value Variable value
128: * @return Mage_Api_Model_Wsdl_Config_Base
129: */
130: public function setWsdlVariable($key, $value)
131: {
132: $this->_wsdlVariables->setData($key, $value);
133:
134: return $this;
135: }
136: }
137: