/** * * @param array $datas Array de elementos * @param int | array $selected Valor del option seleccionado o array de valores seleccionados * @param int $depth [optional | def = 1] * @param int $parent [optional | def = 0] * @return string */ function render_arbol_categorias($datas, $selected, $depth = 1, $parent = 0) { if ($depth > 1000) { return ''; } // Make sure not to have an endless recursion $tree = '<ul>'; for ($i = 0, $ni = count($datas); $i < $ni; $i++) { if ($datas[$i]['id_padre'] == $parent) { $id_categoria = $datas[$i]['id_mm_categoria']; $li_selected = ''; if (is_array($selected)) { $li_selected = in_array($id_categoria, $selected) ? 'class="selected"' : ''; } else { $li_selected = (int) $id_categoria === (int) $selected ? 'class="selected"' : ''; } $tree .= '<li ' . $li_selected . ' ><a class="dummy">'; $tree .= $datas[$i]['nombre'] . '</a> <a class="js-link-filtro" data-id_categoria="' . $datas[$i]["id_mm_categoria"] . '" href="' . current_url() . '?categoria=' . $datas[$i]["id_mm_categoria"] . '">' . glyphicon("filter") . '</a>'; $tree .= render_arbol_categorias($datas, $selected, $depth + 1, $id_categoria); $tree .= '</li>'; } } $tree .= '</ul>'; return $tree; }
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button> <h4 class="modal-title" id="myModalLabel">Árbol de categorías</h4> </div> <!-- Modal Body --> <div class="modal-body"> <div class="arbol-categorias"> <ul> <li <?php echo $this->input->get("categoria") === "0" ? 'class="selected"' : ''; ?> > <a class="dummy" href="#">Raíz</a><a class='js-link-filtro' data-id_categoria='0' href="<?php echo current_url(); ?> /?categoria=0&busqueda_avanzada=1"><?php echo glyphicon("filter"); ?> </a> <?php echo render_arbol_categorias($categorias, $selected); ?> </li> </ul> </div> </div> <!-- END Modal Adicionales Eliminar --> </div> </div> </div> <!-- END User Settings -->