• R/O
  • HTTP
  • SSH
  • HTTPS

nucleus-plugins: Commit

Nucleus CMS日本語版用プラグインのうち、日本語版開発者がサポートしているもの


Commit MetaInfo

Revisionace21f5c6fe368d2df7c6785451431d8fc56b333 (tree)
Time2006-11-04 18:22:52
Authorshizuki <shizuki@1ca2...>
Commitershizuki

Log Message

bug fix

git-svn-id: https://svn.sourceforge.jp/svnroot/nucleus-jp/plugin@472 1ca29b6e-896d-4ea0-84a5-967f57386b96

Change Summary

Incremental Difference

--- a/trunk/NP_Dtree/dtree/dtree.php
+++ b/trunk/NP_Dtree/dtree/dtree.php
@@ -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
--- a/trunk/NP_Dtree/dtree/dtreedata.php
+++ b/trunk/NP_Dtree/dtree/dtreedata.php
@@ -1,169 +1,179 @@
11 <?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+ }
169179 ?>
\ No newline at end of file
Show on old repository browser