예제 #1
0
 /**
  * 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();
 }
예제 #3
0
 /**
  * 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;
 }