- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
function make_cat_options($pid='0',$selected='',$depth=1,$not='')
{
global $cat_cache,$udb,$database,$admin;
if ( !is_array($cat_cache) )
{
$sql = $udb->query('SELECT * FROM '.$database['cat'].' ORDER BY orders ASC, cid ASC');
while ($row = $udb->fetch_array($sql))
{
$cat_cache[$row['pid']][$row['cid']] = $row;
}
}
$cache = $cat_cache;
$xaccess = explode(",",$not);
if(!isset($cache[$pid])) return;
while (list($parent,$category) = each($cache[$pid]))
{
if ( $this->cattpl != '' )
{
$a .= str_replace(
array('{url}','{description}','{name}'),
array(
$this->link_cat( $category[$this->sestype_cat()]),
$admin->superhtmlentities($category['description']),
str_repeat(' ',$depth-1)." ".$category['name']
),
$this->cattpl );
}
else
{
$category['name'] = $this->hsc == 1 ? $admin->superhtmlentities($category['name']) : $category['name'];
unset($sel);
if ($category['cid'] == $selected)
{
$sel = 'selected="selected"';
}
if ( !in_array($category['cid'],$xaccess) )
{
if ( $category['disabled'] != 1 )
{
$a .= '<option value="'.($this->cat_name == 1 ? $this->link_cat($category[$this->sestype_cat()]) : $category['cid']).'" '.$sel.'>';
if ($depth > 1)
{
$a .= str_repeat("-",$depth-1)." ".$category['name']."</option>"."\n";
}
else
{
$a .= $category['name']."</option>";
}
}
else
{
$a .= '<optgroup label="'. str_repeat("-",$depth-1)." ".$category['name'].'">';
$closegroup = 1;
}
}
}
$a .= $this->make_cat_options($category['cid'],$selected,$depth+1,$not);
if ( $closegroup == 1 )
{
$a .= "</optgroup>\n";
}
}
$udb->free_result($sql);
return $a;
}