Ya he logrado que funcione, este el el código php de las funciones:
Código PHP:
function show_categories($allow_visibles, $allow_subcats, $order_by, $order_dir){
if(!isset($allow_visibles)) { $allow_visible = 0; }
if(!isset($order_by)) { $order_by = 'name'; }
if(!isset($order_dir)) { $order_dir = 'asc'; }
switch($order_by) {
case 'name':
$order = 'name';
break;
case 'order':
$order = 'order';
break;
case 'visible':
$order = 'visible';
break;
default:
$order = 'id';
break;
}
if($order_dir = 'asc'){ $ordered_dir = 'ASC'; } else { $ordered_dir = 'DESC'; }
if($allow_visibles == 'no') { $allowed_visibles = 'no'; } elseif ($allow_visibles == 'yes') { $allowed_visibles = 'not'; } else {$allowed_visibles = 'no'; }
include('config.php');
$sql = "SELECT * FROM categories WHERE visible <> '$allowed_visibles' AND parent = 0 ORDER BY $order $ordener_dir";
$rs = @mysql_query($sql);
if($rs){
echo '<ul>';
while($cat = mysql_fetch_array($rs)){
echo('<li>'.$cat['name'].'</li>');
if($allow_subcats == 'yes') {
show_subcategories($cat['id'], $allowed_visibles, $order, $ordener_dir);
}
}
echo '</ul>';
}
mysql_close($conn['connection_step1']);
}
function show_subcategories($parent, $allowed_visibles, $order, $ordener_dir) {
$sql = "SELECT * FROM categories WHERE visible <> '$allowed_visibles' AND parent = $parent ORDER BY $order $ordener_dir";
$result = mysql_query($sql);
if($result) {
echo '<ul>';
while($subcat = mysql_fetch_array($result)) {
echo('<li>'.$subcat['name'].'</li>');
show_subcategories($subcat['id'], $allowed_visibles, $order, $ordener_dir);
}
echo '</ul>';
}
}