Author Topic: categorie_bit / mit ID hochzählen  (Read 3760 times)

0 Members and 1 Guest are viewing this topic.

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.806
  • I ♥ 4I
    • View Profile
categorie_bit / mit ID hochzählen
« on: September 30, 2009, 10:19:07 PM »
Hallo zusammen,

folgendes habe ich in meiner categorie_bit.html stehen:
Code: [Select]
<div class="block block-user" id="block-user-1">
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3>{cat_name}{if cat_is_new}<sup>{lang_new}</sup>{endif cat_is_new}</h3>
            </div>
            <div class="content">
                {if sub_cats}<ul class="menu">
                {sub_cats}
</ul>{endif sub_cats}
</div>
        </div>
    </div>    
</div>

So werden bei mir die Kategorien dargestellt (Siehe Ahang)

Aber es gibt da ein Problem und zwar dieser Code:
Code: [Select]
<div class="block block-user" id="block-user-1">
Dieser enthält leider id="

So, da meine Kategorien alle samt einzelne Menüs sind, und mit der gleichen ID erstellt werden, kann ich die Valität der seite nicht stand halten, weil die gleiche ID mehrfach auftaucht.

Meine Frage:

Kann jemand ein Code zur Verfügung stellen, der die ID automatisch bei jeder Kategorie mit hochzählt.
Example:
id="block-user-2"
Code: [Select]
<div class="block block-user" id="block-user-2">
.......
id="block-user-2"
Code: [Select]
<div class="block block-user" id="block-user-3">
........

Die functions.php sieht so aus:
function get_subcategories($parent_id) {
  global 
$cat_parent_cache$cat_cache$site_sess$config;

  if (!isset(
$cat_parent_cache[$parent_id]) || $config['num_subcats'] < 1) {
    return 
"";
  }

  
$visible_cat_cache = array();
  foreach (
$cat_parent_cache[$parent_id] as $key => $val) {
    if (
check_permission("auth_viewcat"$val)) {
      
$visible_cat_cache[$key] = $val;
    }
  }

  
$num_subs sizeof($visible_cat_cache);
  
$sub_cat_list "";
  
$i 1;
  foreach (
$visible_cat_cache as $subcat_id) {
    if (
$i <= $num_subs && $i <= $config['num_subcats']) {
      
$sub_url $site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$subcat_id);
      
$sub_cat_list .= "<li class=\"leaf first\"><a href=\"/".$sub_url."\" title=\"".format_text($cat_cache[$subcat_id]['cat_name'], 2)."\" class=\"active\">".format_text($cat_cache[$subcat_id]['cat_name'], 2)."</a></li>";
      if (
$i != $config['num_subcats'] && $i $config['num_subcats'] && $i $num_subs) {
        
$sub_cat_list .= "";
      }
      if (
$i == $config['num_subcats'] && $i $num_subs) {
        
$sub_cat_list .= " ...\n";
      }
    }
    
$i++;
  }
  return 
$sub_cat_list;
}

function 
get_categories($cat_id 0) {
  global 
$site_template$site_db$site_sess$config$lang;
  global 
$cat_cache$cat_parent_cache$new_image_cache$subcat_ids;

  
$cattable_width ceil((intval($config['cat_table_width'])) / $config['cat_cells']);
  if ((
substr($config['cat_table_width'],-1)) == "%") {
    
$cattable_width .= "%";
  }

  if (!isset(
$cat_parent_cache[$cat_id])) {
    return 
"";
  }

  
$visible_cat_cache = array();
  foreach (
$cat_parent_cache[$cat_id] as $key => $val) {
    if (
check_permission("auth_viewcat"$val)) {
      
$visible_cat_cache[$key] = $val;
    }
  }

  if (empty(
$visible_cat_cache)) {
    return 
"";
  }

  
$total sizeof($visible_cat_cache);
  
$table_columns = (intval($config['cat_cells'])) ? intval($config['cat_cells']) : 2;
  if (
$total <= $table_columns) {
    
$table_rows 1;
  }
  else {
    
$table_rows $total $table_columns;
    if (
$total >= $table_columns && !is_integer($table_rows)) {
      
$table_rows intval($table_rows) + 1;
    }
  }

  
$categories "";
  
$count 0;
  
$count2 0;
  foreach (
$visible_cat_cache as $key => $category_id) {
    
$categories .= "";

    
$is_new = (isset($new_image_cache[$category_id]) && $new_image_cache[$category_id] > 0) ? 0;
    
$num_images = (isset($cat_cache[$category_id]['num_images'])) ? $cat_cache[$category_id]['num_images'] : 0;

    
$subcat_ids = array();
    
get_subcat_ids($category_id$category_id$cat_parent_cache);

    if (isset(
$subcat_ids[$category_id])) {
      foreach (
$subcat_ids[$category_id] as $val) {
        if (isset(
$new_image_cache[$val]) && $new_image_cache[$val] > 0) {
          
$is_new 1;
        }
        if (isset(
$cat_cache[$val]['num_images'])) {
          
$num_images += $cat_cache[$val]['num_images'];
        }
      }
    }

    if (
defined("SHOW_RANDOM_IMAGE") && SHOW_RANDOM_IMAGE == || defined("SHOW_RANDOM_CAT_IMAGE") && SHOW_RANDOM_CAT_IMAGE == 0) {
      
$random_cat_image_file "";
    }
    else {
      
$random_cat_image_file get_random_image($category_id01);
    }

    
$site_template->register_vars(array(
      
"cat_id" => $category_id,
      
"cat_name" => format_text($cat_cache[$category_id]['cat_name'], 2),
      
"cat_description" => format_text($cat_cache[$category_id]['cat_description'], 1),
      
"cat_hits" => $cat_cache[$category_id]['cat_hits'],
      
"cat_is_new" => $is_new,
      
"lang_new" => $lang['new'],
      
"sub_cats" => get_subcategories($category_id),
      
"cat_url" => $site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$category_id),
      
"random_cat_image_file" => $random_cat_image_file,
      
"num_images" => $num_images
    
));
    
$categories .= $site_template->parse_template("category_bit");
    
$count++;
    
$count2++;
    
$categories .= "";

    if (
$count == $table_rows && $count2 sizeof($visible_cat_cache)) {
      
$categories .= "";
      
$categories .= "";
      
$categories .= "";

      
$total $total $count2;
      
$table_columns $table_columns 1;
      
/*if ($total <= $table_columns && $table_columns > 1) {
        $table_rows = 1;
      }
      else {
        $table_rows = $total / $table_columns;
        if ($total >= $table_columns && !is_integer($table_rows)) {
          $table_rows = intval($table_rows) + 1;
        }
      }*/
      
$count 0;
    }
  }

  
$categories .= "";
  return 
$categories;
}


Habe den HTML Code auskommentiert!

Edit://
Hab nun in der functions.php folgendes gemacht:
function get_categories($cat_id 0) {
  global 
$site_template$site_db$site_sess$config$lang;
  global 
$cat_cache$cat_parent_cache$new_image_cache$subcat_ids;

  
$cattable_width ceil((intval($config['cat_table_width'])) / $config['cat_cells']);
  if ((
substr($config['cat_table_width'],-1)) == "%") {
    
$cattable_width .= "%";
  }

  if (!isset(
$cat_parent_cache[$cat_id])) {
    return 
"";
  }

  
$visible_cat_cache = array();
  foreach (
$cat_parent_cache[$cat_id] as $key => $val) {
    if (
check_permission("auth_viewcat"$val)) {
      
$visible_cat_cache[$key] = $val;
    }
  }

  if (empty(
$visible_cat_cache)) {
    return 
"";
  }

  
$total sizeof($visible_cat_cache);
  
$table_columns = (intval($config['cat_cells'])) ? intval($config['cat_cells']) : 2;
  if (
$total <= $table_columns) {
    
$table_rows 1;
  }
  else {
    
$table_rows $total $table_columns;
    if (
$total >= $table_columns && !is_integer($table_rows)) {
      
$table_rows intval($table_rows) + 1;
    }
  }

  
$categories "\n<div class=\"block block-user\" id=\"block-user-".URL_CAT_ID."=".$category_id."\">\n";
  
$count 0;
  
$count2 0;
  foreach (
$visible_cat_cache as $key => $category_id) {
    
$categories .= "";

    
$is_new = (isset($new_image_cache[$category_id]) && $new_image_cache[$category_id] > 0) ? 0;
    
$num_images = (isset($cat_cache[$category_id]['num_images'])) ? $cat_cache[$category_id]['num_images'] : 0;

    
$subcat_ids = array();
    
get_subcat_ids($category_id$category_id$cat_parent_cache);

    if (isset(
$subcat_ids[$category_id])) {
      foreach (
$subcat_ids[$category_id] as $val) {
        if (isset(
$new_image_cache[$val]) && $new_image_cache[$val] > 0) {
          
$is_new 1;
        }
        if (isset(
$cat_cache[$val]['num_images'])) {
          
$num_images += $cat_cache[$val]['num_images'];
        }
      }
    }

    if (
defined("SHOW_RANDOM_IMAGE") && SHOW_RANDOM_IMAGE == || defined("SHOW_RANDOM_CAT_IMAGE") && SHOW_RANDOM_CAT_IMAGE == 0) {
      
$random_cat_image_file "";
    }
    else {
      
$random_cat_image_file get_random_image($category_id01);
    }

    
$site_template->register_vars(array(
      
"cat_id" => $category_id,
      
"cat_name" => format_text($cat_cache[$category_id]['cat_name'], 2),
      
"cat_description" => format_text($cat_cache[$category_id]['cat_description'], 1),
      
"cat_hits" => $cat_cache[$category_id]['cat_hits'],
      
"cat_is_new" => $is_new,
      
"lang_new" => $lang['new'],
      
"sub_cats" => get_subcategories($category_id),
      
"cat_url" => $site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$category_id),
      
"random_cat_image_file" => $random_cat_image_file,
      
"num_images" => $num_images
    
));
    
$categories .= $site_template->parse_template("category_bit");
    
$count++;
    
$count2++;
    
$categories .= "";

    if (
$count == $table_rows && $count2 sizeof($visible_cat_cache)) {
      
$categories .= "";
      
$categories .= "";
      
$categories .= "";

      
$total $total $count2;
      
$table_columns $table_columns 1;
      
/*if ($total <= $table_columns && $table_columns > 1) {
        $table_rows = 1;
      }
      else {
        $table_rows = $total / $table_columns;
        if ($total >= $table_columns && !is_integer($table_rows)) {
          $table_rows = intval($table_rows) + 1;
        }
      }*/
      
$count 0;
    }
  }

  
$categories .= "</div>/n";
  return 
$categories;
}


und die category_bit.html so abgeändert:
Code: [Select]
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3><a href="javascript:toggle('toggle1')">{cat_name}</a>{if cat_is_new}<sup>{lang_new}</sup>{endif cat_is_new}</h3>
            </div>
            <div class="content" id="toggle1" style="DISPLAY: yes">
            Testtext
            </div>
            <div class="content" id="toggle1" style="DISPLAY: none">
                {if sub_cats}<ul class="menu">
                {sub_cats}
</ul>{endif sub_cats}
</div>
        </div>
    </div>    

Der Quelltext der Seite sieht dann aber so aus:

Code: [Select]
<div class="block block-user" id="block-user-cat_id=">
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3><a href="javascript:toggle('toggle1')">Elektronisch</a><sup>neu</sup></h3>
            </div>
            <div class="content" id="toggle1" style="display: none;">

                <ul class="menu">
                <li class="leaf first"><a href="/./categories.php?cat_id=2" title="Electro" class="active">Electro</a></li><li class="leaf first"><a href="/./categories.php?cat_id=5" title="Minimal" class="active">Minimal</a></li><li class="leaf first"><a href="/./categories.php?cat_id=6" title="House" class="active">House</a></li><li class="leaf first"><a href="/./categories.php?cat_id=7" title="Trance" class="active">Trance</a></li><li class="leaf first"><a href="/./categories.php?cat_id=8" title="Tecno" class="active">Tecno</a></li><li class="leaf first"><a href="/./categories.php?cat_id=9" title="Hard-Bass" class="active">Hard-Bass</a></li><li class="leaf first"><a href="/./categories.php?cat_id=10" title="Hard-Style" class="active">Hard-Style</a></li><li class="leaf first"><a href="/./categories.php?cat_id=11" title="Tecktonik" class="active">Tecktonik</a></li><li class="leaf first"><a href="/./categories.php?cat_id=12" title="Hardcore" class="active">Hardcore</a></li></ul></div>
        </div>
    </div>    
<div class="block-top">

     <div class="block-bot">

         <div class="title">
                <h3><a href="javascript:toggle('toggle1')">Drums &amp; Beats</a></h3>
            </div>
            <div class="content" id="toggle1" style="display: none;">
                </div>
        </div>

    </div>    
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3><a href="javascript:toggle('toggle1')">Selfmade</a></h3>
            </div>
            <div class="content" id="toggle1" style="display: none;">
                </div>

        </div>
    </div>    
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3><a href="javascript:toggle('toggle1')">Remix</a></h3>
            </div>
            <div class="content" id="toggle1" style="display: none;">

                </div>
        </div>
    </div>    
</div>

Und das ist falsch. Ich weis nicht wie ich das anstelles soll. Richtig müsste der Code so aussehen!
Nur halt, dass die ID sich ändern soll bzw. die Zahl!

Code: [Select]
<div class="block block-user" id="block-user-1">
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3>Elektronisch<sup>neu</sup></h3>
            </div>

            <div class="content">
                <ul class="menu">
                <li class="leaf first"><a href="/./categories.php?cat_id=2" title="Electro" class="active">Electro</a></li><li class="leaf first"><a href="/./categories.php?cat_id=5" title="Minimal" class="active">Minimal</a></li><li class="leaf first"><a href="/./categories.php?cat_id=6" title="House" class="active">House</a></li><li class="leaf first"><a href="/./categories.php?cat_id=7" title="Trance" class="active">Trance</a></li><li class="leaf first"><a href="/./categories.php?cat_id=8" title="Tecno" class="active">Tecno</a></li><li class="leaf first"><a href="/./categories.php?cat_id=9" title="Hard-Bass" class="active">Hard-Bass</a></li><li class="leaf first"><a href="/./categories.php?cat_id=10" title="Hard-Style" class="active">Hard-Style</a></li><li class="leaf first"><a href="/./categories.php?cat_id=11" title="Tecktonik" class="active">Tecktonik</a></li><li class="leaf first"><a href="/./categories.php?cat_id=12" title="Hardcore" class="active">Hardcore</a></li></ul></div>
        </div>

    </div>    
</div>
<!-- <li><a class="sub" href="./categories.php?cat_id=3"><b>Drums &amp; Beats&nbsp;(0)</b>
      </li> -->
  
<div class="block block-user" id="block-user-1">
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3>Drums &amp; Beats</h3>

            </div>
            <div class="content">
                </div>
        </div>
    </div>    
</div>
<!-- <li><a class="sub" href="./categories.php?cat_id=13"><b>Selfmade&nbsp;(0)</b>
      </li> -->
  
<div class="block block-user" id="block-user-1">
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3>Selfmade</h3>
            </div>
            <div class="content">
                </div>
        </div>
    </div>    
</div>

<!-- <li><a class="sub" href="./categories.php?cat_id=14"><b>Remix&nbsp;(0)</b>
      </li> -->
  
<div class="block block-user" id="block-user-1">
<div class="block-top">
     <div class="block-bot">

         <div class="title">
                <h3>Remix</h3>
            </div>
            <div class="content">

                </div>
        </div>
    </div>    
</div>

Wäre super!
« Last Edit: September 30, 2009, 10:51:25 PM by Sumale.nin »

Offline mawenzi

  • 4images Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: categorie_bit / mit ID hochzählen
« Reply #1 on: September 30, 2009, 11:46:06 PM »

Meine Frage:

Kann jemand ein Code zur Verfügung stellen, der die ID automatisch bei jeder Kategorie mit hochzählt.


... und warum verwendest du da nicht die Kategorie-ID ... in den Templates ... {cat_id} ... ?
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.806
  • I ♥ 4I
    • View Profile
Re: categorie_bit / mit ID hochzählen
« Reply #2 on: October 01, 2009, 02:10:45 PM »
Huhu,

ja das ist war. Das habe ich auch hinterher gemacht :D

Trotzdem danke !