Hola, estoy teniendo problemas para definir el layout de un formulario a través del método generar_layout.
Inicialmente, tenía el layout definido como se vé en la primer imagen adjunta, pero todas las etiquetas se configuraban de igual forma a 150px, según se definió para el formulario.
Intenté un nuevo acercamiento, extendiendo el formulario, con el siguiente código, de forma tal de cambiar el ancho de la etiqueta del ef(‘foto’):
<?php
class formulario_docentes extends toba_ei_formulario
{
function generar_layout()
{
echo "<table style=''><tbody>
<tr>
<td>";
$this->generar_html_ef('legajo');
echo " </td>
<td style='text-align: left;' rowspan='12'>";
$this->generar_html_ef('foto_vista_preliminar');
//codigo alternativo que produce el mismo resultado que la línea inmediata anterior
// $id_ef = $this->_elemento_formulario['foto_vista_preliminar']->get_id_form();
// echo "<div id='cont_$id_ef' style='margin-left:{$this->_ancho_etiqueta};'>";
// $this->generar_etiqueta_ef('foto_vista_preliminar', '60px');
// $this->generar_input_ef('foto_vista_preliminar');
// echo '</div>';
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('apellido');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('nombre');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('id_documento_tipo');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('documento_nro');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('cuil');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('fecha_nacimiento');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('id_nacimiento_localidad');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('id_nacionalidad');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('id_estado_civil');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('comentarios');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('fecha_ingreso_upso');
echo " </td>
</tr>
<tr>
<td>";
$this->generar_html_ef('antiguedad');
echo " </td>
<td style='text-align: left;'>";
$id_ef = $this->_elemento_formulario['foto']->get_id_form();
echo "<div id='cont_$id_ef' style='margin-left:{$this->_ancho_etiqueta};'>";
$this->generar_etiqueta_ef('foto', '60px');
$this->generar_input_ef('foto');
echo '</div>';
echo " </td>
</tr></tbody></table>";
}
}
?>
El mismo “funciona”, es decir, me muestra la etiqueta pegada al ef (pero en realidad, creo que no me está tomando el ancho, ya que no importa que valor le ingrese, solo pega la etiqueta al ef… $this->generar_etiqueta_ef(‘foto’, ‘60px’); está bien???)
Sin embargo, como se puede ver en la segunda imagen adjunta, sigue estando la foto separada del resto de los ef, siendo a ojo una distancia aparente de 150px. Es decir, reserva igual el lugar por defecto, más allá de que las 2 celdas definidas en esa columna deberían tener un ancho de 60px (el ef_fijo no tiene etiqueta definida, pero se agregó por si ese era el error).
La definición del ancho del formulario está en blanco y la del ci contenedor es del 100%.
Mil gracias por cualquier recomendación o sugerencia, incluso sobre si este es el correcto acercamiento para cambiar el ancho de esa sola etiqueta, o hay algo más “eficiente” que me permita seguir definiendo el layout visualmente en el Editor.