Structure Top-Down Output

A snippet catching all available cat-ids behind the given parent id.

  • Input: Parent category ID
  • Output: All available category IDs behind the given id in a string comma separated (Without hidden categories).


Version 1.0 Don´t use it anymore!!

StructureTopDown_v1.0

function buildStruct_TopDown($start=0) {
 
    static $my_cat_id = '';
 
    $struct = getStructureChildData($start); // child data available?
 
    foreach($struct as $value) {
 
        buildStruct_TopDown($value['acat_id']);
        $my_cat_id .= $my_cat_id != '' ? ','.$value['acat_id'] : $value['acat_id'];
 
//        echo  '||'.$value['acat_id'].' ,';
 
    }
 
return $my_cat_id;
}


Version 1.1 The right one!! (Update: KH 25.01.2011)

StructureTopDown_v1.1

function buildStruct_TopDown($start=0, &$my_cat_id='') { / KH: V1.1 25.01.2011
 
    $struct = getStructureChildData($start);
 
    foreach($struct as $value) {
 
//        buildStruct_TopDown($value['acat_id'],$my_cat_id);
        $my_cat_id .= ($my_cat_id != '') ? ','.$value['acat_id'] : $value['acat_id'];
        buildStruct_TopDown($value['acat_id'],$my_cat_id);
 
//        echo  '||'.$value['acat_id'].' ,';
 
    }
 
return $my_cat_id;
}


Example:

Given structure

------------------------------------
L  E  V  E  L
.:  :  :  :
.0  1  2  3   <- LEVEL-Nr.
.:  :  :  :
-+ home   :                    ID=0
-+--+ category_01              ID=01
-+--+ category_02              ID=02
-+--+--+ category_02_01        ID=04
-+--+--+--+ category_02_01_01  ID=06
-+--+--+--+ category_02_01_02  ID=07
-+--+--+ category_02_01        ID=05
-+--+--+ category_02_02        ID=08
-+--+ category_03              ID=03
-+--+ category_04              ID=09
.:  :  :  :
.0  1  2  3   <- LEVEL Nr.
------------------------------------

function call: $s = buildStruct_TopDown(2); category_02 → ID=02

Output $s: 4,6,7,5,8



Number of sub-levels

Number of categories of the next level when available.

echo count(getStructureChildData($GLOBALS['content']['cat_id']));


Is there a sub-level?

Simple Script to determine whether there is below the current level, a sub-level.

// Sub-Level available?
 
if (!count(getStructureChildData($GLOBALS['content']['cat_id'])))
   echo 'No Sub-level!';
else
   echo 'Sub-level available!';


english/technics/internal-function-call/category-top-down.txt · Last modified: 2018/06/03 18:09 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0