Example #1
0
 function test_recorrido_con_filtrado_items()
 {
     $cant_niveles = 5;
     $niveles = array(array(1000204, 1), array(1000207, 2), array(1000209, 3), array(1000210, 4));
     $arbol = new toba_catalogo_items(false, 'toba_testing');
     $arbol->sacar_publicos();
     $arbol->set_carpeta_inicial(1000203);
     $arbol->ordenar();
     $arbol->dejar_grupo_acceso('admin');
     foreach ($niveles as $nivel) {
         $encontrado = false;
         foreach ($arbol->items() as $item) {
             if ($item->id() == $nivel[0]) {
                 $encontrado = true;
                 $this->AssertEqual($item->get_nivel_prof(), $nivel[1], "Nivel del item {$item->id()} (%s)");
                 break;
             }
         }
         if (!$encontrado) {
             $this->fail("El item {$nivel[0]} no se encuentra");
         }
     }
     $this->assertEqual($arbol->cantidad_items(), count($niveles), 'Cant. Items del arbol (%s)');
     $this->assertEqual($arbol->profundidad(), $cant_niveles, 'Profundidad del arbol (%s)');
     $this->asegurar_unicidad($arbol->items());
 }
<?php

$editable = toba::zona()->get_editable();
define('separador_camino', '_%_');
$grupo = $editable[1];
$arbol = new toba_catalogo_items(toba_editor::get_proyecto_cargado());
$arbol->cargar_todo();
$arbol->sacar_publicos();
$maximo = $arbol->profundidad();
$formulario = 'permisos';
$boton_post = 'asignar_permisos';
$boton_post_nombre = 'Guardar';
$prefijo_items = 'item_';
//Prefijo de los checkbox
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST[$boton_post])) {
    if ($_POST[$boton_post] == $boton_post_nombre) {
        //SI hay un POST, y estuvo disparado por este formulario
        $items = array();
        foreach ($_POST as $etiqueta => $valor) {
            if (substr($etiqueta, 0, strlen($prefijo_items)) == $prefijo_items) {
                $nodo = trim(substr($etiqueta, strlen($prefijo_items)));
                $items[] = $nodo;
            }
        }
        $arbol->cambiar_permisos($items, $grupo);
        echo ei_mensaje('Los permisos han sido actualizados correctamente');
    }
}
//--------------------------------------------------------------------------
//--------------<  INTERFACE DE ASIGNACION de PERMISOS  >-------------------
//--------------------------------------------------------------------------