[quote=ily]gini bro, viewer aq ganti posisi nya dari tengah ke atas control panel gt bro...
tp malah control panel nya yg ilang
bagian nech yg aq ganti
[/quote]
klo soal mini viewer kamu mau di atas cpanel,,,
mendingan kamu pake mini viewer yang versi baru ini,,
mudah cara penyesuaian addboxnya,,
ini kode mini viewernya,,
simpan di JS kamu di bagian C...
[spoiler]/**
* Viewer's Main Photo Sidebar
* Author: FeRuZZ ©
http://profiles.friendster.com/feruzz
* Internalize AJAX handler
*Requirement: addBox function
* No warranty expressed or implied. Use at your own risk.
**/
/*global SPAWNPIC*/
SPAWNPIC = {};
/* just get rid if you already have one */
if (pageViewerLangPref !== "en-US") {
window.location.href = "http://" + location.hostname + "/" + pageOwnerID + "?lang=en-US&updatelang=1";
}
if (!attachOnLoadHandler(function () { SPAWNPIC.init(); })) window.onload = function () { SPAWNPIC.init(); };
(function () {
SPAWNPIC = {
// private property
photo: null,
info: {
name: null,
photo: null,
gender: null,
age: null,
status: null,
location: null,
seek: null,
since: null
},
regexp: {
name: /controlpanel_header">([\S\s]*?)<a\s*name="controlpanel/i,
photo: /imgblock200"><a[\S\s]*?>([\S\s]*?)<\/a><\/div>/i,
gender: /q">([\S]*male)/i,
age: /male,\s*([\d]*),/i,
status: /male,\s*[\d]*,\s*([\S\s]*?)<\/span>/i,
location: /Location\:\s*<\/span><a[\S\s]*?>([\S\s]*?)<\/a><\/li>/i,
seek: /Interested\s*In\:\s*<\/span>([\S\s]*?)<\/li>/i,
since: /Member\s*Since\:\s*<\/span>([\w]*?[\s][\d]*?)<\/li>/i
},
init: function () {
try {
SPAWNPIC.ajaxRequest("GET", "http://" + location.hostname + "/" + pageViewerID, true, null, SPAWNPIC.viewer, null);
} catch (e) {}
},
viewer: function (htm) {
if (htm.replace(/^\s*|\s*$/g, "") === "") {
alert("VMP Error: Unable to parse user details!");
return;
} else if (htm) {
for (var val in SPAWNPIC.info) {
if (typeof SPAWNPIC.info[val] !== "function") {
try {
SPAWNPIC.info[val] = new RegExp(SPAWNPIC.regexp[val]).exec(htm)[1].replace(/^(\d)$/, "0$1");
} catch (e) {
SPAWNPIC.info[val] = "";
}
}
}
if (SPAWNPIC.info.seek === "") {
SPAWNPIC.info.seek = "Just looking around";
}
SPAWNPIC.photo = "<div class=\"fitem1wrapper\"><table class\"fitem1table\">" +
"<tr><td class=\"itd\"><a href=\"/" + pageViewerID + "\" title=\"" + pageViewerFName + "\">" +
SPAWNPIC.info.photo.replace(/<img /gi, "<img width=\"100\" height=\"100\" ") + "</a></td>" +
"<td class=\"dtd\"><ul class=\"data\"><div class=\"title\">" +
"<li><a href=\"/" + pageViewerID + "\">" +
SPAWNPIC.info.name + "</a><br>" +
pageViewerID.replace(/^\s*[\d]*?/gi, "Friendster ID: ") + "<br>" +
SPAWNPIC.info.gender + ", " + SPAWNPIC.info.age + ", " + SPAWNPIC.info.status.replace(/<[\S]*?>/g, "") + "<br>" +
SPAWNPIC.info.seek.replace(/^\s*[\S\s]*?/gi, "Interested In: ") + "<br>" +
SPAWNPIC.info.since.replace(/^\s*[\w]*?/gi, "Member Since: ") + "<br>" +
SPAWNPIC.info.location.replace(/^\s*[\S\s]*?/gi, "Location: ") + "</li>" +
"</div></ul></td></tr></table></div>";
[b]addBox("LEFT","Hello " + SPAWNPIC.info.name, SPAWNPIC.photo, "spawnpic","0");[/b]
}
},
ajaxRequest: function (type, url, async, param, func, handlerparam) {
/**
* ajaxRequest - You may not remove or change this notice.
* version: 2.4
* Copyright 2008 by FeRuZZ ©
http://profiles.friendster.com/feruzz.
*
* @type: "GET" | "POST"
* @cont: true | false
* @param: string | null
* @func: string | null
* @handlerparam: string | null
**/
var httprequest = null;
var requestDone = false;
var data = null;
var responseType = "text";
var timeout = 0;
var ival = null;
var onreadystatechange = {};
var msxml = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var x = 0, len = msxml.length; x < len; x += 1) {
try {
httprequest = window.ActiveXObject ? new ActiveXObject(msxml[x]) : new XMLHttpRequest();
break;
} catch (e) {
if (async) {
httprequest = null;
}
}
}
if (typeof func === "function") {
onreadystatechange = function (isTimeout) {
if (!requestDone && httprequest && (httprequest.readyState === 4 || isTimeout === "timeout")) {
requestDone = true;
if (ival) {
window.clearInterval(ival);
ival = null;
}
if (!httprequest.status && location.protocol === "file:" || (httprequest.status >= 200 && httprequest.status < 300) || httprequest.status === 304 || httprequest.status === 1223) {
var resPonse = (/xml/i.test(responseType))? httprequest.responseXML : httprequest.responseText;
func(resPonse.replace(new RegExp("<script[^>]*>.*?<\/script>", "gi"), ""), handlerparam);
}
}
};
}
if (async) {
ival = window.setInterval(onreadystatechange, 13);
if (timeout > 0) {
window.setTimeout(function () {
if (httprequest) {
httprequest.abort();
if (!requestDone) {
onreadystatechange("timeout");
}
}
}, timeout);
}
}
if (type === "GET" && (/GET/i.test(type))) {
var ts = new Date().getTime();
var ret = url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
url = ret + ((ret === url) ? (url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
}
if (data && type === "GET" && (/GET/i.test(type))) {
url += (url.match(/\?/) ? "&" : "?") + data;
data = null;
}
if (type === "POST" && (/POST/i.test(type))) {
var headers = "application/x-www-form-urlencoded" + ("UTF-8" ? "; charset=" + "UTF-8" : "");
var contentLength = param ? param.length: 0;
try {
httprequest.setRequestHeader("Content-type", headers);
httprequest.setRequestHeader("Content-length", contentLength);
if (httprequest.overrideMimeType && (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0, 2005])[1] < 2005) {
httprequest.setRequestHeader("Connection", "close");
}
} catch (err) {}
}
httprequest.open(type, url, async);
httprequest.setRequestHeader("ajaxRequest", "true");
httprequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
httprequest.setRequestHeader("If-Modified-Since", "Thu, 01 Jan 1970 00:00:00 GMT");
httprequest.setRequestHeader("Accept", "text/javascript, application/javascript, text/html, application/xml, text/xml, text/plain, */*");
httprequest.send(param);
if (!async) {
onreadystatechange();
}
}
};
})();
[/spoiler]
dan ini kode tuk CSSnya,,
<">
Last edited by arcatari (2008-07-25 21:37:24)