Viewing file: class_tree.php (5.3 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class tree {
function tree($patron, $link, $imagen_nivel_1, $imagen_nivel_2, $fuente, $size)
{
$this->PATRON = $patron;
$this->LINK = $link;
$this->IMAGEN_NIVEL_1 = $imagen_nivel_1;
$this->IMAGEN_NIVEL_2 = $imagen_nivel_2;
$this->FUENTE = $fuente;
$this->SIZE = $size;
// 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 . "%' and length(categoria_tema_id)<=$largo_patron_next)" . $sub_query . "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 Buscar coincidencia en la categoria para destacarla
if ($resultados[$i][0] == $patron) {
$destacado_inicio = "<b>";
$destacado_fin = "</b>";
}else{
$destacado_inicio = "";
$destacado_fin = "";
}
// 4.2 Formato de cada nivel
// 4.2.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 . "<img src=\"../imagenes/tabulador_categorias.gif\" width=\"12\" height=\"6\">";
}
$a = new prevenir($resultados[$i][0],$resultados[$i][2],$link);
$id = $resultados[$i][2];
$texto = "$t<img src=\"$this->IMAGEN_NIVEL_1\" width=\"10\" height=\"10\"> <a href=\"$this->LINK&patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio(tema_desc)$destacado_fin</font></a> [<a href=\"$link&categoria_id=$id&accion=-1\">e</a>]$a->CONTROL<br>";
}
// 4.2.2 Largo 6, SubCategoria
if ($tema_id_largo == 6 or $tema_id_largo == 7) {
$a = new prevenir($resultados[$i][0],$resultados[$i][2],$link);
$id = $resultados[$i][2];
$texto = "<ul class=\"nivel1\"><img src=\"$this->IMAGEN_NIVEL_2\" width=\"8\" height=\"8\"> <a href=\"$this->LINK&patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio(tema_desc)$destacado_fin</font></a> [<a href=\"$link&categoria_id=$id&accion=-1\">e</a>]$a->CONTROL<br></ul>";
}
// 4.2.3 Largo 8, SubSubCategoria
if ($tema_id_largo == 8 or $tema_id_largo == 9) {
$a = new prevenir($resultados[$i][0],$resultados[$i][2],$link);
$id = $resultados[$i][2];
$texto = "<ul class=\"nivel2\"><img src=\"$this->IMAGEN_NIVEL_2\" width=\"8\" height=\"8\"> <a href=\"$this->LINK&patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio(tema_desc)$destacado_fin</font></a> [<a href=\"$link&categoria_id=$id&accion=-1\">e</a>]$a->CONTROL<br></ul>";
}
// 4.2.4 Largo 10, SubSubSubCategoria
if ($tema_id_largo >= 11) {
$t = "";
$s = $tema_id_largo - 11;
if ($s != 0) {
$s = $s / 2;
}
for ($i = 1; $i <= $s; $i++) {
$t = $t . "<img src=\"../imagenes/tabulador_categorias.gif\" width=\"12\" height=\"6\">";
}
$a = new prevenir($resultados[$i][0],$resultados[$i][2],$link);
$id = $resultados[$i][2];
$texto = "<ul class=\"nivel3\">$t<img src=\"$this->IMAGEN_NIVEL_2\" width=\"8\" height=\"8\"> <a href=\"$this->LINK&patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio(tema_desc)$destacado_fin</font></a> [<a href=\"$link&categoria_id=$id&accion=-1\">e</a>]$a->CONTROL<br></ul>";
}
// 4.3 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);
}
}
}
?>
|