PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suchen, nützliche Links usw.....


saila
27.02.2007, 19:37
Hi,

ich möchte folgendes auf der Page ergänzen. Innerhalb des vB-Forum gibt es bei z.B. "Suchen" die Funktion, dass bei Klick ein Form-Tag angezeigt wird. Wie kann ich diesen auf die restliche Page übernehmen?

Ist es diese Funktion?

function vB_Reputation_Object(postid)
{
this.postid = postid;
this.divname = 'reputationmenu_' + postid + '_menu';
this.divobj = null;
this.postobj = fetch_object('post' + postid);

this.vbmenuname = 'reputationmenu_' + postid;
this.vbmenu = null;

this.xml_sender_populate = null;
this.xml_sender_submit = null;

var me = this;

/**
* Populate OnReadyStateChange callback. Uses a closure to keep state.
* Remember to use me instead of "this" inside this function!
*/
this.onreadystatechange_populate = function()
{
if (me.xml_sender_populate.handler.readyState == 4 && me.xml_sender_populate.handler.status == 200)
{
if (me.xml_sender_populate.handler.responseXML)
{
// check for error first
var error = me.xml_sender_populate.fetch_data(fetch_tags(me.xml_sender_populate.handler.responseXML, 'error')[0]);
if (error)
{
alert(error);
}
else
{
if (!me.divobj)
{
// Create new div to hold reputation menu html
me.divobj = document.createElement('div');
me.divobj.id = me.divname;
me.divobj.style.display = 'none';
me.divobj.onkeypress = vB_Reputation_Object.prototype.repinput_onkeypress;
me.postobj.parentNode.appendChild(me.divobj);

me.vbmenu = vbmenu_register(me.vbmenuname, true);
// Remove menu's mouseover event
fetch_object(me.vbmenu.controlkey).onmouseover = '';
fetch_object(me.vbmenu.controlkey).onclick = '';
}

me.divobj.innerHTML = me.xml_sender_populate.fetch_data(fetch_tags(me.xml_sender_populate.handler.responseXML, 'reputationbit')[0]);

var inputs = fetch_tags(me.divobj, 'input');
for (var i = 0; i < inputs.length; i++)
{
if (inputs[i].type == 'submit')
{
var sbutton = inputs[i];
var button = document.createElement('input');
button.type = 'button';
button.className = sbutton.className;
button.value = sbutton.value;
button.onclick = vB_Reputation_Object.prototype.submit_onclick;
sbutton.parentNode.insertBefore(button, sbutton);
sbutton.parentNode.removeChild(sbutton);
button.name = sbutton.name;
button.id = sbutton.name + '_' + me.postid
}
}

me.vbmenu.show(fetch_object(me.vbmenuname));
}
}

if (is_ie)
{
me.xml_sender_populate.handler.abort();
}
}
}

/**
* Submit OnReadyStateChange callback. Uses a closure to keep state.
* Remember to use me instead of "this" inside this function!
*/
this.onreadystatechange_submit = function()
{
if (me.xml_sender_submit.handler.readyState == 4 && me.xml_sender_submit.handler.status == 200)
{
if (me.xml_sender_submit.handler.responseXML)
{
// Register new menu item for this reputation icon
if (!me.vbmenu)
{
me.vbmenu = vbmenu_register(me.vbmenuname, true);
// Remove menu's mouseover event
fetch_object(me.vbmenu.controlkey).onmouseover = '';
fetch_object(me.vbmenu.controlkey).onclick = '';
}

// check for error first
var error = me.xml_sender_submit.fetch_data(fetch_tags(me.xml_sender_submit.handler.responseXML, 'error')[0]);
if (error)
{
me.vbmenu.hide(fetch_object(me.vbmenuname));
alert(error);
}
else
{
me.vbmenu.hide(fetch_object(me.vbmenuname));
var repinfo = fetch_tags(me.xml_sender_submit.handler.responseXML, 'reputation')[0];
var repdisplay = repinfo.getAttribute('repdisplay');
var reppower = repinfo.getAttribute('reppower');
var userid = repinfo.getAttribute('userid');

var spans = fetch_tags(document, 'span');
var postid = null;
var match = null;

for (var i = 0; i < spans.length; i++)
{
if (match = spans[i].id.match(/^reppower_(\d+)_(\d+)$/))
{
if (match[2] == userid)
{
spans[i].innerHTML = reppower;
}
}
else if (match = spans[i].id.match(/^repdisplay_(\d+)_(\d+)$/))
{
if (match[2] == userid)
{
spans[i].innerHTML = repdisplay;
}
}
}
alert(me.xml_sender_submit.fetch_data(repinfo));
}
}

if (is_ie)
{
me.xml_sender_submit.handler.abort();
}
}
}
}


Wenn ja, kann ich das einfach übernehmen, um ein annähernd gleiches Style für die Page zu erreichen?

Und - kann ich diese Funktion abkürzen?

StGaensler
28.02.2007, 12:21
Wende dich doch bitte für solche Fragen an die Hacking-Foren http://vbhacks-germany.org/ oder http://vbulletin.org/

Viele Grüße,
Stefan