return;
}
- # XXX: ajax response
-
- common_redirect(common_local_url('showfavorites',
- array('nickname' => $user->nickname)));
+ if ($this->boolean('ajax')) {
+ common_start_html('text/xml');
+ common_element_start('head');
+ common_element('title', _('Favor'));
+ common_element_end('head');
+ common_element_start('body');
+ common_favor_form($notice);
+ common_element_end('body');
+ common_element_end('html');
+ } else {
+ common_redirect(common_local_url('showfavorites',
+ array('nickname' => $user->nickname)));
+ }
}
}
\ No newline at end of file
$this->notify($fave, $notice, $user);
- common_redirect(common_local_url('showfavorites',
- array('nickname' => $user->nickname)));
+ if ($this->boolean('ajax')) {
+ common_start_html('text/xml');
+ common_element_start('head');
+ common_element('title', _('Disfavor'));
+ common_element_end('head');
+ common_element_start('body');
+ common_disfavor_form($notice);
+ common_element_end('body');
+ common_element_end('html');
+ } else {
+ common_redirect(common_local_url('showfavorites',
+ array('nickname' => $user->nickname)));
+ }
}
function notify($fave, $notice, $user) {
var id = new_form.id.replace('favor', 'disfavor');
$('form#'+id).replace(new_form);
}};
-
+
+ function addAjaxHidden(form) {
+ ajax = document.newElement('input');
+ ajax.addAttribute('type', 'hidden');
+ ajax.addAttribute('name', 'ajax');
+ ajax.addAttribute('value', 1);
+ form.appendChild(ajax);
+ }
+
$("form.favor").ajaxForm(favoptions);
- $("form.disfavor").ajaxForm(disoptions);
+ $("form.disfavor").ajaxForm(disoptions);
+
+ $("form.favor").each(addAjaxHidden);
+ $("form.disfavor").each(addAjaxHidden);
});
function doreply(nick) {
define('PAGE_TYPE_PREFS', 'text/html,application/xhtml+xml,application/xml;q=0.3,text/xml;q=0.2');
function common_show_header($pagetitle, $callable=NULL, $data=NULL, $headercall=NULL) {
+
global $config, $xw;
- $httpaccept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : NULL;
-
- # XXX: allow content negotiation for RDF, RSS, or XRDS
-
- $type = common_negotiate_type(common_accept_to_prefs($httpaccept),
- common_accept_to_prefs(PAGE_TYPE_PREFS));
-
- if (!$type) {
- common_user_error(_('This page is not available in a media type you accept'), 406);
- exit(0);
- }
-
- header('Content-Type: '.$type);
-
- common_start_xml('html',
- '-//W3C//DTD XHTML 1.0 Strict//EN',
- 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd');
-
- # FIXME: correct language for interface
-
- $language = common_language();
-
- common_element_start('html', array('xmlns' => 'http://www.w3.org/1999/xhtml',
- 'xml:lang' => $language,
- 'lang' => $language));
-
+ common_start_html();
+
common_element_start('head');
common_element('title', NULL,
$pagetitle . " - " . $config['site']['name']);
common_element_start('div', array('id' => 'content'));
}
+function common_start_html($type=NULL) {
+
+ if (!$type) {
+ $httpaccept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : NULL;
+
+ # XXX: allow content negotiation for RDF, RSS, or XRDS
+
+ $type = common_negotiate_type(common_accept_to_prefs($httpaccept),
+ common_accept_to_prefs(PAGE_TYPE_PREFS));
+
+ if (!$type) {
+ common_user_error(_('This page is not available in a media type you accept'), 406);
+ exit(0);
+ }
+ }
+
+ header('Content-Type: '.$type);
+
+ common_start_xml('html',
+ '-//W3C//DTD XHTML 1.0 Strict//EN',
+ 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd');
+
+ # FIXME: correct language for interface
+
+ $language = common_language();
+
+ common_element_start('html', array('xmlns' => 'http://www.w3.org/1999/xhtml',
+ 'xml:lang' => $language,
+ 'lang' => $language));
+}
+
function common_show_footer() {
global $xw, $config;
common_element_end('div'); # content div