Added some more hooks to the page editing pipeline. It should now be possible to add controls to the page editor, send the data from them out to the server, and process them on the server side.
// Sidebar collapse
function enanium_toggle_sidebar(side)
{
if ( !document.getElementById('enanium_sidebar_' + side) )
return false;
if ( document.getElementById('enanium_sidebar_' + side).style.display == 'none' )
{
// show
document.getElementById('enanium_sidebar_' + side).style.display = 'block';
document.getElementById('enanium_sidebar_' + side + '_hidden').style.display = 'none';
createCookie(side + '_sidebar', 'open', 365);
}
else
{
// hide
document.getElementById('enanium_sidebar_' + side).style.display = 'none';
document.getElementById('enanium_sidebar_' + side + '_hidden').style.display = 'block';
createCookie(side + '_sidebar', 'collapsed', 365);
}
}
function enanium_toggle_sidebar_right()
{
enanium_toggle_sidebar('right');
}
function enanium_toggle_sidebar_left()
{
enanium_toggle_sidebar('left');
}
addOnloadHook(function()
{
if ( readCookie('left_sidebar') == 'collapsed' && document.getElementById('enanium_sidebar_left') )
{
document.getElementById('enanium_sidebar_left').style.display = 'none';
document.getElementById('enanium_sidebar_left_hidden').style.display = 'block';
}
if ( readCookie('right_sidebar') == 'collapsed' && document.getElementById('enanium_sidebar_right') )
{
document.getElementById('enanium_sidebar_right').style.display = 'none';
document.getElementById('enanium_sidebar_right_hidden').style.display = 'block';
}
});
// Inline rename
function ajaxRenameInline()
{
if ( KILL_SWITCH || IE )
return false;
// This trick is _so_ vBulletin...
elem = document.getElementById('h2PageName');
if(!elem) return;
elem.style.display = 'none';
name = elem.firstChild.nodeValue;
textbox = document.createElement('input');
textbox.type = 'text';
textbox.value = name;
textbox.id = 'pageheading';
textbox.size = name.length + 7;
textbox.onkeyup = function(e) { if(!e) return; if(e.keyCode == 13) ajaxRenameInlineSave(); if(e.keyCode == 27) ajaxRenameInlineCancel(); };
textbox.oldname = name;
elem.parentNode.insertBefore(textbox, elem);
document.onclick = ajaxRenameInlineCancel;
load_component(['l10n', 'fadefilter', 'messagebox']);
textbox.focus();
textbox.select();
}
function ajaxRenameInlineSave()
{
elem1 = document.getElementById('h2PageName');
elem2 = document.getElementById('pageheading');
if(!elem1 || !elem2) return;
value = elem2.value;
elem2.parentNode.removeChild(elem2); // just destroy the thing
elem1.removeChild(elem1.firstChild);
elem1.appendChild(document.createTextNode(value));
elem1.style.display = 'block';
if(!value || value=='' || value==elem2.oldname) return;
setAjaxLoading();
ajaxPost(stdAjaxPrefix+'&_mode=rename', 'newtitle='+ajaxEscape(value), function() {
if ( ajax.readyState == 4 )
{
unsetAjaxLoading();
var response = String(ajax.responseText);
if ( !check_json_response(response) )
{
handle_invalid_json(response);
return false;
}
response = parseJSON(response);
if ( response.success )
{
new MessageBox( MB_OK|MB_ICONINFORMATION, $lang.get('ajax_rename_success_title'), $lang.get('ajax_rename_success_body', { page_name_new: value }) );
}
else
{
alert(response.error);
}
}
});
}
function ajaxRenameInlineCancel(e)
{
if ( typeof(e) != 'object' && IE )
e = window.event;
elem1 = document.getElementById('h2PageName');
elem2 = document.getElementById('pageheading');
if(!elem1 || !elem2) return;
if ( typeof(e) == 'object' && e.target )
{
if(e.target == elem2)
return;
}
//value = elem2.value;
elem2.parentNode.removeChild(elem2); // just destroy the thing
//elem1.innerHTML = value;
elem1.style.display = 'block';
document.onclick = null;
}
if ( window.auth_rename )
{
addOnloadHook(function()
{
var h2 = document.getElementById('h2PageName');
if ( h2 )
{
h2.ondblclick = function()
{
ajaxRenameInline();
}
}
});
}