mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 03:01:43 +09:00
1. 회원/게시글/댓글 팝업메뉴를 controller의 method를 이용하여 손쉽게 추가할 수 있도록 변경
2. 게시글/ 댓글 팝업메뉴에 아이콘 추가 3. 쪽지 발송/ 친구 관련 메뉴의 on/off를 member_communication 애드온으로 활성/비활성 할 수 있도록 변경 4. IE에서 페이지를 찾을 수 없다는 오류가 발생하는 window onload이전에 DOM을 건드리는 코드에 대한 보완책 적용 5. XML RPC 결과 출력시 1depth이상의 배열 또는 오브젝트 데이터를 Simple XML 형식으로 출력할 수 있도록 하고 Javascript에서 이를 다차원 배열로 parsing하도록 코드 변경 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4230 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
bc963aa72f
commit
4cdce7e4cf
26 changed files with 422 additions and 115 deletions
|
|
@ -63,6 +63,7 @@ function xml_handler() {
|
|||
this.addParam = xml_handlerAddParam;
|
||||
this.getResponseXml = xml_handlerGetResponseXML;
|
||||
this.toZMsgObject = xml_handlerToZMsgObject;
|
||||
this.parseXMLDoc = xml_parseXmlDoc;
|
||||
|
||||
this.obj_xmlHttp = this.getXmlHttp();
|
||||
}
|
||||
|
|
@ -157,21 +158,57 @@ function xml_handlerGetResponseXML() {
|
|||
return null;
|
||||
}
|
||||
|
||||
function xml_parseXmlDoc(dom) {
|
||||
if(!dom) return;
|
||||
|
||||
var ret_obj = new Array();
|
||||
|
||||
var obj = dom.firstChild;
|
||||
if(!obj) return;
|
||||
|
||||
while(obj) {
|
||||
if(obj.nodeType == 1) {
|
||||
|
||||
if(obj.firstChild && obj.lastChild && obj.firstChild == obj.lastChild) {
|
||||
var name = obj.nodeName;
|
||||
var value = obj.firstChild.nodeValue;
|
||||
ret_obj[name] = value;
|
||||
} else {
|
||||
var name = obj.nodeName;
|
||||
var value = this.parseXMLDoc(obj);
|
||||
|
||||
if(typeof(ret_obj[name])=='undefined') {
|
||||
ret_obj[name] = value;
|
||||
} else {
|
||||
if(ret_obj[name].length>0) {
|
||||
ret_obj[name][ret_obj[name].length] = value;
|
||||
} else {
|
||||
var tmp_value = ret_obj[name];
|
||||
ret_obj[name] = new Array();
|
||||
ret_obj[name][ret_obj[name].length] = tmp_value;
|
||||
ret_obj[name][ret_obj[name].length] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
obj = obj.nextSibling;
|
||||
}
|
||||
return ret_obj;
|
||||
}
|
||||
|
||||
function xml_handlerToZMsgObject(xmlDoc, tags) {
|
||||
if(!xmlDoc) return null;
|
||||
if(!tags) tags = new Array("error","message");
|
||||
tags[tags.length] = "redirect_url";
|
||||
tags[tags.length] = "act";
|
||||
|
||||
var parsed_array = this.parseXMLDoc(xmlDoc.getElementsByTagName('response')[0]);
|
||||
|
||||
var obj_ret = new Array();
|
||||
for(var i=0; i<tags.length; i++) {
|
||||
var key = tags[i];
|
||||
if(obj_ret[key]) continue;
|
||||
try {
|
||||
obj_ret[key] = xmlDoc.getElementsByTagName(tags[i])[0].firstChild.nodeValue;
|
||||
} catch(e) {
|
||||
obj_ret[key] = "";
|
||||
}
|
||||
if(parsed_array[key]) obj_ret[key] = parsed_array[key];
|
||||
else obj_ret[key] = null;
|
||||
}
|
||||
return obj_ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue