<? function mostrar_detalles_objeto($obj, $permisos, $formato, $nombres, $titulo, $extra, $counter = false, $display = "none"){ $class_tabla = "tabla_listado"; $class_td1 = "td_titulo_listado"; $class_tr1 = "tr_datos_listado"; $class_td2 = ""; $ancho1 = "160"; $ancho2 = ""; $nombre_clase = get_class($obj); if (!$obj){ $tabla_detalle = " <p><table class='tabla_mensaje' align='center'> <tr> <th> Elemento no encontrado </th> </tr> </table></p> "; return $tabla_detalle; } $arr = obj2array($obj); if ($extra) $colspan = 4; else $colspan = 3; $cont = 0; $tabla_detalle = " <table class=$class_tabla width='100%' border=0> <tr> <td class=$class_td1 colspan=$colspan align=center>$titulo</td> </tr>"; $show_first = 0; foreach ($arr as $atributo => $valor) { if ($valor == null) $valor = " "; //Si no hay valor asigna un espacio en blanco para desplegar en la tabla $mostrar_atributo = substr($permisos, $cont, 1); //Revisa los permisos externos para mostrar o no la variable $aplicar_formato = substr($formato, $cont, 1); //aplicar formatos preestablecidos a la variable $atributo = format_nombre_atributo($atributo,$nombres); $valor = format_valor_atributo($valor, $aplicar_formato, $atributo); $mostrar_atributo = format_auto_ocultar_atributos($atributo, $mostrar_atributo); $text = ""; $numero = $cont+1; if ($counter) $text = "<td>$numero</td>"; if ($mostrar_atributo == '2' && $valor != " "){ if ($show_first == 0){ $popup = popup_php("Ver más",20); $link_show = "<a $popup href='javascript:cambiar_panel(\"div_$nombre_clase\");'><img src='imagenes/iconos/shown.gif' border=0></a>"; $show_first++; } else $link_show = ""; if ($extra){ $tabla_detalle .= "<tr class=$class_tr1>$text<td width=$ancho1 class=$class_td1>$atributo</td><td>$valor</td><td width='3%' align='center'>$extra</td><td width='3%' align='center'>$link_show</td></tr>"; } else $tabla_detalle .= "<tr class=$class_tr1>$text<td width=$ancho1 class=$class_td1>$atributo</td><td>$valor</td><td align='center'>$link_show</td></tr>"; } $cont++; } $tabla_detalle .=" </table> "; $cont = 0; $tabla_detalle .= "<div id=div_$nombre_clase style='display: none;'>"; $tabla_detalle .= "<table border=0 width=100% class=$class_tabla>"; foreach ($arr as $atributo => $valor) { $mostrar_atributo = substr($permisos, $cont, 1); //Revisa los permisos externos para mostrar o no la variable $aplicar_formato = substr($formato, $cont, 1); //aplicar formatos preestablecidos a la variable $atributo = format_nombre_atributo($atributo,$nombres); $valor = format_valor_atributo($valor, $aplicar_formato, $atributo); $mostrar_atributo = format_auto_ocultar_atributos($atributo, $mostrar_atributo); $text = ""; $numero = $cont+1; if ($counter) $text = "<td>$numero</td>"; if (($mostrar_atributo !== '0') and ($mostrar_atributo !== '2')){ $tabla_detalle .= "<tr class=$class_tr1>$text<td width=$ancho1 class=$class_td1>$atributo</td><td class=$class_td2>$valor</td></tr>"; } $cont++; } $tabla_detalle .= "</table></div></p>"; return $tabla_detalle; } function format_auto_ocultar_atributos($atributo, $mostrar_atributo){ if ((strlen($atributo)<5) and (strcmp(substr($atributo, 0, 2),"Ex") == 0)) return '0'; else return $mostrar_atributo; } function format_valor_atributo($valor, $formato, $atributo){ switch ($formato) { case 'F': $valor = convertirFechaBD_fecha($valor); break; case 'H': $valor = convertirHoraBD_Hora($valor); break; case 'M': $valor = "$" . format_money($valor); break; case 'R': $valor = format_rut($valor); break; case 'N': $valor = sprintf("%08s", $valor); break; case '1': $valor = sprintf("%01s", $valor); break; case '2': $valor = sprintf("%02s", $valor); break; case '3': $valor = sprintf("%03s", $valor); break; case '4': $valor = sprintf("%04s", $valor); break; case '5': $valor = sprintf("%05s", $valor); break; case '6': $valor = sprintf("%06s", $valor); break; case '7': $valor = sprintf("%07s", $valor); break; case '8': $valor = sprintf("%08s", $valor); break; case 'U': $valor = strtoupper($valor); break; default: //Formateo automatico de variables if (substr($atributo, 0, 3) == "id_") $valor = sprintf("%08s", $valor); if (substr($atributo, 0, 5) == "fecha") $valor = convertirFechaBD_fecha($valor); if (substr($atributo, 0, 2) == "fecha") $valor = convertirFechaBD_fecha($valor); break; } return $valor; } function format_nombre_atributo($atributo,$nombres){ if ($nombres["$atributo"] != "") $atributo = $nombres["$atributo"]; else{ $atributo = str_replace("id_", "Nro ", $atributo); $atributo = str_replace("_", " ", $atributo); $atributo = ucwords(strtolower($atributo)); } return $atributo; } function obj2array ( &$Instance ) { $clone = (array) $Instance; $rtn = array (); //$rtn['___SOURCE_KEYS_'] = $clone; while ( list ($key, $value) = each ($clone) ) { $aux = explode ("\0", $key); $newkey = $aux[count($aux)-1]; $rtn[$newkey] = $clone[$key]; } return $rtn; } ?>