private function displayCats($cats, &$subtable, $class = false, $id = false, $jscript = false, $style = false, &$cat_selection = false, &$subtable_fields = false, &$concat_char = false, &$input_type = false, &$aux_table_name = false, &$as_popup = false) { global $CFG; if ($cats) { $class = $class ? $class : 'class="cats_ul"'; $HTML = "<ul {$class}>"; foreach ($cats as $cat) { if (!is_array($subtable_fields)) { $cat_name = $cat['row']['name']; } else { $cat_name = ''; $concat_char = empty($concat_char) ? ' ' : $concat_char; $c = strlen($concat_char); foreach ($subtable_fields as $field) { $cat_name .= $cat['row'][$field] . $concat_char; } $cat_name = substr($cat_name, 0, -$c); } $cat_id = $cat['row']['id']; $checked = @in_array($cat_id, $cat_selection) ? 'checked="checked"' : ''; $jscript = $CFG->in_faux_select ? 'onclick="fauxMultiSelect(this,event)"' : ''; $class1 = $CFG->in_faux_select ? 'faux_check' : ''; if (!$input_type) { $HTML .= "<li onclick=\"formCatSelect(this,event," . ($as_popup ? '1' : '0') . ",'" . $CFG->grid_n_selected . "','" . $CFG->grid_click_to_select . "')\"><label for=\"{$this->name}_{$id}_{$cat_id}\">{$cat_name}</label><input type=\"checkbox\" class=\"checkbox_input {$class1}\" name=\"{$this->name}[cat_selects][{$subtable}][{$cat_id}]\" value=\"{$cat_id}\" id=\"{$this->name}_{$id}_{$cat_id}\" " . $jscript . " {$style} {$checked} /></li>"; } else { $HTML .= "<li><label class=\"cat_text_label\" for=\"{$this->name}_{$id}_{$cat_id}\">{$cat_name}</label><input type=\"text\" class=\"cat_text narrow {$class1}\" name=\"{$this->name}[cat_selects][{$aux_table_name}][{$cat_id}]\" value=\"" . $cat_selection[$cat_id] . "\" id=\"{$this->name}_{$id}_{$cat_id}\" " . $jscript . " {$style} /></li>"; } if (is_array($cat['children'])) { $HTML .= Form::displayCats($cat['children'], $subtable, $class, $id, $jscript, $style, $cat_selection, $subtable_fields, $concat_char, $input_type, $aux_table_name, $as_popup); } } $HTML .= '</ul>'; return $HTML; } }