sajjadnajafi 568 ارسال شده در آبان 91 گزارش بازنشر ارسال شده در آبان 91 سلام دوستانمن برای سایت فروشگاهیم(بر پایه سیستم فروشگاهی سایت هموار) بر طبق زیر دسته بندی درختی ساختم: <div class="widget"> <h3>دسته ها</h3><style>.treeview ul{margin: 0px;padding: 0;}.treeview li{background: white url(http://s3.picofile.com/file/7549042254/list.gif) no-repeat 0px 3px;list-style-type: none;padding-left: 32px;margin-bottom: 3px;}.treeview li.submenu{background: white url(http://s3.picofile.com/file/7549039672/closed.gif) no-repeat 0px 3px;cursor: hand !important;cursor: pointer !important;}.treeview li.submenu ul{display: none;}.treeview .submenu ul li{cursor: default;}</style><script type="text/javascript" >var persisteduls=new Object()var ddtreemenu=new Object()ddtreemenu.closefolder="http://s3.picofile.com/file/7549039672/closed.gif" //set image path to "closed" folder imageddtreemenu.openfolder="http://s1.picofile.com/file/7549039351/open.gif" //set image path to "open" folder image//////////No need to edit beyond here///////////////////////////ddtreemenu.createTree=function(treeid, enablepersist, persistdays){var ultags=document.getElementById(treeid).getElementsByTagName("ul")if (typeof persisteduls[treeid]=="undefined")persisteduls[treeid]=(enablepersist==true && ddtreemenu.getCookie(treeid)!="")? ddtreemenu.getCookie(treeid).split(",") : ""for (var i=0; i<ultags.length; i++)ddtreemenu.buildSubTree(treeid, ultags, i)if (enablepersist==true){ //if enable persist featurevar durationdays=(typeof persistdays=="undefined")? 1 : parseInt(persistdays)ddtreemenu.dotask(window, function(){ddtreemenu.rememberstate(treeid, durationdays)}, "unload") //save opened UL indexes on body unload}}ddtreemenu.buildSubTree=function(treeid, ulelement, index){ulelement.parentNode.className="submenu"if (typeof persisteduls[treeid]=="object"){ //if cookie exists (persisteduls[treeid] is an array versus "" string)if (ddtreemenu.searcharray(persisteduls[treeid], index)){ulelement.setAttribute("rel", "open")ulelement.style.display="block"ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"}elseulelement.setAttribute("rel", "closed")} //end cookie persist codeelse if (ulelement.getAttribute("rel")==null || ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel attribute explicted added by userulelement.setAttribute("rel", "closed")else if (ulelement.getAttribute("rel")=="open") //else if no cookie and this UL has an explicit rel value of "open"ddtreemenu.expandSubTree(treeid, ulelement) //expand this UL plus all parent ULs (so the most inner UL is revealed!)ulelement.parentNode.onclick=function(e){var submenu=this.getElementsByTagName("ul")[0]if (submenu.getAttribute("rel")=="closed"){submenu.style.display="block"submenu.setAttribute("rel", "open")ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"}else if (submenu.getAttribute("rel")=="open"){submenu.style.display="none"submenu.setAttribute("rel", "closed")ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.closefolder+")"}ddtreemenu.preventpropagate(e)}ulelement.onclick=function(e){ddtreemenu.preventpropagate(e)}}ddtreemenu.expandSubTree=function(treeid, ulelement){ //expand a UL element and any of its parent ULsvar rootnode=document.getElementById(treeid)var currentnode=ulelementcurrentnode.style.display="block"currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"while (currentnode!=rootnode){if (currentnode.tagName=="UL"){ //if parent node is a UL, expand it toocurrentnode.style.display="block"currentnode.setAttribute("rel", "open") //indicate it's opencurrentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"}currentnode=currentnode.parentNode}}ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL elementsvar ultags=document.getElementById(treeid).getElementsByTagName("ul")for (var i=0; i<ultags.length; i++){ultags.style.display=(action=="expand")? "block" : "none"var relvalue=(action=="expand")? "open" : "closed"ultags.setAttribute("rel", relvalue)ultags.parentNode.style.backgroundImage=(action=="expand")? "url("+ddtreemenu.openfolder+")" : "url("+ddtreemenu.closefolder+")"}}ddtreemenu.rememberstate=function(treeid, durationdays){ //store index of opened ULs relative to other ULs in Tree into cookievar ultags=document.getElementById(treeid).getElementsByTagName("ul")var openuls=new Array()for (var i=0; i<ultags.length; i++){if (ultags.getAttribute("rel")=="open")openuls[openuls.length]=i //save the index of the opened UL (relative to the entire list of ULs) as an array element}if (openuls.length==0) //if there are no opened ULs to save/persistopenuls[0]="none open" //set array value to string to simply indicate all ULs should persist with state being closedddtreemenu.setCookie(treeid, openuls.join(","), durationdays) //populate cookie with value treeid=1,2,3 etc (where 1,2... are the indexes of the opened ULs)}////A few utility functions below//////////////////////ddtreemenu.getCookie=function(Name){ //get cookie valuevar re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pairif (document.cookie.match(re)) //if cookie foundreturn document.cookie.match(re)[0].split("=")[1] //return its valuereturn ""}ddtreemenu.setCookie=function(name, value, days){ //set cookei valuevar expireDate = new Date()//set "expstring" to either future or past date, to set or delete cookie, respectivelyvar expstring=expireDate.setDate(expireDate.getDate()+parseInt(days))document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";}ddtreemenu.searcharray=function(thearray, value){ //searches an array for the entered value. If found, delete value from arrayvar isfound=falsefor (var i=0; i<thearray.length; i++){if (thearray==value){isfound=truethearray.shift() //delete this element from array for efficiency sakebreak}}return isfound}ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling upwardsif (typeof e!="undefined")e.stopPropagation()elseevent.cancelBubble=true}ddtreemenu.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)var tasktype=(window.addEventListener)? tasktype : "on"+tasktypeif (target.addEventListener)target.addEventListener(tasktype, functionref, false)else if (target.attachEvent)target.attachEvent(tasktype, functionref)}</script><a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">نمایش تمام زیر دسته ها +</a> | <a href="javascript:ddtreemenu.flatten('treemenu1', 'contact')">- بستن تمام زیردسته ها</a><p></p><ul id="treemenu1" class="treeview"><Category><li><a href="<-CategoryUrl->" title="<-CategoryName->" ><-CategoryName-></a><SubCategory><ul><li><a href="<-SubCategoryUrl->" title="<-SubCategoryName->" ><-SubCategoryName-></a></li></ul></SubCategory></li></Category></ul><script type="text/javascript">//ddtreemenu.createTree(treeid, enablepersist, opt_persist_in_days (default is 1))ddtreemenu.createTree("treemenu1", true)ddtreemenu.createTree("treemenu2", false)</script> </div> دسته ها به خوبی و زیبایی ساخته شدن اما مشکلی که هست اینه که :وقتی روی عکس پوشه کنار هر دسته کلیک میکنی باید تمام زیردسته اون دسته نمایش داده بشه اما در اینجا فقط اولین زیردسته از هر دسته نشون داده میشه (جالب اینجاست که وقتی روی "نمایش تمام زیر دسته ها" کلیک میکنی به درستی تمام زیر دسته ها رو باز میکنه! اما وقتی برای هر دسته میخوای زیر دستشو ببینی فقط اولین زیر دسته نمایش داده میشه!!)دوستان اگر می تونید راهنمایی کنید.. سپاس نقل قول لینک به ارسال
PRGAME 175 ارسال شده در آبان 91 گزارش بازنشر ارسال شده در آبان 91 (ویرایش شده) چرا اینقدر خودتون رو اذیت کردین؟!اگر برای دسته بندی درختی میخاهید از این کد استفاده کنید و بعدش به ul و li استایل بدین :<?php wp_list_categories("title_li=");?>بعدش هم برای این مشکلی که شما داری باید به درستی از java script استفاده کنید. ویرایش شده آبان 91 توسط PRGAME 1 نقل قول لینک به ارسال
sajjadnajafi 568 ارسال شده در آبان 91 مالک گزارش بازنشر ارسال شده در آبان 91 (ویرایش شده) دوست من ، همونطور که گفتم سیستمی که استفاده میکنم وردپرس نیست، سیستم همواره (بر پایه aspx نه php ) و کد های دسته و زیردسته به شکل زیر اند:بلاک <Category> این بلاک به منظور نمایش شاخه های محصولات فروشگاه می باشد.این بلاک توسط کد <Category> شروع و توسط کد </Category> پایان می یابد.کدهای که تنها در این بلاک قابل استفاده هستند به شرح زیر میباشد.آدرس اینترنتی شاخه اصلی <-CategoryUrl->نام شاخه اصلی <-CategoryName-> بلاک <SubCategory> این بلاک به منظور نمایش زیر شاخه های یک شاخه اصلی از محصولات فروشگاه می باشد و تنها در بلاک <Category> قابل استفاده است.این بلاک توسط کد <SubCategory> شروع و توسط کد </SubCategory> پایان می یابد.کدهای که تنها در این بلاک قابل استفاده هستند به شرح زیر میباشد.آدرس اینترنتی زیر شاخه <-SubCategoryUrl->نام زیر شاخه <-SubCategoryName-> ویرایش شده آبان 91 توسط sajjadnajafi 1 نقل قول لینک به ارسال
Morteza 34190 ارسال شده در آبان 91 گزارش بازنشر ارسال شده در آبان 91 یک نمونه از خروجی html رو اینجا قرار بدید. 1 نقل قول لینک به ارسال
sajjadnajafi 568 ارسال شده در آبان 91 مالک گزارش بازنشر ارسال شده در آبان 91 مرتضی جان ، روی سایتم آنلاین ببین: www.bazar2web.ir نقل قول لینک به ارسال
sajjadnajafi 568 ارسال شده در آبان 91 مالک گزارش بازنشر ارسال شده در آبان 91 مرتضی جان نگاه کردی نقل قول لینک به ارسال
Morteza 34190 ارسال شده در آبان 91 گزارش بازنشر ارسال شده در آبان 91 نمیدونم چرا پست جدید رو الان آورد!من خروجی html رو بررسی کردم. خروجی درستی جنریت نمیکنه.شما قابلیت ویرایش خروجی رو دارید؟چون الان برای هر زیر دسته اومده li ها رو توی ul قرار داده.که بهتره هر li بدون زیر دسته دیگه توی ul نباشه.اگر این بخش ویرایش بشه میشه با جی کوئری کار رو ساده تر انجام داد. 1 نقل قول لینک به ارسال
sajjadnajafi 568 ارسال شده در آبان 91 مالک گزارش بازنشر ارسال شده در آبان 91 خروجی رو نمیشه دستکاری کرد (منظور این که مثل وردپرس یا هر سیستمی با کد های اختصاصی سیستم دسته ها و زیر دسته ها ساخته میشن)اما میشه کد های قالب رو مثل کدی که در پست اول نوشتم ویرایش کرد.که بهتره هر li بدون زیر دسته دیگه توی ul نباشه.دقیقا نفهمیدم منظورتون چیه اما فکر کنم باید کد رو به این تغییر بدم! درسته؟ :<ul id="treemenu1" class="treeview"><Category><li><a href="<-CategoryUrl->" title="<-CategoryName->" ><-CategoryName-></a><SubCategory><li><li><a href="<-SubCategoryUrl->" title="<-SubCategoryName->" ><-SubCategoryName-></a></li></li></SubCategory></li></Category></ul> نقل قول لینک به ارسال
sajjadnajafi 568 ارسال شده در آبان 91 مالک گزارش بازنشر ارسال شده در آبان 91 کد بالا رو امتحان کردم : نتیجه این شد که دسته ها و زیر دسته ها همه بدون هیچ وجه تمایزی زیر هم قرار گرفتند. نقل قول لینک به ارسال
Morteza 34190 ارسال شده در آبان 91 گزارش بازنشر ارسال شده در آبان 91 منظورم به این شکله:<ul id="treemenu1" class="treeview"><Category> <li><a href="<-CategoryUrl->" title="<-CategoryName->" ><-CategoryName-></a> <SubCategory> <li><a href="<-SubCategoryUrl->" title="<-SubCategoryName->" ><-SubCategoryName-></a></li> </SubCategory> </li></Category></ul> 1 نقل قول لینک به ارسال
sajjadnajafi 568 ارسال شده در آبان 91 مالک گزارش بازنشر ارسال شده در آبان 91 منظورم به این شکله:<ul id="treemenu1" class="treeview"><Category> <li><a href="<-CategoryUrl->" title="<-CategoryName->" ><-CategoryName-></a> <SubCategory> <li><a href="<-SubCategoryUrl->" title="<-SubCategoryName->" ><-SubCategoryName-></a></li> </SubCategory> </li></Category></ul>بله، همونطور که گفتم، این باعث میشه که دسته ها و زیر دسته ها با هم فرقی نداشته باشن و کلا دسته بندی درختی از بین میره. ( روی اون کد جی کوری اولی که موتور سازنده دسته بندی درختیه اسراری نیست، اون کد رو توی جستجو در اینترنت پیدا کردم. اگر کد دیگری برای درست کردن دسته بندی درختی خاطرتون هست بفرمایید.) نقل قول لینک به ارسال
sajjadnajafi 568 ارسال شده در آبان 91 مالک گزارش بازنشر ارسال شده در آبان 91 از همه دوستان عزیز تشکر میکنم که کمک کردن تا مشکل رو حل کنیم .. مشکلو حلش کردم حالا چطوری؟ چند کد دیگرو هم امتحان کردم و دیدم در همه کد ها همون مشکل اولی وجود داره فهمیدم مشکل از کد دسته بندیه و تگ SubCategory رو بردم داخل تگ ul و با همین کار ، مشکل حل شد! همونطور که در عنوان تاپیک گفتم مشکل کوچیکی بود! باز هم از همه دوستانی که برای حل این مشکل وقت گذاشتن ، مخصوصا مرتضی جان عزیز تشکر میکنم. موفق باشید! 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .