/**
  * Internal function used by get_tree()
  */
 private function add_subtree($targets, $level, $catid, $visible)
 {
     $subcats = Category::load(null, null, null, $catid, $visible);
     if (!empty($subcats)) {
         foreach ($subcats as $cat) {
             $targets[] = array($cat->get_id(), $cat->get_name(), $level + 1);
             $targets = Category::add_subtree($targets, $level + 1, $cat->get_id(), $visible);
         }
     }
     return $targets;
 }