Viewing file: class_tree_1.php (8.29 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class tree_1 {
function tree_1($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;
if ($largo_patron_nivel == 3) {
$sub_query = $sub_query . "or (categoria_estado = 0 and categoria_tema_id ='" . $patron_anterior . "%' and length(categoria_tema_id)<=" . $largo_patron_nivel . ") ";
}else{
$sub_query = $sub_query . "or (categoria_estado = 0 and 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_estado = 0 and 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 Buscar si el patron es o no una compartida y en tal caso construir un sub menú
$b = new share_menu($this->PATRON);
$a_v = 0;
if ($b->SHARE == 1) {
$b->SHARE_L = $b->SHARE_L + 2;
$a_var_id = $this->PATRON;
$a_var_q = "select " . $seleccion . " from " . $desde . " where " . "(categoria_estado = 0 and categoria_tema_id like '" . $b->SHARE_T . "%' and length(categoria_tema_id)=$b->SHARE_L) order by categoria_tema_id";
$a_v++;
}
// 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]);
$control_publicacion = 0;
if ($tema_id_largo <= 5) {
$t = "";
$ul = "";
if ($tema_id_largo == 5) {
$t = $t . "<ul class=\"nivel0\">";
$ul = "</ul>";
}
$b = new share($resultados[$i][0],$resultados[$i][1]);
$id = $resultados[$i][2];
$texto = "$t<img src=\"$this->IMAGEN_NIVEL_1\"> <a href=\"$this->LINK?patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio$b->SHARE_N_1$destacado_fin</font></a>$a->CONTROL<br>$ul";
$control_publicacion = 1;
}
// 4.2.2 Largo 6, SubCategoria
if ($tema_id_largo == 6 or $tema_id_largo == 7) {
$b = new share($resultados[$i][0],$resultados[$i][1]);
$id = $resultados[$i][2];
$texto = "<ul class=\"nivel1\"><img src=\"$this->IMAGEN_NIVEL_2\" width=\"6\" height=\"6\"> <a href=\"$this->LINK?patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio$b->SHARE_N_1$destacado_fin</font></a>$a->CONTROL<br></ul>";
$control_publicacion = 1;
}
// 4.2.3 Largo 8, SubSubCategoria
//if ($tema_id_largo == 8 or $tema_id_largo == 9) {
//$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->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\">";
//}
//$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->CONTROL<br></ul>";
//}
// 4.3 Imprimir cada uno
if ($control_publicacion == 1) {
$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);
}
// 4.4 Buscar sub menus en una categoria compartida
if ($resultados[$i][0] == $patron) {
if ($a_v != 0) {
//echo $a_var_q;
$select_sub = new Select($a_var_q, $numero_campos, $inicio ,$numero_paginacion);
$resultados_sub = $select_sub->RESULTADO;
for ($i_sub = 0; $i_sub < $select_sub->NUMERO_REGISTROS; $i_sub++) {
// 4.4.1 Buscar coincidencia en la categoria para destacarla
if ($resultados_sub[$i_sub][0] == $patron) {
$destacado_inicio = "<b>";
$destacado_fin = "</b>";
}else{
$destacado_inicio = "";
$destacado_fin = "";
}
// 4.4.2 Formato de cada nivel
// 4.4.2.1 Largo 4, Categoria
$tema_id_largo_sub = strlen($resultados_sub[$i_sub][0]);
$tema_id_largo_sub = $tema_id_largo + 2;
$control_publicacion_sub = 0;
//echo $tema_id_largo_sub;
if ($tema_id_largo_sub <= 5) {
$t = "";
$ul = "";
if ($tema_id_largo_sub == 5) {
$t = $t . "<ul class=\"nivel0\">";
$ul = "</ul>";
}
$b_sub = new share($resultados_sub[$i_sub][0],$resultados_sub[$i_sub][1]);
$id_sub = $resultados_sub[$i_sub][2];
$texto_sub = "$t<img src=\"$this->IMAGEN_NIVEL_1\"> <a href=\"$this->LINK?patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio$b_sub->SHARE_N$destacado_fin</font></a>$a->CONTROL<br>$ul";
$control_publicacion_sub = 1;
}
// 4.4.2.2 Largo 6, SubCategoria
if ($tema_id_largo_sub == 6 or $tema_id_largo_sub == 7) {
$b_sub = new share($resultados_sub[$i_sub][0],$resultados_sub[$i_sub][1]);
$id_sub = $resultados_sub[$i_sub][2];
$texto_sub = "<ul class=\"nivel1\"><img src=\"$this->IMAGEN_NIVEL_2\" width=\"6\" height=\"6\"> <a href=\"$this->LINK?patron=(tema_id)\"><font size=\"$this->SIZE\" face=\"$this->FUENTE\">$destacado_inicio$b_sub->SHARE_N$destacado_fin</font></a>$a->CONTROL<br></ul>";
$control_publicacion_sub = 1;
}
// 4.4.3 Imprimir cada uno
if ($control_publicacion_sub == 1) {
$resultados_1_sub[0][0] = $resultados_sub[$i_sub][0];
$resultados_1_sub[0][1] = $resultados_sub[$i_sub][1];
$resultados_1_sub[0][2] = $resultados_sub[$i_sub][2];
$pagina_sub = new listar(1, $texto_sub, $resultados_1_sub, $variables);
}
}
}// Fin de 4.4
}
}
}
}
?>
|