/** * Renders the view to a string and returns it. * * @return string */ public function render($send_content_headers = false) { require_once DIR . '/includes/class_xml.php'; $xml = new vB_XML_Builder_Ajax('text/xml'); $xml->add_group('container'); $xml->add_tag('success', 1); if ($this->content) { $xml->add_tag('html', $this->content->render()); } $xml->add_tag('title', $this->title); $xml->add_tag('status', $this->status); $xml->add_tag('message', $this->feedback); if (sizeof($this->errors)) { $xml->add_group('errors'); foreach ($this->errors as $error) { $xml->add_tag('error', $error['message'], array('errcode' => $error['code'])); } $xml->close_group(); } if (sizeof($this->urls)) { $xml->add_group('urls'); foreach ($this->urls as $type => $url) { $xml->add_tag('url', $url, array('type' => $type)); } $xml->close_group(); } $xml->close_group(); if ($send_content_headers and !vB::contentHeadersSent()) { $xml->send_content_type_header(); $xml->send_content_length_header(); vB::contentHeadersSent(true); } return $xml->fetch_xml(); }
public static function getAssetPicker($userinfo, $registry) { //see if this user has an album we can use for background images. $albums = vB_dB_Assertor::instance()->assertQuery('CustomProfileAlbums', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_STORED, 'userid' => $userinfo['userid'])); $album = $albums->current(); $album_select = ''; while ($albums->valid()) { $album_select .= "<option value=\"" . $album['albumid'] . "\">" . $album['title'] . "</option>\n"; $album = $albums->next(); } require_once DIR . '/includes/class_xml.php'; $xml = new vB_XML_Builder_Ajax('text/xml'); if (empty($album_select)) { $xml->add_group('error'); $xml->add_tag('phrase', 'need_public_album_text'); } else { $xml->add_group('content'); $template = vB_Template::create('memberinfo_assetpicker'); $template->register('album_select', $album_select); $phrase = new vB_Phrase('profilefield', 'select_album_to_view'); $template->register('select_album_to_view', $phrase); $body = $template->render(); $template = vB_Template::create('memberinfo_assetpicker_footer'); $footer = $template->render(); $header = new vB_Phrase('profilefield', 'asset_picker'); //Now format this as an xml array. $xml->add_tag('body', $body); $xml->add_tag('header', $header); $xml->add_tag('footer', $footer); } $xml->close_group(); $xml->print_xml(); }
/** * This function changes the search type for settings * @param string $varname * @param array $setting * @return array, response */ public function validateSettings($varname, $setting) { $this->checkHasAdminPermission('canadminsettings'); require_once DIR . '/includes/class_xml.php'; require_once DIR . '/includes/functions_file.php'; require_once DIR . '/includes/adminfunctions_options.php'; $response = array(); $varname = convert_urlencoded_unicode($varname); $value = convert_urlencoded_unicode($setting["{$varname}"]); require_once DIR . '/includes/class_xml.php'; $xml = new vB_XML_Builder_Ajax('text/xml'); $xml->add_group('setting'); $xml->add_tag('varname', $varname); $setting = vB::getDbAssertor()->getRow('setting', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_SELECT, 'varname' => $varname)); if ($setting) { $raw_value = $value; $value = validate_setting_value($value, $setting['datatype']); $valid = exec_setting_validation_code($setting['varname'], $value, $setting['validationcode'], $raw_value); } else { $valid = 1; } $xml->add_tag('valid', $valid); $xml->close_group(); $response['xml'] = $xml; $response['validate'] = true; return $response; }