1: | <?php
|
2: | |
3: | |
4: | |
5: | |
6: | |
7: | |
8: | |
9: | |
10: |
|
11: |
|
12: | |
13: | |
14: | |
15: | |
16: | |
17: | |
18: |
|
19: |
|
20: |
|
21: | |
22: | |
23: |
|
24: | class XoopsXmlRpcApi
|
25: | {
|
26: |
|
27: | public $params;
|
28: |
|
29: |
|
30: | public $response;
|
31: |
|
32: |
|
33: | public $module;
|
34: |
|
35: |
|
36: | public $xoopsTagMap = array();
|
37: |
|
38: |
|
39: | public $user;
|
40: |
|
41: | public $isadmin = false;
|
42: |
|
43: | |
44: | |
45: | |
46: | |
47: |
|
48: | public function __construct(&$params, &$response, &$module)
|
49: | {
|
50: | $this->params =& $params;
|
51: | $this->response =& $response;
|
52: | $this->module =& $module;
|
53: | }
|
54: |
|
55: | |
56: | |
57: | |
58: |
|
59: | public function _setUser(&$user, $isadmin = false)
|
60: | {
|
61: | if (is_object($user)) {
|
62: | $this->user =& $user;
|
63: | $this->isadmin = $isadmin;
|
64: | }
|
65: | }
|
66: |
|
67: | |
68: | |
69: | |
70: | |
71: | |
72: |
|
73: | public function _checkUser($username, $password)
|
74: | {
|
75: | if (isset($this->user)) {
|
76: | return true;
|
77: | }
|
78: |
|
79: | $member_handler = xoops_getHandler('member');
|
80: | $this->user = $member_handler->loginUser(addslashes($username), addslashes($password));
|
81: | if (!is_object($this->user)) {
|
82: | unset($this->user);
|
83: |
|
84: | return false;
|
85: | }
|
86: |
|
87: | $moduleperm_handler = xoops_getHandler('groupperm');
|
88: | if (!$moduleperm_handler->checkRight('module_read', $this->module->getVar('mid'), $this->user->getGroups())) {
|
89: | unset($this->user);
|
90: |
|
91: | return false;
|
92: | }
|
93: |
|
94: | return true;
|
95: | }
|
96: |
|
97: | |
98: | |
99: |
|
100: | public function _checkAdmin()
|
101: | {
|
102: | if ($this->isadmin) {
|
103: | return true;
|
104: | }
|
105: | if (!isset($this->user)) {
|
106: | return false;
|
107: | }
|
108: | if (!$this->user->isAdmin($this->module->getVar('mid'))) {
|
109: | return false;
|
110: | }
|
111: | $this->isadmin = true;
|
112: |
|
113: | return true;
|
114: | }
|
115: |
|
116: | |
117: | |
118: | |
119: | |
120: | |
121: |
|
122: | public function &_getPostFields($post_id = null, $blog_id = null)
|
123: | {
|
124: | $ret = array();
|
125: | $ret['title'] = array('required' => true, 'form_type' => 'textbox', 'value_type' => 'text');
|
126: | $ret['hometext'] = array('required' => false, 'form_type' => 'textarea', 'data_type' => 'textarea');
|
127: | $ret['moretext'] = array('required' => false, 'form_type' => 'textarea', 'data_type' => 'textarea');
|
128: | $ret['categories'] = array('required' => false, 'form_type' => 'select_multi', 'data_type' => 'array');
|
129: |
|
130: | |
131: | |
132: | |
133: | |
134: | |
135: | |
136: | |
137: | |
138: | |
139: | |
140: | |
141: | |
142: |
|
143: |
|
144: | return $ret;
|
145: | }
|
146: |
|
147: | |
148: | |
149: | |
150: |
|
151: | public function _setXoopsTagMap($xoopstag, $blogtag)
|
152: | {
|
153: | if (trim($blogtag) != '') {
|
154: | $this->xoopsTagMap[$xoopstag] = $blogtag;
|
155: | }
|
156: | }
|
157: |
|
158: | |
159: | |
160: | |
161: | |
162: |
|
163: | public function _getXoopsTagMap($xoopstag)
|
164: | {
|
165: | if (isset($this->xoopsTagMap[$xoopstag])) {
|
166: | return $this->xoopsTagMap[$xoopstag];
|
167: | }
|
168: |
|
169: | return $xoopstag;
|
170: | }
|
171: |
|
172: | |
173: | |
174: | |
175: | |
176: | |
177: | |
178: |
|
179: | public function _getTagCdata(&$text, $tag, $remove = true)
|
180: | {
|
181: | $ret = '';
|
182: | $match = array();
|
183: | if (preg_match("/\<" . $tag . "\>(.*)\<\/" . $tag . "\>/is", $text, $match)) {
|
184: | if ($remove) {
|
185: | $text = str_replace($match[0], '', $text);
|
186: | }
|
187: | $ret = $match[1];
|
188: | }
|
189: |
|
190: | return $ret;
|
191: | }
|
192: |
|
193: |
|
194: |
|
195: | |
196: | |
197: | |
198: | |
199: |
|
200: | public function &_getXoopsApi(&$params)
|
201: | {
|
202: | if (strtolower(get_class($this)) !== 'xoopsapi') {
|
203: | require_once(XOOPS_ROOT_PATH . '/class/xml/rpc/xoopsapi.php');
|
204: |
|
205: | return new XoopsApi($params, $this->response, $this->module);
|
206: | } else {
|
207: | return $this;
|
208: | }
|
209: | }
|
210: | }
|
211: | |