12 پست در این موضوع قرار دارد

سلام دوستان

من برای سایت فروشگاهیم(بر پایه سیستم فروشگاهی سایت هموار) بر طبق زیر دسته بندی درختی ساختم:

<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 image

ddtreemenu.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 feature

var 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+")"

}

else

ulelement.setAttribute("rel", "closed")

} //end cookie persist code

else if (ulelement.getAttribute("rel")==null || ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel attribute explicted added by user

ulelement.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 ULs

var rootnode=document.getElementById(treeid)

var currentnode=ulelement

currentnode.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 too

currentnode.style.display="block"

currentnode.setAttribute("rel", "open") //indicate it's open

currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"

}

currentnode=currentnode.parentNode

}

}

ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL elements

var 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 cookie

var 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/persist

openuls[0]="none open" //set array value to string to simply indicate all ULs should persist with state being closed

ddtreemenu.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 value

var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair

if (document.cookie.match(re)) //if cookie found

return document.cookie.match(re)[0].split("=")[1] //return its value

return ""

}

ddtreemenu.setCookie=function(name, value, days){ //set cookei value

var expireDate = new Date()

//set "expstring" to either future or past date, to set or delete cookie, respectively

var 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 array

var isfound=false

for (var i=0; i<thearray.length; i++){

if (thearray==value){

isfound=true

thearray.shift() //delete this element from array for efficiency sake

break

}

}

return isfound

}

ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling upwards

if (typeof e!="undefined")

e.stopPropagation()

else

event.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"+tasktype

if (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>

دسته ها به خوبی و زیبایی ساخته شدن اما مشکلی که هست اینه که :

وقتی روی عکس پوشه کنار هر دسته کلیک میکنی باید تمام زیردسته اون دسته نمایش داده بشه اما در اینجا فقط اولین زیردسته از هر دسته نشون داده میشه (جالب اینجاست که وقتی روی "نمایش تمام زیر دسته ها" کلیک میکنی به درستی تمام زیر دسته ها رو باز میکنه! اما وقتی برای هر دسته میخوای زیر دستشو ببینی فقط اولین زیر دسته نمایش داده میشه!!)

دوستان اگر می تونید راهنمایی کنید.. سپاس

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

چرا اینقدر خودتون رو اذیت کردین؟!

اگر برای دسته بندی درختی میخاهید از این کد استفاده کنید و بعدش به ul و li استایل بدین :


<?php wp_list_categories("title_li=");?>

بعدش هم برای این مشکلی که شما داری باید به درستی از java script استفاده کنید.

ویرایش شده در توسط PRGAME
1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

دوست من ، همونطور که گفتم سیستمی که استفاده میکنم وردپرس نیست، سیستم همواره (بر پایه aspx نه php ) و کد های دسته و زیردسته به شکل زیر اند:

بلاک <Category>

این بلاک به منظور نمایش شاخه های محصولات فروشگاه می باشد.

این بلاک توسط کد <Category> شروع و توسط کد </Category> پایان می یابد.کدهای که تنها در این بلاک قابل استفاده هستند به شرح زیر میباشد.

آدرس اینترنتی شاخه اصلی <-CategoryUrl->

نام شاخه اصلی <-CategoryName->

بلاک <SubCategory>

این بلاک به منظور نمایش زیر شاخه های یک شاخه اصلی از محصولات فروشگاه می باشد و تنها در بلاک <Category> قابل استفاده است.

این بلاک توسط کد <SubCategory> شروع و توسط کد </SubCategory> پایان می یابد.کدهای که تنها در این بلاک قابل استفاده هستند به شرح زیر میباشد.

آدرس اینترنتی زیر شاخه <-SubCategoryUrl->

نام زیر شاخه <-SubCategoryName->

ویرایش شده در توسط sajjadnajafi
1

به اشتراک گذاری این پست


لینک به پست

یک نمونه از خروجی html رو اینجا قرار بدید.

1

به اشتراک گذاری این پست


لینک به پست

مرتضی جان ، روی سایتم آنلاین ببین: www.bazar2web.ir

0

به اشتراک گذاری این پست


لینک به پست

مرتضی جان نگاه کردی

0

به اشتراک گذاری این پست


لینک به پست

نمیدونم چرا پست جدید رو الان آورد!

من خروجی html رو بررسی کردم. خروجی درستی جنریت نمیکنه.

شما قابلیت ویرایش خروجی رو دارید؟

چون الان برای هر زیر دسته اومده li ها رو توی ul قرار داده.

که بهتره هر li بدون زیر دسته دیگه توی ul نباشه.

اگر این بخش ویرایش بشه میشه با جی کوئری کار رو ساده تر انجام داد.

1

به اشتراک گذاری این پست


لینک به پست

خروجی رو نمیشه دستکاری کرد (منظور این که مثل وردپرس یا هر سیستمی با کد های اختصاصی سیستم دسته ها و زیر دسته ها ساخته میشن)

اما میشه کد های قالب رو مثل کدی که در پست اول نوشتم ویرایش کرد.

که بهتره هر 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>

0

به اشتراک گذاری این پست


لینک به پست

کد بالا رو امتحان کردم : نتیجه این شد که دسته ها و زیر دسته ها همه بدون هیچ وجه تمایزی زیر هم قرار گرفتند.

0

به اشتراک گذاری این پست


لینک به پست

منظورم به این شکله:

<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

به اشتراک گذاری این پست


لینک به پست

منظورم به این شکله:

<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>

بله، همونطور که گفتم، این باعث میشه که دسته ها و زیر دسته ها با هم فرقی نداشته باشن و کلا دسته بندی درختی از بین میره. ( روی اون کد جی کوری اولی که موتور سازنده دسته بندی درختیه اسراری نیست، اون کد رو توی جستجو در اینترنت پیدا کردم. اگر کد دیگری برای درست کردن دسته بندی درختی خاطرتون هست بفرمایید.)

0

به اشتراک گذاری این پست


لینک به پست

از همه دوستان عزیز تشکر میکنم که کمک کردن تا مشکل رو حل کنیم .. مشکلو حلش کردم ;)

حالا چطوری؟ چند کد دیگرو هم امتحان کردم و دیدم در همه کد ها همون مشکل اولی وجود داره فهمیدم مشکل از کد دسته بندیه و تگ SubCategory رو بردم داخل تگ ul و با همین کار ، مشکل حل شد! همونطور که در عنوان تاپیک گفتم مشکل کوچیکی بود! :D

باز هم از همه دوستانی که برای حل این مشکل وقت گذاشتن ، مخصوصا مرتضی جان عزیز تشکر میکنم. موفق باشید!

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط farzadnoruzi
      سلام.
      دوستان من قالب zerif-lite رو روش کار کردم و کلی تغییرات دادم ولی بیشتر روی css ها کار کردم. الان منو واکنش گراش کار نمیکنه . لطفا بررسی کنید و راهنمایی کنید که مشکل از چیه
      منو باز نمیشه . البته باز میشه و خودکار بسته میشه . ثابت نمیمونه ... لطفا راهنمایییییی
      http://new.hofmannprofile.com
    • توسط alibashiri
      سلام دوستان
      لطفا در مورد آبشاری کردن این قالب کمک کنید
      برنامه هدر اینه
      <?php
      /**
       * The Header for our theme.
       * Displays all of the <head> section and everything up till <div id="content">
       */
      ?><!DOCTYPE html>
      <html <?php language_attributes(); ?>>
      <head>
      <?php zerif_top_head_trigger(); ?>
      <meta charset="<?php bloginfo( 'charset' ); ?>">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="profile" href="http://gmpg.org/xfn/11">
      <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
      <?php wp_head(); ?>
      <?php zerif_bottom_head_trigger(); ?>
      </head>
      <?php if(isset($_POST['scrollPosition'])): ?>
          <body <?php body_class(); ?> onLoad="window.scrollTo(0,<?php echo intval($_POST['scrollPosition']); ?>)">
      <?php else: ?>
          <body <?php body_class(); ?> >
      <?php endif;
          zerif_top_body_trigger();
          
          /* Preloader */
          if(is_front_page() && !is_customize_preview() && get_option( 'show_on_front' ) != 'page' ):
       
              $zerif_disable_preloader = get_theme_mod('zerif_disable_preloader');
              
              if( isset($zerif_disable_preloader) && ($zerif_disable_preloader != 1)):
                  echo '<div class="preloader">';
                      echo '<div class="status">&nbsp;</div>';
                  echo '</div>';
              endif;    
          endif; ?>

      <div id="mobilebgfix">
          <div class="mobile-bg-fix-img-wrap">
              <div class="mobile-bg-fix-img"></div>
          </div>
          <div class="mobile-bg-fix-whole-site">

      <header id="home" class="header" itemscope="itemscope" itemtype="http://schema.org/WPHeader">
          <div id="main-nav" class="navbar navbar-inverse bs-docs-nav" role="banner">
              <div class="container">
                  <?php zerif_before_navbar_trigger(); ?>
                  <div class="navbar-header responsive-logo">
                      <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
                      <span class="sr-only"><?php _e('Toggle navigation','zerif-lite'); ?></span>
                      <span class="icon-bar"></span>
                      <span class="icon-bar"></span>
                      <span class="icon-bar"></span>
                      </button>
                          <div class="navbar-brand" itemscope itemtype="http://schema.org/Organization">
                              <?php
                              if( has_custom_logo() ) {
                                  the_custom_logo();
                              } else {
                              ?>
                                  <div class="site-title-tagline-wrapper">
                                      <h1 class="site-title">
                                          <a href=" <?php echo esc_url( home_url( '/' ) ) ?> ">
                                              <?php bloginfo( 'title' ) ?>
                                          </a>
                                      </h1>
                                      <?php
                                      $description = get_bloginfo( 'description', 'display' );
                                      if ( ! empty( $description ) ) : ?>
                                          <p class="site-description">
                                              <?php echo $description; ?>
                                          </p> <!-- /.site-description -->
                                      <?php elseif( is_customize_preview() ): ?>
                                      <p class="site-description"></p>
                                      <?php endif; ?>
                                  </div> <!-- /.site-title-tagline-wrapper -->
                              <?php } ?>
                          </div> <!-- /.navbar-brand -->
                      </div> <!-- /.navbar-header -->
                  <?php zerif_primary_navigation_trigger(); ?>
              </div> <!-- /.container -->
              <?php zerif_after_header_container_trigger(); ?>
          </div> <!-- /#main-nav -->
          <!-- / END TOP BAR -->
    • توسط vahidlb
      سلام و وقت بخیر خدمت مخاطبان عزیز.
      ابتدا خواهش می کنم این لینک رو ملاحظه بفرمایید.
      منظورم بخش "من متقاضی ... انتخاب کنید ...." هست.
      دوستان می تونید چنین افزونه ای و حتی مشابه اینو به من معرفی بفرمایید.. نیاز بسیار مبرم و حیاتی به این منو دارم
      از دوستانی که می تونن زحمت نوشتن و تولید این افزونه رو بکشن هم لطفاً پیام بدن...
      البته سال گذشته یکی از دوستان این کد را به صورت افزونه تولید کردند و الان هم کار می کنه ولی یکسری تغییرات لازم داره و به مراحلش اضافه شده،
      لذا خواهشمندم اگر ممکنه در این خصوص اعلام نظر بفرماییدو اگر پیشنهادی دارید یا افزونه مشابه اینو می شناسید خیلی ازتون ممنون خواهم شد اگر لطف کنید و راهنماییم کنید.
      با احترام و تشکر
    • توسط setayesh44
      سلام وقت بخیر

      یه سوالی داشتم از خدمتتون در کنار نوار سرچ سایت http://cwaall.com یه دکمه سه خط هست که اگه روش کلیک کنیم در سمت راست صفحه منویی باز میشه که همه گروه ها و منو ها رو نمایش میده

      من میخوام برای سایت خودم یه همچین چیزی بنویسم

      میشه راهنماییم کنید از چه کدی باید استفاده کنم

      با سپاس از شما و ادمین محترم سایت wp-parsi.com
    • توسط PejmanDesigner
      با عرض سلام و خسته نباشید خدمت دوستانم .
      من مشکلی دارم که با جستجو نتونستم به جواب برسم شاید مواردی که جستجو می کردم اشتباه بوده .
      من می خوام در قسمت منو ها لینکی بزارم که صفحه جدیدی رو باز نکنه و به قسمت های مختلف در همون صفحه بره .
      من یک وب سایت تک صفحه دارم و برگه جدیدی ندارم . ولی می خوام با کلیک بر روی قسمت های مختلف منو بازدید کننده مستقیم اسکرول بشه به همون موقعیت .
      حالا دو سوال دارم در این رابطه
      اول اینکه ایا افزونه ای هست که این کار رو انجام بده ؟ یا اینکه باید کدی رو وارد کنم ؟ (لطفا در صورت داشتن کد ، علاوه بر کد نحوه قرار گیری هم توضیح داده شود)
      دوم اینکه اون طوری که من خیلی وقت پیش ها شنیدم مقدار پیکسل میگیره این کد که کجا اسکرول بشه ، حالا سوالم اینجاست که ما پیکسل بدیم داخل این کد ها یا افزونه آیا درحالت رسپانسیو مشکل ایجاد میشه یا نه ؟