Nucleus CMS日本語版用プラグインのうち、日本語版開発者がサポートしているもの
Revision | ace21f5c6fe368d2df7c6785451431d8fc56b333 (tree) |
---|---|
Time | 2006-11-04 18:22:52 |
Author | shizuki <shizuki@1ca2...> |
Commiter | shizuki |
bug fix
git-svn-id: https://svn.sourceforge.jp/svnroot/nucleus-jp/plugin@472 1ca29b6e-896d-4ea0-84a5-967f57386b96
@@ -1 +1 @@ | ||
1 | -/*--------------------------------------------------| | dTree 2.05 | www.destroydrop.com/javascript/tree/ | |---------------------------------------------------| | Copyright (c) 2002-2003 Geir Landr・ | | | | This script can be used freely as long as all | | copyright messages are intact. | | | | Updated: 17.04.2003 | |--------------------------------------------------*/ <?php $strRel = '../../../'; include($strRel . 'config.php'); include($DIR_LIBS . 'PLUGINADMIN.php'); $oPluginAdmin = new PluginAdmin('Dtree'); $this->plug =& $oPluginAdmin->plugin; $imgpath = $this->plug->getAdminURL(); // $imgpath = 'nucleus/plugins/dtree/'; ?> // Node object var imgpath = "<?php echo $imgpath;?>"; function Node(id, pid, name, url, title, target, icon, iconOpen, open) { this.id = id; this.pid = pid; this.name = name; 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; }; // Tree object function dTree(objName) { this.config = { target : null, <?php if ($this->plug->getOption('folderLinks') == 'yes') { echo 'folderLinks : true,'; } else { echo 'folderLinks : false,'; } if ($this->plug->getOption('useSelection') == 'yes') { echo 'useSelection : true,'; } else { echo 'useSelection : false,'; } if ($this->plug->getOption('useCookies') == 'yes') { echo 'useCookies : true,'; } else { echo 'useCookies : false,'; } if ($this->plug->getOption('useLines') == 'yes') { echo 'useLines : true,'; } else { echo 'useLines : false,'; } if ($this->plug->getOption('useIcons') == 'yes') { echo 'useIcons : true,'; } else { echo 'useIcons : false,'; } if ($this->plug->getOption('useStatusText') == 'yes') { echo 'useStatusText : true,'; } else { echo 'useStatusText : false,'; } if ($this->plug->getOption('closeSameLevel') == 'yes') { echo 'closeSameLevel : true,'; } else { echo 'closeSameLevel : false,'; } if ($this->plug->getOption('inOrder') == 'yes') { echo 'inOrder : true,'; } else { echo 'inOrder : false,'; } ?> // folderLinks : true, // useSelection : false, // useCookies : false, // useLines : false, // useIcons : false, // useStatusText : true, // closeSameLevel : true, // inOrder : false } this.icon = { root : imgpath + 'img/base.gif', folder : imgpath + 'img/folder.gif', folderOpen : imgpath + 'img/folderopen.gif', // node : imgpath + 'img/page.gif', node : imgpath + 'img/folder.gif', empty : imgpath + 'img/empty.gif', line : imgpath + 'img/line.gif', join : imgpath + 'img/join.gif', joinBottom : imgpath + 'img/joinbottom.gif', plus : imgpath + 'img/plus.gif', plusBottom : imgpath + 'img/plusbottom.gif', minus : imgpath + 'img/minus.gif', minusBottom : imgpath + 'img/minusbottom.gif', nlPlus : imgpath + 'img/nolines_plus.gif', nlMinus : imgpath + 'img/nolines_minus.gif' }; this.obj = objName; this.aNodes = []; this.aIndent = []; this.root = new Node(-1); this.selectedNode = null; this.selectedFound = false; this.completed = false; }; // Adds a new node to the node array dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) { this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open); }; // Open/close all nodes dTree.prototype.openAll = function() { this.oAll(true); }; dTree.prototype.closeAll = function() { this.oAll(false); }; // Outputs the tree to the page 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; }; // Creates the tree structure 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; }; // Creates the node icon, url and text dTree.prototype.node = function(node, nodeId) { var str = '<div class="dTreeNode">' + 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 += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" />'; } 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>'; 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; }; // Adds the empty and line icons 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="" />'; (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; }; // Checks if a node has any children and if it is the last sibling 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; }; // Returns the selected node dTree.prototype.getSelected = function() { var sn = this.getCookie('cs' + this.obj); return (sn) ? sn : null; }; // Highlights the selected node 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); } }; // Toggle Open or close 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(); }; // Open or close all nodes 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(); }; // Opens the tree to a specific node 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); }; // Closes all nodes on the same level as certain node 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]); } } } // Closes all children of a node 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]); } } } // Change the status of a node(open or closed) 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'; }; // [Cookie] Clears a cookie 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); }; // [Cookie] Sets value in a cookie 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' : ''); }; // [Cookie] Gets a value from a cookie 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); }; // [Cookie] Returns ids of open nodes as a string 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); }; // [Cookie] Checks if a node id is in a cookie 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 Push and pop is not implemented by the browser 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; } }; | |
\ No newline at end of file | ||
1 | +/*--------------------------------------------------| | dTree 2.05 | www.destroydrop.com/javascript/tree/ | |---------------------------------------------------| | Copyright (c) 2002-2003 Geir Landr・ | | | | This script can be used freely as long as all | | copyright messages are intact. | | | | Updated: 17.04.2003 | |--------------------------------------------------*/ <?php $strRel = '../../../'; include($strRel . 'config.php'); include($DIR_LIBS . 'PLUGINADMIN.php'); $oPluginAdmin = new PluginAdmin('Dtree'); $plug =& $oPluginAdmin->plugin; $imgpath = $plug->getAdminURL(); // $imgpath = 'nucleus/plugins/dtree/'; if ($plug->getOption('folderLinks') == 'yes') { $folderLinks = 'true,'; } else { $folderLinks = 'false,'; } if ($plug->getOption('useSelection') == 'yes') { $useSelection = 'true,'; } else { $useSelection = 'false,'; } if ($plug->getOption('useCookies') == 'yes') { $useCookies = 'true,'; } else { $useCookies = 'false,'; } if ($plug->getOption('useLines') == 'yes') { $useLines = 'true,'; } else { $useLines = 'false,'; } if ($plug->getOption('useIcons') == 'yes') { $useIcons = 'true,'; } else { $useIcons = 'false,'; } if ($plug->getOption('useStatusText') == 'yes') { $useStatusText = 'true,'; } else { $useStatusText = 'false,'; } if ($plug->getOption('closeSameLevel') == 'yes') { $closeSameLevel = 'true,'; } else { $closeSameLevel = 'false,'; } if ($plug->getOption('inOrder') == 'yes') { $inOrder = 'true'; } else { $inOrder = 'false'; } ?> // Node object var imgpath = "<?php echo $imgpath;?>"; function Node(id, pid, name, url, title, target, icon, iconOpen, open) { this.id = id; this.pid = pid; this.name = name; 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; }; // Tree object function dTree(objName) { this.config = { target : null, folderLinks : <?php echo $folderLinks ?> useSelection : <?php echo $useSelection ?> useCookies : <?php echo $useCookies ?> useLines : <?php echo $useLines ?> useIcons : <?php echo $useIcons ?> useStatusText : <?php echo $useStatusText ?> closeSameLevel : <?php echo $closeSameLevel ?> inOrder : <?php echo $inOrder ?> // folderLinks : true, // useSelection : false, // useCookies : false, // useLines : false, // useIcons : false, // useStatusText : true, // closeSameLevel : true, // inOrder : false } this.icon = { root : imgpath + 'img/base.gif', folder : imgpath + 'img/folder.gif', folderOpen : imgpath + 'img/folderopen.gif', // node : imgpath + 'img/page.gif', node : imgpath + 'img/folder.gif', empty : imgpath + 'img/empty.gif', line : imgpath + 'img/line.gif', join : imgpath + 'img/join.gif', joinBottom : imgpath + 'img/joinbottom.gif', plus : imgpath + 'img/plus.gif', plusBottom : imgpath + 'img/plusbottom.gif', minus : imgpath + 'img/minus.gif', minusBottom : imgpath + 'img/minusbottom.gif', nlPlus : imgpath + 'img/nolines_plus.gif', nlMinus : imgpath + 'img/nolines_minus.gif' }; this.obj = objName; this.aNodes = []; this.aIndent = []; this.root = new Node(-1); this.selectedNode = null; this.selectedFound = false; this.completed = false; }; // Adds a new node to the node array dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) { this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open); }; // Open/close all nodes dTree.prototype.openAll = function() { this.oAll(true); }; dTree.prototype.closeAll = function() { this.oAll(false); }; // Outputs the tree to the page 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; }; // Creates the tree structure 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; }; // Creates the node icon, url and text dTree.prototype.node = function(node, nodeId) { var str = '<div class="dTreeNode">' + 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 += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" />'; } 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>'; 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; }; // Adds the empty and line icons 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="" />'; (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; }; // Checks if a node has any children and if it is the last sibling 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; }; // Returns the selected node dTree.prototype.getSelected = function() { var sn = this.getCookie('cs' + this.obj); return (sn) ? sn : null; }; // Highlights the selected node 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); } }; // Toggle Open or close 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(); }; // Open or close all nodes 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(); }; // Opens the tree to a specific node 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); }; // Closes all nodes on the same level as certain node 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]); } } } // Closes all children of a node 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]); } } } // Change the status of a node(open or closed) 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'; }; // [Cookie] Clears a cookie 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); }; // [Cookie] Sets value in a cookie 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' : ''); }; // [Cookie] Gets a value from a cookie 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); }; // [Cookie] Returns ids of open nodes as a string 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); }; // [Cookie] Checks if a node id is in a cookie 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 Push and pop is not implemented by the browser 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; } }; | |
\ No newline at end of file |
@@ -1,169 +1,179 @@ | ||
1 | 1 | <?php |
2 | -global $CONF; | |
3 | - $strRel = '../../../'; | |
4 | - include($strRel . 'config.php'); | |
5 | - | |
6 | - $usePathInfo = ($CONF['URLMode'] == 'pathinfo'); | |
7 | - | |
8 | - if ($usePathInfo) { | |
9 | - if (empty($CONF['CategoryKey'])) { | |
10 | - $CONF['CategoryKey'] = 'category'; | |
11 | - } | |
12 | - } | |
13 | - | |
14 | - $CategoryKey = ($usePathInfo) ? $CONF['CategoryKey'] : 'catid'; | |
15 | - | |
16 | -// $objectId = requestVar('o'); | |
17 | - $objectId = 'tree' . preg_replace('|[^0-9a-f]|i', '', substr(requestVar('o'), 4)); | |
18 | -// $objectId = 'tree' . intval(substr(requestVar('o'), 4)); | |
19 | - $blogid = intRequestVar('bid'); | |
20 | - if (empty($blogid)) $blogid = intval($CONF['DefaultBlog']); | |
21 | - $blogname = getBlogNameFromID($blogid); | |
22 | - | |
23 | - $b =& $manager->getBlog($blogid); | |
24 | - $blogurl = $b->getURL(); | |
25 | - if (!$blogurl) { | |
26 | - if($blog) { | |
27 | - $b_tmp =& $manager->getBlog($blogid); | |
28 | - $blogurl = $b_tmp->getURL(); | |
29 | - } | |
30 | - if (!$blogurl) { | |
31 | - $blogurl = $CONF['IndexURL']; | |
32 | - if (!$usePathInfo) { | |
33 | - if ($data['type'] == 'pageparser') { | |
34 | - $blogurl .= 'index.php'; | |
35 | - } else { | |
36 | - $blogurl = $CONF['Self']; | |
37 | - } | |
38 | - } | |
39 | - } | |
40 | - } | |
41 | - if ($usePathInfo) { | |
42 | - if (substr($blogurl, -1) == '/') { | |
43 | - $blogurl = substr($blogurl, 0, -1); | |
44 | - } | |
45 | - } | |
46 | - | |
47 | - $CONF['BlogURL'] = $blogurl; | |
48 | - $CONF['ItemURL'] = $blogurl; | |
49 | - $CONF['CategoryURL'] = $blogurl; | |
50 | - $CONF['ArchiveURL'] = $blogurl; | |
51 | - $CONF['ArchiveListURL'] = $blogurl; | |
52 | - $CONF['SearchURL'] = $blogurl; | |
53 | - | |
54 | - echo $objectId . "=new dTree('" . htmlspecialchars($objectId) . "');\n"; | |
55 | - | |
56 | - echo $objectId . ".add(0,-1,'" . htmlspecialchars($blogname) . "');\n"; | |
57 | - | |
58 | - $resq = 'SELECT * FROM %s WHERE cblog = %d'; | |
59 | - $res = sql_query(sprintf($resq, sql_table('category'), $blogid)); | |
60 | - $n = 1; | |
61 | - while ($o = mysql_fetch_object($res)) { | |
62 | - $catid = intval($o->catid); | |
63 | - $nodeArray['cat'][$catid] = $n; | |
64 | -// $url = createBlogidLink($blogid, array('catid'=>$catid)); | |
65 | - $url = createCategoryLink($catid); | |
66 | -// $url = createBlogidLink($blogid, array("$CategoryKey"=>$catid)); | |
67 | - echo $objectId . ".add(" . $n . ",0,'" . htmlspecialchars($o->cname) . "','" . htmlspecialchars($url) . "','" . htmlspecialchars($o->cdesc) . "');\n"; | |
68 | - $catFilter[] = $catid; | |
69 | - $n++; | |
70 | - } | |
71 | - | |
72 | - global $manager; | |
73 | - if (!$manager->pluginInstalled('NP_MultipleCategories')) { | |
74 | - $mPlugin =& $manager->getPlugin('NP_MultipleCategories'); | |
75 | - $subrequest = $mPlugin->getRequestName(); | |
76 | - echo 'document.write(' . $objectId . ');'; | |
77 | - if ($itemid = intRequestVar('id')) { | |
78 | - $que = 'SELECT icat as result FROM %s WHERE inumber = %d'; | |
79 | - $catid = quickQuery(sprintf($que, sql_table('item'), $itemid)); | |
80 | - $catid = intval($catid); | |
81 | - $nodeId = 's' . $objectId . $nodeArray['cat'][$catid]; | |
82 | - echo "document.getElementById('" . htmlspecialchars($nodeId) . "').className = 'selectedNode';"; | |
83 | - } | |
84 | - return; | |
85 | - } | |
86 | - | |
87 | - if ($catFilter[1]) { | |
88 | - $catFilter = @join(', ', $catFilter); | |
89 | - $catFilter = ' IN (' . $catFilter . ')'; | |
90 | - } else { | |
91 | - $catFilter = '=' . $catFilter; | |
92 | - } | |
93 | - | |
94 | - $query = 'SELECT * FROM %s WHERE catid %s'; | |
95 | - $res = sql_query(sprintf($query, sql_table('plug_multiple_categories_sub'), $catFilter)); | |
96 | - while ($o = mysql_fetch_object($res)) { | |
97 | - $scatid = intval($o->scatid); | |
98 | - $nodeArray['subcat'][$scatid] = $n; | |
99 | - $n++; | |
100 | - } | |
101 | - $query = 'SELECT * FROM %s WHERE catid %s'; | |
102 | - $res = sql_query(sprintf($query, sql_table('plug_multiple_categories_sub'), $catFilter)); | |
103 | - while ($u = mysql_fetch_object($res)) { | |
104 | - $scatid = intval($u->scatid); | |
105 | - $parent_id = intval($u->parentid); | |
106 | - $cat_id = intval($u->catid); | |
107 | -// $url = createBlogidLink($blogid, array('catid'=>$u->catid, 'subcatid'=>$scatid)); | |
108 | - $url = createCategoryLink($u->catid, array($subrequest => $scatid)); | |
109 | -// $url = createBlogidLink($blogid, array("$CategoryKey"=>$u->catid, 'subcatid'=>$scatid)); | |
110 | - $scat_desc = $b->getCategoryDesc($catid); | |
111 | - $pnode = (!empty($parent_id)) ? $nodeArray['subcat'][$parent_id] : $nodeArray['cat'][$cat_id]; | |
112 | - echo $objectId . ".add(" . $nodeArray['subcat'][$scatid] . "," . $pnode . ",'" . htmlspecialchars($u->sname) . "','" . htmlspecialchars($url) . "','" . htmlspecialchars($u->sdesc) . "');\n"; | |
113 | - } | |
114 | - | |
115 | - echo "document.write(" . $objectId . ");\n"; | |
116 | - | |
117 | - | |
118 | - if ($sid = intRequestVar('sid')) { | |
119 | -// $sid = intRequestVar('sid'); | |
120 | - $nodeId = 's' . $objectId . $nodeArray['subcat'][$sid]; | |
121 | - echo "document.getElementById('" . $nodeId . "').className='urlselected';\n"; | |
122 | - echo $objectId . ".openTo(" . $nodeArray['subcat'][$sid] . ",true);\n"; | |
123 | - } elseif ($cid = intRequestVar('cid')) { | |
124 | -// $cid = intRequestVar('cid'); | |
125 | - $nodeId = 's' . $objectId . $nodeArray['cat'][$cid]; | |
126 | - echo "document.getElementById('" . $nodeId . "').className='urlselected';\n"; | |
127 | - echo $objectId . ".openTo(" . $nodeArray['cat'][$cid] . ",true);\n"; | |
128 | - } | |
129 | - | |
130 | - | |
131 | - | |
132 | - if ($itemid = intRequestVar('id')) { | |
133 | - $que = 'SELECT icat as result FROM %s WHERE inumber = %d'; | |
134 | - $catid = quickQuery($que, sql_table('item'), $itemid); | |
135 | - $catid = intva($catid); | |
136 | -// $catid = quickQuery('SELECT icat as result FROM ' . sql_table('item') . ' WHERE inumber = ' . $itemid); | |
137 | - $nodeId = 's' . $objectId.$nodeArray['cat'][$catid]; | |
138 | - echo "document.getElementById('" . $nodeId . "').className='selectedNode';\n"; | |
139 | - | |
140 | - //multi catid | |
141 | - $que = 'SELECT categories as result FROM %s WHERE item_id = %d'; | |
142 | - $catids = quickQuery(sprintf($que, sql_table('plug_multiple_categories'), $itemid)); | |
143 | - if ($catids) { | |
144 | - $catids = explode(',', $catids); | |
145 | - for ($i=0;$i<count($catids);$i++) { | |
146 | - $catidTemp = intval($catids[$i]); | |
147 | - if ($catidTemp != $catid) { | |
148 | - $nodeId = 's' . $objectId . $nodeArray['cat'][$catidTemp]; | |
149 | - echo "document.getElementById('" . $nodeId . "').className='selectedCatNode';\n"; | |
150 | - } | |
151 | - } | |
152 | - } | |
153 | - | |
154 | - //(multi) subcatid | |
155 | - $que = 'SELECT subcategories as result FROM %s WHERE item_id = %d'; | |
156 | - $scatids = quickQuery(sprintf($que, sql_table('plug_multiple_categories'), $itemid)); | |
157 | - if ($scatids) { | |
158 | - $scatids = explode(',', $scatids); | |
159 | - for ($i=0;$i<count($scatids);$i++) { | |
160 | - $scatid = intval($scatids[$i]); | |
161 | - $nodeId = 's' . $objectId . $nodeArray['subcat'][$scatid]; | |
162 | - echo "document.getElementById('" . $nodeId . "').className='selectedScatNode';\n"; | |
163 | - echo $objectId . ".openTo(" . $nodeArray['subcat'][$scatid] . ",true);\n"; | |
164 | - } | |
165 | - } | |
166 | - } | |
167 | - | |
168 | - | |
2 | +/** | |
3 | + * | |
4 | + * DATA creation script for dTree | |
5 | + * | |
6 | + */ | |
7 | + | |
8 | +global $CONF, $manager; | |
9 | + $strRel = '../../../'; | |
10 | + include($strRel . 'config.php'); | |
11 | + | |
12 | + $usePathInfo = ($CONF['URLMode'] == 'pathinfo'); | |
13 | + | |
14 | +// $objectId = requestVar('o'); | |
15 | + $objectId = 'tree' . preg_replace('|[^0-9a-f]|i', '', substr(requestVar('o'), 4)); | |
16 | + $blogid = intRequestVar('bid'); | |
17 | + if (empty($blogid)) $blogid = intval($CONF['DefaultBlog']); | |
18 | + $blogname = getBlogNameFromID($blogid); | |
19 | + | |
20 | + $b =& $manager->getBlog($blogid); | |
21 | + $blogurl = $b->getURL(); | |
22 | + if (!$blogurl) { | |
23 | + if($blog) { | |
24 | + $b_tmp =& $manager->getBlog($blogid); | |
25 | + $blogurl = $b_tmp->getURL(); | |
26 | + } | |
27 | + if (!$blogurl) { | |
28 | + $blogurl = $CONF['IndexURL']; | |
29 | + if (!$usePathInfo) { | |
30 | + if ($data['type'] == 'pageparser') { | |
31 | + $blogurl .= 'index.php'; | |
32 | + } else { | |
33 | + $blogurl = $CONF['Self']; | |
34 | + } | |
35 | + } | |
36 | + } | |
37 | + } | |
38 | + if ($usePathInfo) { | |
39 | + if (substr($blogurl, -1) == '/') { | |
40 | + $blogurl = substr($blogurl, 0, -1); | |
41 | + } | |
42 | + } | |
43 | + | |
44 | + $CONF['BlogURL'] = $blogurl; | |
45 | + $CONF['ItemURL'] = $blogurl; | |
46 | + $CONF['CategoryURL'] = $blogurl; | |
47 | + $CONF['ArchiveURL'] = $blogurl; | |
48 | + $CONF['ArchiveListURL'] = $blogurl; | |
49 | + $CONF['SearchURL'] = $blogurl; | |
50 | + | |
51 | + echo $objectId . "=new dTree('" . htmlspecialchars($objectId) . "');\n"; | |
52 | + | |
53 | + echo $objectId . ".add(0,-1,'" . htmlspecialchars($blogname) . "');\n"; | |
54 | + | |
55 | + $resq = 'SELECT * FROM %s WHERE cblog = %d'; | |
56 | + $res = sql_query(sprintf($resq, sql_table('category'), $blogid)); | |
57 | + $n = 1; | |
58 | + while ($o = mysql_fetch_object($res)) { | |
59 | + $catid = intval($o->catid); | |
60 | + $nodeArray['cat'][$catid] = $n; | |
61 | +// $url = createBlogidLink($blogid, array('catid'=>$catid)); | |
62 | + $url = createCategoryLink($catid); | |
63 | +// $url = createBlogidLink($blogid, array("$CategoryKey"=>$catid)); | |
64 | + $printData = $objectId | |
65 | + . ".add(" . $n | |
66 | + . ",0,'" | |
67 | + . htmlspecialchars($o->cname) . "','" | |
68 | + . htmlspecialchars($url) . "','" | |
69 | + . htmlspecialchars($o->cdesc) . "');\n"; | |
70 | + echo $printData; | |
71 | + $catFilter[] = $catid; | |
72 | + $n++; | |
73 | + } | |
74 | + | |
75 | + if (!$manager->pluginInstalled('NP_MultipleCategories')) { | |
76 | + echo 'document.write(' . $objectId . ');'; | |
77 | + if ($itemid = intRequestVar('id')) { | |
78 | + $que = 'SELECT icat as result FROM %s WHERE inumber = %d'; | |
79 | + $catid = quickQuery(sprintf($que, sql_table('item'), $itemid)); | |
80 | + $catid = intval($catid); | |
81 | + $nodeId = 's' . $objectId . $nodeArray['cat'][$catid]; | |
82 | + echo "document.getElementById('" . htmlspecialchars($nodeId) . "').className = 'selectedNode';"; | |
83 | + } | |
84 | + return; | |
85 | + } | |
86 | + | |
87 | + if ($catFilter[1]) { | |
88 | + $catFilter = @join(', ', $catFilter); | |
89 | + $catFilter = ' IN (' . $catFilter . ')'; | |
90 | + } else { | |
91 | + $catFilter = '=' . $catFilter; | |
92 | + } | |
93 | + | |
94 | + $query = 'SELECT * FROM %s WHERE catid %s ORDER BY scatid'; | |
95 | + $res = sql_query(sprintf($query, sql_table('plug_multiple_categories_sub'), $catFilter)); | |
96 | + while ($o = mysql_fetch_object($res)) { | |
97 | + $scatid = intval($o->scatid); | |
98 | + $nodeArray['subcat'][$scatid] = $n; | |
99 | + $n++; | |
100 | + } | |
101 | + $query = 'SELECT * FROM %s WHERE catid %s ORDER BY scatid'; | |
102 | + $res = sql_query(sprintf($query, sql_table('plug_multiple_categories_sub'), $catFilter)); | |
103 | + $mcategories =& $manager->getPlugin('NP_MultipleCategories'); | |
104 | + if (method_exists($mcategories, "getRequestName")) { | |
105 | + $subrequest = $mcategories->getRequestName(); | |
106 | + } else { | |
107 | + $subrequest = 'subcatid'; | |
108 | + } | |
109 | + | |
110 | + while ($u = mysql_fetch_object($res)) { | |
111 | + $scatid = intval($u->scatid); | |
112 | + $parent_id = intval($u->parentid); | |
113 | + $cat_id = intval($u->catid); | |
114 | +// $url = createBlogidLink($blogid, array('catid'=>$u->catid, 'subcatid'=>$scatid)); | |
115 | + $url = createCategoryLink($cat_id, array($subrequest => $scatid)); | |
116 | +// $url = createBlogidLink($blogid, array("$CategoryKey"=>$u->catid, 'subcatid'=>$scatid)); | |
117 | + | |
118 | + $pnode = (!empty($parent_id)) ? $nodeArray['subcat'][$parent_id] : $nodeArray['cat'][$cat_id]; | |
119 | + $printData = $objectId . ".add(" . $nodeArray['subcat'][$scatid] . "," | |
120 | + . $pnode . ",'" | |
121 | + . htmlspecialchars($u->sname) . "','" | |
122 | + . htmlspecialchars($url) . "','" | |
123 | + . htmlspecialchars($u->sdesc) . "');\n"; | |
124 | + echo $printData; | |
125 | + } | |
126 | + | |
127 | + echo "document.write(" . $objectId . ");\n"; | |
128 | + | |
129 | + | |
130 | + if ($sid = intRequestVar('sid')) { | |
131 | +// $sid = intRequestVar('sid'); | |
132 | + $nodeId = 's' . $objectId . $nodeArray['subcat'][$sid]; | |
133 | + echo "document.getElementById('" . $nodeId . "').className='urlselected';\n"; | |
134 | + echo $objectId . ".openTo(" . $nodeArray['subcat'][$sid] . ",true);\n"; | |
135 | + } elseif ($cid = intRequestVar('cid')) { | |
136 | +// $cid = intRequestVar('cid'); | |
137 | + $nodeId = 's' . $objectId . $nodeArray['cat'][$cid]; | |
138 | + echo "document.getElementById('" . $nodeId . "').className='urlselected';\n"; | |
139 | + echo $objectId . ".openTo(" . $nodeArray['cat'][$cid] . ",true);\n"; | |
140 | + } | |
141 | + | |
142 | + | |
143 | + | |
144 | + if ($itemid = intRequestVar('id')) { | |
145 | + $que = 'SELECT icat as result FROM %s WHERE inumber = %d'; | |
146 | + $catid = quickQuery($que, sql_table('item'), $itemid); | |
147 | + $catid = intva($catid); | |
148 | +// $catid = quickQuery('SELECT icat as result FROM ' . sql_table('item') . ' WHERE inumber = ' . $itemid); | |
149 | + $nodeId = 's' . $objectId.$nodeArray['cat'][$catid]; | |
150 | + echo "document.getElementById('" . $nodeId . "').className='selectedNode';\n"; | |
151 | + | |
152 | + //multi catid | |
153 | + $que = 'SELECT categories as result FROM %s WHERE item_id = %d'; | |
154 | + $catids = quickQuery(sprintf($que, sql_table('plug_multiple_categories'), $itemid)); | |
155 | + if ($catids) { | |
156 | + $catids = explode(',', $catids); | |
157 | + for ($i=0;$i<count($catids);$i++) { | |
158 | + $catidTemp = intval($catids[$i]); | |
159 | + if ($catidTemp != $catid) { | |
160 | + $nodeId = 's' . $objectId . $nodeArray['cat'][$catidTemp]; | |
161 | + echo "document.getElementById('" . $nodeId . "').className='selectedCatNode';\n"; | |
162 | + } | |
163 | + } | |
164 | + } | |
165 | + | |
166 | + //(multi) subcatid | |
167 | + $que = 'SELECT subcategories as result FROM %s WHERE item_id = %d'; | |
168 | + $scatids = quickQuery(sprintf($que, sql_table('plug_multiple_categories'), $itemid)); | |
169 | + if ($scatids) { | |
170 | + $scatids = explode(',', $scatids); | |
171 | + for ($i=0;$i<count($scatids);$i++) { | |
172 | + $scatid = intval($scatids[$i]); | |
173 | + $nodeId = 's' . $objectId . $nodeArray['subcat'][$scatid]; | |
174 | + echo "document.getElementById('" . $nodeId . "').className='selectedScatNode';\n"; | |
175 | + echo $objectId . ".openTo(" . $nodeArray['subcat'][$scatid] . ",true);\n"; | |
176 | + } | |
177 | + } | |
178 | + } | |
169 | 179 | ?> |
\ No newline at end of file |