public static function handleForm($payload) { $id = $payload['iq']['@']['id']; $domain = $payload['iq']['@']['from']; $node = $payload['iq']['#']['command'][0]['@']['node']; $sid = $payload['iq']['#']['command'][0]['@']['sessionid']; $status = $payload['iq']['#']['command'][0]['@']['status']; if ($status == "completed") { $callback = self::$buffer[self::$buffer[$id]]['callback']; unset(self::$buffer[self::$buffer[$id]]); unset(self::$buffer[$id]); call_user_func($callback, $payload); } else { if ($status == "executing") { $fields = JAXL0004::getFormField($payload['iq']['#']['command'][0]['#']['x'][0]['#']['field']); foreach ($fields as $key => $field) { switch ($field['var']) { case 'accountjids': $fields[$key]['value'] = self::$buffer[$id]['user']['jid'] . '@' . $domain; break; case 'accountjid': $fields[$key]['value'] = self::$buffer[$id]['user']['jid'] . '@' . $domain; break; case 'password': $fields[$key]['value'] = self::$buffer[$id]['user']['pass']; break; case 'password-verify': $fields[$key]['value'] = self::$buffer[$id]['user']['pass']; break; case 'email': $fields[$key]['value'] = self::$buffer[$id]['user']['email']; break; case 'given_name': $fields[$key]['value'] = self::$buffer[$id]['user']['fname']; break; case 'surname': $fields[$key]['value'] = self::$buffer[$id]['user']['lname']; break; } } $payload = JAXL0004::setFormField($fields, false, false, 'submit'); self::$buffer[self::submitForm($domain, false, $payload, $node, $sid)] = $id; } else { JAXLog::log("Unhandled form status type..."); } } }
public static function setRoomConfig($jaxl, $jid, $roomJid, $fields, $callback = false) { $payload = JAXL0004::setFormField($fields, false, false, 'submit'); $payload = '<query xmlns="' . self::$ns . '#owner">' . $payload . '</query>'; return XMPPSend::iq($jaxl, "set", $payload, $roomJid, $jid, $callback); }