public static function filterXmlInput(array $filters, $xmlrpc_params) { global $db, $mybb; require_once MYBB_ROOT . $mybb->settings['tapatalk_directory'] . '/emoji/emoji.class.php'; $params = php_xmlrpc_decode($xmlrpc_params); // handle upload requests etc. if (empty($params) && !empty($_POST['method_name'])) { $params = array(); foreach ($filters as $name => $type) { if (isset($_POST[$name])) { $params[] = $_POST[$name]; } } } $data = array(); $i = 0; foreach ($filters as $name => $type) { switch ($type) { case self::INT: if (isset($params[$i])) { $data[$name] = intval($params[$i]); } else { $data[$name] = 0; } break; case self::ALPHASTRING: if (isset($params[$i])) { $data[$name] = preg_replace("#[^a-z\\.\\-_]#i", "", $params[$i]); } else { $data[$name] = ''; } $data[$name . '_esc'] = $db->escape_string($data[$name]); break; case self::STRING: if (isset($params[$i])) { if ($name == 'subject' || $name == 'post_title' || $name == 'title') { $data[$name] = tapatalkEmoji::covertUnifiedToEmpty($params[$i]); } else { $data[$name] = tapatalkEmoji::covertEmojiToName($params[$i]); } } else { $data[$name] = ''; } $data[$name . '_esc'] = $db->escape_string($data[$name]); break; case self::RAW: $data[$name] = $params[$i]; break; } $i++; } return $data; }