www.gusucode.com > Magic CMS PHP网站管理系统-政府企业版 v2.2.1源码程序 > magiccms_zq_v2.2.1/src/Magic/Data/Public/js/dtree.js

    function Node(id,pid,name,url,show,type,model,sort,menu,status,model2,title,target,icon,iconOpen,open){this.id=id;this.show=show;this.pid=pid;this.name=name;this.type=type;this.model=model;this.model2=model2;this.sort=sort;this.menu=menu;this.status=status;this.url=url;this.title=title;this.target=target;this.icon=icon;this.iconOpen=iconOpen;this._io=open||false;this._is=false;this._ls=false;this._hc=false;this._ai=0;this._p}function dTree(objName){this.config={target:null,folderLinks:true,useSelection:true,useCookies:true,useLines:true,useIcons:true,useStatusText:false,closeSameLevel:false,inOrder:false};this.icon={root:"Data/Public/images/base"+objName+".gif",folder:"Data/Public/images/folder"+objName+".gif",folderOpen:"Data/Public/images/folderopen"+objName+".gif",node:"Data/Public/images/page"+objName+".gif",empty:"Data/Public/images/empty.gif",line:"Data/Public/images/line"+objName+".gif",join:"Data/Public/images/join"+objName+".gif",joinBottom:"Data/Public/images/joinbottom"+objName+".gif",plus:"Data/Public/images/plus"+objName+".gif",plusBottom:"Data/Public/images/plusbottom"+objName+".gif",minus:"Data/Public/images/minus"+objName+".gif",minusBottom:"Data/Public/images/minusbottom"+objName+".gif",nlPlus:"Data/Public/images/nolines_plus"+objName+".gif",nlMinus:"Data/Public/images/nolines_minus"+objName+".gif"};this.obj=objName;this.aNodes=[];this.aIndent=[];this.root=new Node(-1);this.selectedNode=null;this.selectedFound=false;this.completed=false}dTree.prototype.add=function(id,pid,name,url,show,type,model,model2,menu,sort,status,title,target,icon,iconOpen,open){this.aNodes[this.aNodes.length]=new Node(id,pid,name,url,show,type,model,model2,menu,sort,status,title,target,icon,iconOpen,open)};dTree.prototype.openAll=function(){this.oAll(true)};dTree.prototype.closeAll=function(){this.oAll(false)};dTree.prototype.toString=function(){var str='<div  class="dtree">\n';if(document.getElementById){if(this.config.useCookies){this.selectedNode=this.getSelected()}str+=this.addNode(this.root)}else{str+="Browser not supported."}str+="</div>";if(!this.selectedFound){this.selectedNode=null}this.completed=true;return str};dTree.prototype.addNode=function(pNode){var str="";var n=0;if(this.config.inOrder){n=pNode._ai}for(n;n<this.aNodes.length;n++){if(this.aNodes[n].pid==pNode.id){var cn=this.aNodes[n];cn._p=pNode;cn._ai=n;this.setCS(cn);if(!cn.target&&this.config.target){cn.target=this.config.target}if(cn._hc&&!cn._io&&this.config.useCookies){cn._io=this.isOpen(cn.id)}if(!this.config.folderLinks&&cn._hc){cn.url=null}if(this.config.useSelection&&cn.id==this.selectedNode&&!this.selectedFound){cn._is=true;this.selectedNode=n;this.selectedFound=true}str+=this.node(cn,n);if(cn._ls){break}}}return str};dTree.prototype.node=function(node,nodeId){str="";var str='<div class="dTreeNode Node_'+nodeId+'">';if(node.show==-2){str+='<span class="node_id">'+node.id+"</span>"}str+='<span class="node_name"><span class="node_img">'+this.indent(node,nodeId);if(this.config.useIcons){if(!node.icon){node.icon=(this.root.id==node.pid)?this.icon.root:((node._hc)?this.icon.folder:this.icon.node)}if(!node.iconOpen){node.iconOpen=(node._hc)?this.icon.folderOpen:this.icon.node}if(this.root.id==node.pid){node.icon=this.icon.root;node.iconOpen=this.icon.root}str+='</span><span class="node_a"><img id="i'+this.obj+nodeId+'" src="'+((node._io)?node.iconOpen:node.icon)+'" />'}if(node.url){str+='<a id="s'+this.obj+nodeId+'" class="'+((this.config.useSelection)?((node._is?"nodeSel":"node")):"node")+'" href="'+node.url+'"';if(node.title){str+=' title="'+node.title+'"'}if(node.target){str+=' target="'+node.target+'"'}if(this.config.useStatusText){str+=" onmouseover=\"window.status='"+node.name+"';return true;\" onmouseout=\"window.status='';return true;\" "}if(this.config.useSelection&&((node._hc&&this.config.folderLinks)||!node._hc)){str+=' onclick="javascript: '+this.obj+".s("+nodeId+');"'}str+=">"}else{if((!this.config.folderLinks||!node.url)&&node._hc&&node.pid!=this.root.id){str+='<a href="javascript: '+this.obj+".o("+nodeId+');" class="node">'}}str+=node.name;if(node.url||((!this.config.folderLinks||!node.url)&&node._hc)){str+="</a>"}if(node.show==-2){str+='</span><span class="">&nbsp;<a href="javascript:" onclick=load("快捷编辑","?r=class-index-edit&id='+node.id+'&tpl=Class/quick","550px","500px")><img src="Data/Public/images/edit.png" width="25"></a></span></span><span class="node_link">'+node.type+'</span><span class="node_model">'+node.model+'</span><span class="node_sort"><input type="text" name="sorter" value="'+node.sort+'" class="insty"  size="5" style="text-indent:0;margin-top:6px;height:22px;line-height:22px;text-align:center" onblur=$("#blank").attr("src","?r=class-index-sorter&sorter="+this.value+"&id='+node.id+'")></span><span class="node_menu"><img src="Data/Public/images/ico-0'+node.menu+'.png" width="15" height="15" style="margin-top:8px" ></span><span class="node_status"><img style="margin-top:8px" src="Data/Public/images/ico-0'+node.status+'.png" width="15" height="15"></span><span class="node_action"><a href="../../../index.php?r=list&id='+node.id+'" target="_blank">浏览</a> | <a href="?r=class-index-edit&pid='+node.id+"&model="+node.model2+'">添加子栏目</a> | <a href="?r=class-index-edit&id='+node.id+'">编辑</a> | <a  href="javascript:" onclick="confirms(\'栏目删除后将无法恢复,<br/>请谨慎操作,确认删除?\',\'?r=class-index-del&id='+node.id+"')\">删除</a></span>"
}str+="</div>";if(node._hc){str+='<div id="d'+this.obj+nodeId+'" class="clip" style="display:'+((this.root.id==node.pid||node._io)?"block":"none")+';">';str+=this.addNode(node);str+="</div>"}this.aIndent.pop();return str};dTree.prototype.indent=function(node,nodeId){var str="";if(this.root.id!=node.pid){for(var n=0;n<this.aIndent.length;n++){str+='<img src="'+((this.aIndent[n]==1&&this.config.useLines)?this.icon.line:this.icon.empty)+'" alt="" style=""/>'}(node._ls)?this.aIndent.push(0):this.aIndent.push(1);if(node._hc){str+='<a href="javascript: '+this.obj+".o("+nodeId+');"><img id="j'+this.obj+nodeId+'" src="';if(!this.config.useLines){str+=(node._io)?this.icon.nlMinus:this.icon.nlPlus}else{str+=((node._io)?((node._ls&&this.config.useLines)?this.icon.minusBottom:this.icon.minus):((node._ls&&this.config.useLines)?this.icon.plusBottom:this.icon.plus))}str+='" alt="" /></a>'}else{str+='<img src="'+((this.config.useLines)?((node._ls)?this.icon.joinBottom:this.icon.join):this.icon.empty)+'" alt="" />'}}return str};dTree.prototype.setCS=function(node){var lastId;for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].pid==node.id){node._hc=true}if(this.aNodes[n].pid==node.pid){lastId=this.aNodes[n].id}}if(lastId==node.id){node._ls=true}};dTree.prototype.getSelected=function(){var sn=this.getCookie("cs"+this.obj);return(sn)?sn:null};dTree.prototype.s=function(id){if(!this.config.useSelection){return}var cn=this.aNodes[id];if(cn._hc&&!this.config.folderLinks){return}if(this.selectedNode!=id){if(this.selectedNode||this.selectedNode==0){eOld=document.getElementById("s"+this.obj+this.selectedNode);eOld.className="node"}eNew=document.getElementById("s"+this.obj+id);eNew.className="nodeSel";this.selectedNode=id;if(this.config.useCookies){this.setCookie("cs"+this.obj,cn.id)}}};dTree.prototype.o=function(id){var cn=this.aNodes[id];this.nodeStatus(!cn._io,id,cn._ls);cn._io=!cn._io;if(this.config.closeSameLevel){this.closeLevel(cn)}if(this.config.useCookies){this.updateCookie()}};dTree.prototype.oAll=function(status){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n]._hc&&this.aNodes[n].pid!=this.root.id){this.nodeStatus(status,n,this.aNodes[n]._ls);this.aNodes[n]._io=status}}if(this.config.useCookies){this.updateCookie()}};dTree.prototype.openTo=function(nId,bSelect,bFirst){if(!bFirst){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].id==nId){nId=n;break}}}var cn=this.aNodes[nId];if(cn.pid==this.root.id||!cn._p){return}cn._io=true;cn._is=bSelect;if(this.completed&&cn._hc){this.nodeStatus(true,cn._ai,cn._ls)}if(this.completed&&bSelect){this.s(cn._ai)}else{if(bSelect){this._sn=cn._ai}}this.openTo(cn._p._ai,false,true)};dTree.prototype.closeLevel=function(node){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].pid==node.pid&&this.aNodes[n].id!=node.id&&this.aNodes[n]._hc){this.nodeStatus(false,n,this.aNodes[n]._ls);this.aNodes[n]._io=false;this.closeAllChildren(this.aNodes[n])}}};dTree.prototype.closeAllChildren=function(node){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].pid==node.id&&this.aNodes[n]._hc){if(this.aNodes[n]._io){this.nodeStatus(false,n,this.aNodes[n]._ls)}this.aNodes[n]._io=false;this.closeAllChildren(this.aNodes[n])}}};dTree.prototype.nodeStatus=function(status,id,bottom){eDiv=document.getElementById("d"+this.obj+id);eJoin=document.getElementById("j"+this.obj+id);if(this.config.useIcons){eIcon=document.getElementById("i"+this.obj+id);eIcon.src=(status)?this.aNodes[id].iconOpen:this.aNodes[id].icon}eJoin.src=(this.config.useLines)?((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)):((status)?this.icon.nlMinus:this.icon.nlPlus);eDiv.style.display=(status)?"block":"none"};dTree.prototype.clearCookie=function(){var now=new Date();var yesterday=new Date(now.getTime()-1000*60*60*24);this.setCookie("co"+this.obj,"cookieValue",yesterday);this.setCookie("cs"+this.obj,"cookieValue",yesterday)};dTree.prototype.setCookie=function(cookieName,cookieValue,expires,path,domain,secure){document.cookie=escape(cookieName)+"="+escape(cookieValue)+(expires?"; expires="+expires.toGMTString():"")+(path?"; path="+path:"")+(domain?"; domain="+domain:"")+(secure?"; secure":"")};dTree.prototype.getCookie=function(cookieName){var cookieValue="";var posName=document.cookie.indexOf(escape(cookieName)+"=");if(posName!=-1){var posValue=posName+(escape(cookieName)+"=").length;var endPos=document.cookie.indexOf(";",posValue);if(endPos!=-1){cookieValue=unescape(document.cookie.substring(posValue,endPos))}else{cookieValue=unescape(document.cookie.substring(posValue))}}return(cookieValue)};dTree.prototype.updateCookie=function(){var str="";for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n]._io&&this.aNodes[n].pid!=this.root.id){if(str){str+="."}str+=this.aNodes[n].id}}this.setCookie("co"+this.obj,str)};dTree.prototype.isOpen=function(id){var aOpen=this.getCookie("co"+this.obj).split(".");for(var n=0;n<aOpen.length;n++){if(aOpen[n]==id){return true}}return false
};if(!Array.prototype.push){Array.prototype.push=function array_push(){for(var i=0;i<arguments.length;i++){this[this.length]=arguments[i]}return this.length}}if(!Array.prototype.pop){Array.prototype.pop=function array_pop(){lastElement=this[this.length-1];this.length=Math.max(this.length-1,0);return lastElement}};