Viewing file: class_tree_simple.php (4.33 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class tree_simple {
function tree_simple($patron, $x_y, $user)
{
// 0. Validación
// Se usa para determinar el nivel del usuario dentro de la clase y por ende hacer operaciones con él
if (isset($x_y)) {
$uid = new password($x_y, $user, 2);
}else{
$uid = new password($y, $x, 1);
}
$user = $uid->USER;
$x_y = $uid->UID;
$this->PATRON = $patron;
// 1. Operaciones sobre el patron
// 1.1 Si el patron es de un solo digito que le asigne un punto
$largo_patron = strlen($this->PATRON);
if ($largo_patron == 1) {
$this->PATRON = $this->PATRON . ".";
}
// 1.2 Calcular el siguiente nivel
$largo_patron_next = $largo_patron + 2;
// 1.3 Calcular todos los anteriores niveles
$r = ($largo_patron / 2) - 1;
$acumulado = 2;
$resta = 0;
$sub_query = "";
for ($i = 0; $i < $r; $i++) {
$largo_patron_anterior = $largo_patron - $acumulado;
$patron_anterior = substr ($this->PATRON, 0, $largo_patron_anterior);
$largo_patron_nivel = $largo_patron - $resta;
$sub_query = $sub_query . "or (categoria_tema_id like '" . $patron_anterior . "%' and length(categoria_tema_id)<=" . $largo_patron_nivel . ") ";
$acumulado = $acumulado + 2;
$resta = $resta + 2;
}
// 2. Query constante
$seleccion = "categoria_tema_id, categoria_tema_desc, categoria_id";
$desde = "contenido_categoria";
$cuando = "(categoria_tema_id like '" . $this->PATRON . "%') order by categoria_tema_id";
$numero_campos = 3;
$numero_paginacion = 0;
// 2.1 Definir Query Real (encuentra los resultados deseados)
$query = "select " . $seleccion . " from " . $desde . " where " . $cuando;
$select = new Select($query, $numero_campos, $inicio ,$numero_paginacion);
// 2.3 Extrae los resultados en un arreglo de dos dimensiones
$resultados = $select->RESULTADO;
// 3 Definir Variables que quiero imprimir, las cuales se deben sustituir por las que esten en $texto
$variables[0] = "(tema_id)";
$variables[1] = "(tema_desc)";
$variables[2] = "(carpeta)";
// 4 Uso $texto para imprimir cualquier formato y sustituyo los nombres de variables por aquellos dados en los nonmbres de variables
// del numeral 3
for ($i = 0; $i < $select->NUMERO_REGISTROS; $i++) {
// 4.1 Formato de cada nivel
if ($uid->usr_tipo > 1) {
// 4.2.0 Filtro temático de categorias
// Este procedimiento analiza si el usuario tiene permiso para trabajar esta categoria y si así es le da la opción de editarla,
// de lo contrario solo la muestra con fines de navegación
$patron_buscar = $resultados[$i][0];
//echo $patron_buscar;
include('../clases_herramientas/validar_tema.php');
}else{
$permiso = 1;
}
if ($permiso != 0) {
// 4.1.1 Largo 4, Categoria
$tema_id_largo = strlen($resultados[$i][0]);
//echo $tema_id_largo;
if ($tema_id_largo <= 5) {
$t = "";
if ($tema_id_largo == 5) {
$t = $t . "-";
}
$v = $resultados[$i][0];
$n = $resultados[$i][1];
$texto = "<option value=\"$v\">$t $n</option>";
}
// 4.1.2 Largo 6, SubCategoria
if ($tema_id_largo == 6 or $tema_id_largo == 7) {
$v = $resultados[$i][0];
$n = $resultados[$i][1];
$texto = "<option value=\"$v\">-- $n</option>";
}
// 4.1.3 Largo 8, SubSubCategoria
if ($tema_id_largo == 8 or $tema_id_largo == 9) {
$v = $resultados[$i][0];
$n = $resultados[$i][1];
$texto = "<option value=\"$v\">--- $n</option>";
}
// 4.1.4 Largo 10, SubSubSubCategoria
if ($tema_id_largo >= 11) {
$t = "";
$t_i_l = $tema_id_largo;
$s = $t_i_l - 11;
if ($s != 0) {
for ($i_1 = 1; $i_1 <= $s; $i_1++) {
$t = $t . "-";
}
}
$v = $resultados[$i][0];
$n = $resultados[$i][1];
$texto = "<option value=\"$v\">$t--- $n</option>";
}
// 4.2 Imprimir cada uno
$resultados_1[0][0] = $resultados[$i][0];
$resultados_1[0][1] = $resultados[$i][1];
$resultados_1[0][2] = $resultados[$i][2];
$pagina = new listar(1, $texto, $resultados_1, $variables);
}
}
}
}
?>
|