• 24-10-2012, 05:02:29
    #1
    Wordpress siteye kategori ağacı eklentisi kurdum. Sorunsuz çalışıyor. Alt sayfası olan ana kategoriye tıklandığı zaman alt kategorileri açılıyor, alt kategorilere tıklanabiliyor. Ancak ana kategoriye link gelmiyor. Yani ana kategorimize eğer alt kategorisi varsa ana sayfadan link veremiyoruz. Alt kategorisi yoksa link verilebiliyor. Ana kategoriye de link gelmesi lazım. Java dan anlayan birisi aşağıdaki kodlara bakarsa sevinirm. Kod çok uzun, bir kısımını aldım. Koyu olan yere yakın bir yere ekleneceğini düşünüyorum.

    Çok karışık ve zor ama bilenler ilgilenirlerse çok sevinirim.

    Alıntı
    true}b+=this.node(c,d);if(c._ls){break}}}return b};wpdTree.prototype.node=function(a,c){var b='<div class="dtNode">'+this.indent(a,c);if(this.config.u seIcons){if(!a.icon){a.icon=(this.root.id==a.pid)? this.icon.root(a._hc)?this.icon.folder:this.icon .node)}if(!a.iconOpen){a.iconOpen=(a._hc)?this.ico n.folderOpen:this.icon.node}if(this.root.id!=a.pid ){b+='<img id="i'+this._objName+c+'" src="'+((a._io)?a.iconOpen:a.icon)+'" alt="" />'}}if(this.root.id!=a.pid){if(a.url){b+='<a id="s'+this._objName+c+'" class="'+((this.config.useSelection)?((a._is?"node Sel":"node")):"node")+'" href="'+a.url+'"';if(a.title){b+=' title="'+a.title+'"'}if(a.target){b+=' target="'+a.target+'"'}if(this.config.useStatusTex t){b+=" onmouseover=\"window.status='"+a.name+"';return true;\" onmouseout=\"window.status='';return true;\" "}if(this.config.useSelection&&((a._hc&&this.confi g.folderLinks)||!a._hc)){b+=' onclick="javascript: '+this._objName+".s("+c+');"'}b+=">"}else{if((!thi s.config.folderLinks||!a.url)&&a._hc&&a.pid!=this. root.id){b+='<a href="javascript: '+this._objName+".o("+c+');"';if(true||a.title){b+ =' title="'+a.title+'"'}b+=' class="node">'}}b+=a.name;if(a.url||((!this.config .folderLinks||!a.url)&&a._hc)){b+="</a>"}}if(a.rsspath){b+=a.rsspath}b+=" </div>";if(a._hc){b+='<div id="d'+this._objName+c+'" class="clip" style="display:'+((this.root.id==a.pid||a._io)?"bl ock":"none")+';">';b+=this.adddtNode(a);b+="</div>"}this.aIndent.pop();return b};wpdTree.prototype.indent=function(a,c){var b="";if(this.root.id!=a.pid){for(var d=0;d<this.aIndent.length;d++){b+='<img src="'+((this.aIndent[d]==1&&this.config.useLines)?this.icon.line:this.ico n.empty)+'" alt="" />'}(a._ls)?this.aIndent.push(0):this.aIndent.push( 1);if(a._hc){b+='<a href="javascript: '+this._objName+".o("+c+');"><img id="j'+this._objName+c+'" src="';if(!this.config.useLines){b+=(a._io)?this.i con.nlMinus:this.icon.nlPlus}else{b+=((a._io)?((a. _ls&&this.config.useLines)?this.icon.minusBottom:t his.icon.minus)(a._ls&&this.config.useLines)?thi s.icon.plusBottom:this
  • 26-10-2012, 01:46:29
    #2
    Üyeliği durduruldu
    başlıkta java demişsin halbuseki javascript olucak okuyan arkadaşlarda yanılıyordur büyük ihtimal çüknü java konusu burası değil (:

    önce bir test yap o kalın işaretlediğin yeri normal elle yazı yaz sorun ordamı diye sonra sorun oradaysa çözülür...
  • 27-10-2012, 00:31:46
    #3
    Evet başlığı eksik yazmışım, ama değiştirilmiyor. Elle yazı yazı demenizden birşey anlamadım, daha doğrusu javascriptten hiç birşey anlamıyorum. Sorunu eklediğim resim üzerinden anlatayım. Resimde koyu işaretli kategorinin üzerine tıklayınca alt kategoriler açılıyor. Ana kategoriye link vermiyor yani. Açılan alt kategorilere link veriyor,

    Benim yapmak istediğim Ana kategoriye tıklanınca hem alt kategoriler açılsın hem de ana kategori linkine gidilmiş olsun. Bu kategorileme sisteminde ana kategoriye ziyaretçi hiç gönderilemeyecek, ana kategoride belki bu yüzden arama sıralamalarına giremeyecek. Bu yüzden bu şekilde yapmak istiyorum. Kodda koyu olarak işaretlenmiş kodlara yapılacak bir düzenlemeyle çözüleceğini düşünüyorum.

    Çözüm için yardımcı olanlara çok teşekkür...

    Kodlarin hepsİnİ eklİyorum.


    function dtNode(e,g,b,c,j,h,a){this.id=e;this.pid=g;this.name=b;this.url=c;this.title=j;this.rsspath=a;var i,d,f;this.target=h;this.icon=i;this.iconOpen=d;this._io=f||false;this._is=false;this._ls=false;this._hc=false;this._ai=0;this._p}function wpdTree(c,b,a){this.config={target:null,folderLinks:false,useSelection:false,useCookies:true,useLines:true,useIcons:false,useStatusText:false,closeSameLevel:false,inOrder:false};this.icon={root:WPdTreeSettings.imgurl+"dtree-img/empty.gif",folder:WPdTreeSettings.imgurl+"dtree-img/folder.gif",folderOpen:WPdTreeSettings.imgurl+"dtree-img/folderopen.gif",node:WPdTreeSettings.imgurl+"dtree-img/page.gif",empty:WPdTreeSettings.imgurl+"dtree-img/empty.gif",line:WPdTreeSettings.imgurl+"dtree-img/line.gif",join:WPdTreeSettings.imgurl+"dtree-img/join.gif",joinBottom:WPdTreeSettings.imgurl+"dtree-img/joinbottom.gif",plus:WPdTreeSettings.imgurl+"dtree-img/plus.gif",plusBottom:WPdTreeSettings.imgurl+"dtree-img/plusbottom.gif",minus:WPdTreeSettings.imgurl+"dtree-img/minus.gif",minusBottom:WPdTreeSettings.imgurl+"dtree-img/minusbottom.gif",nlPlus:WPdTreeSettings.imgurl+"dtree-img/nolines_plus.gif",nlMinus:WPdTreeSettings.imgurl+"dtree-img/nolines_minus.gif"};this._url=b;this._truncate=a;this._objName=c;this.adtNodes=[];this.aIndent=[];this.root=new dtNode("root");this.selecteddtNode=null;this.selectedFound=false;this.completed=false}wpdTree.prototype.a=function(h,b,d,g,f,a,e){if(e!=""){e="<a class='dtree-rss' href='"+this._url+e+"' title='Feed for "+d+"'></a>"}f+="";var c=f;if(!f.indexOf("http://")==0){c=this._url+f}if(!g){g=d}if(this._truncate>0){d=this.truncate(d,this._truncate)}this.adtNodes[this.adtNodes.length]=new dtNode(h,b,d,c,g,a,e)};wpdTree.prototype.truncate=function(c,b){var b=b||16;var a="...";if(c.length>b){return c.slice(0,b-a.length)+a}return c};wpdTree.prototype.openAll=function(){this.oAll(true)};wpdTree.prototype.closeAll=function(){this.oAll(false)};wpdTree.prototype.toString=function(){var a=this._objName.substr(0,3);var b='<div class="dtree_'+a+'" id="dtree_'+this._objName+'">\n';if(document.getElementById){if(this.config.useCookies){this.selecteddtNode=this.getSelected()}b+=this.adddtNode(this.root)}else{b+="Browser not supported."}b+="</div>";if(!this.selectedFound){this.selecteddtNode=null}this.completed=true;return b};wpdTree.prototype.adddtNode=function(a){var b="";var d=0;if(this.config.inOrder){d=a._ai}for(d;d<this.adtNodes.length;d++){if(this.adtNodes[d].pid==a.id){var c=this.adtNodes[d];c._p=a;c._ai=d;this.setCS(c);if(!c.target&&this.config.target){c.target=this.config.target}if(c._hc&&!c._io&&this.config.useCookies){c._io=this.isOpen(c.id)}if(!this.config.folderLinks&&c._hc){c.url=null}if(this.config.useSelection&&c.id==this.selecteddtNode&&!this.selectedFound){c._is=true;this.selecteddtNode=d;this.selectedFound=true}b+=this.node(c,d);if(c._ls){break}}}return b};wpdTree.prototype.node=function(a,c){var b='<div class="dtNode">'+this.indent(a,c);if(this.config.useIcons){if(!a.icon){a.icon=(this.root.id==a.pid)?this.icon.root:((a._hc)?this.icon.folder:this.icon.node)}if(!a.iconOpen){a.iconOpen=(a._hc)?this.icon.folderOpen:this.icon.node}if(this.root.id!=a.pid){b+='<img id="i'+this._objName+c+'" src="'+((a._io)?a.iconOpen:a.icon)+'" alt="" />'}}if(this.root.id!=a.pid){if(a.url){b+='<a id="s'+this._objName+c+'" class="'+((this.config.useSelection)?((a._is?"nodeSel":"node")):"node")+'" href="'+a.url+'"';if(a.title){b+=' title="'+a.title+'"'}if(a.target){b+=' target="'+a.target+'"'}if(this.config.useStatusText){b+=" onmouseover=\"window.status='"+a.name+"';return true;\" onmouseout=\"window.status='';return true;\" "}if(this.config.useSelection&&((a._hc&&this.config.folderLinks)||!a._hc)){b+=' onclick="javascript: '+this._objName+".s("+c+');"'}b+=">"}else{if((!this.config.folderLinks||!a.url)&&a._hc&&a.pid!=this.root.id){b+='<a href="javascript: '+this._objName+".o("+c+');"';if(true||a.title){b+=' title="'+a.title+'"'}b+=' class="node">'}}b+=a.name;if(a.url||((!this.config.folderLinks||!a.url)&&a._hc)){b+="</a>"}}if(a.rsspath){b+=a.rsspath}b+=" </div>";if(a._hc){b+='<div id="d'+this._objName+c+'" class="clip" style="display:'+((this.root.id==a.pid||a._io)?"block":"none")+';">';b+=this.adddtNode(a);b+="</div>"}this.aIndent.pop();return b};wpdTree.prototype.indent=function(a,c){var b="";if(this.root.id!=a.pid){for(var d=0;d<this.aIndent.length;d++){b+='<img src="'+((this.aIndent[d]==1&&this.config.useLines)?this.icon.line:this.icon.empty)+'" alt="" />'}(a._ls)?this.aIndent.push(0):this.aIndent.push(1);if(a._hc){b+='<a href="javascript: '+this._objName+".o("+c+');"><img id="j'+this._objName+c+'" src="';if(!this.config.useLines){b+=(a._io)?this.icon.nlMinus:this.icon.nlPlus}else{b+=((a._io)?((a._ls&&this.config.useLines)?this.icon.minusBottom:this.icon.minus):((a._ls&&this.config.useLines)?this.icon.plusBottom:this.icon.plus))}b+='" alt="" /></a>'}else{b+='<img src="'+((this.config.useLines)?((a._ls)?this.icon.joinBottom:this.icon.join):this.icon.empty)+'" alt="" />'}}return b};wpdTree.prototype.setCS=function(a){var b;for(var c=0;c<this.adtNodes.length;c++){if(this.adtNodes[c].pid==a.id){a._hc=true}if(this.adtNodes[c].pid==a.pid){b=this.adtNodes[c].id}}if(b==a.id){a._ls=true}};wpdTree.prototype.getSelected=function(){var a=this.getCookie("cs"+this._objName);return(a)?a:null};wpdTree.prototype.s=function(b){if(!this.config.useSelection){return}var a=this.adtNodes[b];if(a._hc&&!this.config.folderLinks){return}if(this.selecteddtNode!=b){if(this.selecteddtNode||this.selecteddtNode==0){eOld=document.getElementById("s"+this._objName+this.selecteddtNode);if(eOld){eOld.className="node"}}eNew=document.getElementById("s"+this._objName+b);if(eNew){eNew.className="nodeSel"}this.selecteddtNode=b;if(this.config.useCookies){this.setCookie("cs"+this._objName,a.id)}}};wpdTree.prototype.o=function(b){var a=this.adtNodes[b];this.nodeStatus(!a._io,b,a._ls);a._io=!a._io;if(this.config.closeSameLevel){this.closeLevel(a)}if(this.config.useCookies){this.updateCookie()}};wpdTree.prototype.oAll=function(a){for(var b=0;b<this.adtNodes.length;b++){if(this.adtNodes[b]._hc&&this.adtNodes[b].pid!=this.root.id){if(this.adtNodes[b]._io!=a){this.nodeStatus(a,b,this.adtNodes[b]._ls)}this.adtNodes[b]._io=a}}if(this.config.useCookies){this.updateCookie()}};wpdTree.prototype.openTo=function(b,a,c){if(!c){for(var e=0;e<this.adtNodes.length;e++){if(this.adtNodes[e].id==b){b=e;break}}}var d=this.adtNodes[b];if(d.pid==this.root.id||!d._p){return}d._io=true;d._is=a;if(this.completed&&d._hc){this.nodeStatus(true,d._ai,d._ls)}if(this.completed&&a){this.s(d._ai)}else{if(a){this._sn=d._ai}}this.openTo(d._p._ai,false,true)};wpdTree.prototype.closeLevel=function(a){for(var b=0;b<this.adtNodes.length;b++){if(this.adtNodes[b].pid==a.pid&&this.adtNodes[b].id!=a.id&&this.adtNodes[b]._hc){this.nodeStatus(false,b,this.adtNodes[b]._ls);this.adtNodes[b]._io=false;this.closeAllChildren(this.adtNodes[b])}}};wpdTree.prototype.closeAllChildren=function(a){for(var b=0;b<this.adtNodes.length;b++){if(this.adtNodes[b].pid==a.id&&this.adtNodes[b]._hc){if(this.adtNodes[b]._io){this.nodeStatus(false,b,this.adtNodes[b]._ls)}this.adtNodes[b]._io=false;this.closeAllChildren(this.adtNodes[b])}}};wpdTree.prototype.nodeStatus=function(a,c,b){eDiv=document.getElementById("d"+this._objName+c);eJoin=document.getElementById("j"+this._objName+c);if(this.config.useIcons){eIcon=document.getElementById("i"+this._objName+c);eIcon.src=(a)?this.adtNodes[c].iconOpen:this.adtNodes[c].icon}eJoin.src=(this.config.useLines)?((a)?((b)?this.icon.minusBottom:this.icon.minus):((b)?this.icon.plusBottom:this.icon.plus)):((a)?this.icon.nlMinus:this.icon.nlPlus);if(WPdTreeSettings.animate==="1"&&typeof jQuery=="function"){(a)?jQuery(eDiv).slideDown(parseInt(WPdTreeSettings.duration)):jQuery(eDiv).slideUp(parseInt(WPdTreeSettings.duration))}else{eDiv.style.display=(a)?"block":"none"}};wpdTree.prototype.clearCookie=function(){var a=new Date();var b=new Date(a.getTime()-1000*60*60*24);this.setCookie("co"+this._objName,"cookieValue",b);this.setCookie("cs"+this._objName,"cookieValue",b)};wpdTree.prototype.setCookie=function(f,e,a,d,b,c){document.cookie=escape(f)+"="+escape(e)+(a?"; expires="+a.toGMTString():"")+(d?"; path="+d:"; path=/")+(b?"; domain="+b:"")+(c?"; secure":"")};wpdTree.prototype.getCookie=function(e){var d="";var b=document.cookie.indexOf(escape(e)+"=");if(b!=-1){var c=b+(escape(e)+"=").length;var a=document.cookie.indexOf(";",c);if(a!=-1){d=unescape(document.cookie.substring(c,a))}else{d=unescape(document.cookie.substring(c))}}return(d)};wpdTree.prototype.updateCookie=function(){var a="";for(var b=0;b<this.adtNodes.length;b++){if(this.adtNodes[b]._io&&this.adtNodes[b].pid!=this.root.id){if(a){a+="."}a+=this.adtNodes[b].id}}this.setCookie("co"+this._objName,a)};wpdTree.prototype.isOpen=function(c){var b=this.getCookie("co"+this._objName).split(".");for(var a=0;a<b.length;a++){if(b[a]==c){return true}}return false};if(!Array.prototype.push){Array.prototype.push=function array_push(){for(var a=0;a<arguments.length;a++){this[this.length]=arguments[a]}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}};
  • 27-10-2012, 00:33:13
    #4
    Çalışan siteyi gösterir misiniz? Böyle yığınla yazılmış kodlardan hiç birşey anlamaz kimse. Bi' kodları CODE tagları arasına alın, bi' de siteyi verin de biz de bakalım şu kodlara...
  • 27-10-2012, 00:55:56
    #5
    http://dizikeyfi.info/poem/poems/love-poems

    bu adres üzerinde çalışıyorum.
  • 27-10-2012, 01:19:11
    #6
    wp-dtree.js dosyasında şu kodları bulun:

    if(this.root.id != node.pid){
    		if(node.url){
    			str += '<a id="s' + this._objName + 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._objName + '.s(' + nodeId + ');"';
    			str += '>';
    		}
    		else if((!this.config.folderLinks || !node.url) && node._hc && node.pid != this.root.id){
    			str += '<a href="javascript: ' + this._objName + '.o(' + nodeId + ');"'
    			if(true || node.title) str += ' title="' + node.title + '"';
    			str += ' class="node">';
    		}
    		str += node.name;	
    		if(node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>';	
    	}
    Şununla değişin:

    	if(this.root.id != node.pid){
    		
    		str += '<a id="s' + this._objName + 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._objName + '.s(' + nodeId + ');"';
    		str += '>';
    		
    		str += node.name;	
    		if(node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>';	
    	}

    Ancak verdiğim kodlar wp-dtree.js dosyasında olduğu gibi, wp-dtree.min.js uzantılı dosyada da değişmesi gerek. Ben min dosyası çok karışık olduğu için açık olan dosyada yapmanız gereken değişikliği söyledim. min dosyasında aynı işlemleri yapabilirsiniz sanırım.
  • 27-10-2012, 01:30:19
    #7
    wp-dtree.js dosyasındaki değişikliği yaptım adam wp-dtree.min.js dosyasında o kodları bulamadığım için değiştiremedim.