• Publicidad

Consulta sobre push()

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Consulta sobre push()

Notapor PipoRide » 2012-01-27 08:55 @413

He empezado a realizar mi práctica profesional junto a Perl y llevo unas semanas aprendiendo gracias a este foro.

Mi consulta, que no pude encontrar en temas antiguos, es esta:

Estoy trabajando con Catalyst y HTML::FormFu.

El tema es que le paso valor mediante un array a los select que tengo en el .yml:

...
my @ambientes = ("Produccion", "Beta", "Staging");
my @ambientes_h;
foreach (@ambientes) {
push(@ambientes_h, [$_, $_]);
}
...
$select_ambientes->options(\@ambientes_h);
...

Esto funciona perfecto mostrando en el HTML mi select con un value y el nombre así:

<option value="Produccion">Produccion</option>
<option value="Beta">Beta</option>
<option value="Staging">Staging</option>


Ahora mi pregusta es:

¿Mediante el push() puedo ingresarle una clase también?
Cosa que en el HTML me lo muestre así:

<option value="Produccion" class="uno">Produccion</option>
<option value="Beta" class="uno">Beta</option>
<option value="Staging" class="dos">Staging</option>

Sería de mucha ayuda si se pudiese.
Gracias.
PipoRide
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-01-27 08:07 @380

Publicidad

Re: Consulta sobre push()

Notapor explorer » 2012-01-27 12:48 @575

Bienvenido a los foros de Perl en español, PipoRide.

¿Qué tipo de objeto es $select_ambientes?

Es que no consigo encontrar el método options()...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Consulta sobre push()

Notapor PipoRide » 2012-01-27 12:55 @580

Muchas Gracias.
Sí, disculpa, se me olvidó poner esa línea:

my $select_ambientes = $form->get_element({ name => 'ambiente_id', type => 'Select'});

donde: my $form = $c->stash->{form};


y mi .yml es:


---
indicator: submit

elements:
...
- type: Select
name: ambiente_id
label: Seleccione Ambiente
...
PipoRide
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-01-27 08:07 @380

Re: Consulta sobre push()

Notapor explorer » 2012-01-27 16:19 @721

Pero, entonces... ¿$form es un objeto de HTML::FormFu?

Eso es lo que estaba preguntando...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Consulta sobre push()

Notapor explorer » 2012-01-27 16:45 @740

Creo que ya lo tengo. Según HTML::FormFu::Element::Select, hay que definirlo en el fichero yaml, pero también se puede hacer en el array que creas:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach (@ambientes) {
  2.     push @ambientes_h, {value => $_, label => $_, attributes => { class => 'uno' } };
  3. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Al menos, esto es lo que he deducido viendo el código de HTML::FormFu::Util.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Consulta sobre push()

Notapor PipoRide » 2012-01-30 07:09 @340

Wooooow!

Muchísimas gracias.
Sorry la demora en responder, pero el fin de semana no tenía dónde probar el código.
De verdad un increíble foro, lo recomendaré a mis compañeros.

Pueden dar el tema por RESUELTO al igual que la mayoría :D

¡ Gracias !
PipoRide
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-01-27 08:07 @380

Re: Consulta sobre push()

Notapor PipoRide » 2012-01-30 16:30 @729

Explorer, disculpa molestarte de nuevo pero por curiosidad...

¿Cómo podría ponerle clase a un <div> que envuelve mi select?

Me explico...

Tengo ahora en mi HTML lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <div class="select label">
  2.    <label>Seleccione Maquina</label>
  3.    <select name="maquina_id">
  4.       <option class="Beta" value="1001">1001</option>
  5.       <option class="Staging" value="1">1</option>
  6.       <option class="Produccion" value="No Existe Maquina">No Existe Maquina</option>
  7.    </select>
  8. </div>
  9.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


En la primera línea me muestra <div class="select label"> pero esta clase me la asigno por defecto. ¿Cuál sería la forma de cambiarlo? ¿En el push() o directamente en mi .yml?

Saludos.
PipoRide
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-01-27 08:07 @380

Re: Consulta sobre push()

Notapor explorer » 2012-01-30 16:43 @738

Es que no sé si el fichero yaml lo generas de forma dinámica, o se trata de entramado prefabricado, como si fuese una plantilla...

La regla básica sería: todo aquello que se repite, y que es igual, en todas las salidas, debe ir en una plantilla o en un sistema fijo (como un fichero yaml fijo, por ejemplo). Y todo lo demás, toda salida dinámica, lo haremos por programa.

Pero hay matices... Por ejemplo, una vez hice una página que consistía en diversos bloques (<div> o <td>) que, cada uno, era el resultado de una salida dinámica. Entonces, debería generarlos todos por programa... pero también es cierto que muchos de ellos siempre salían con el misma aspecto o estructura (una o más <table> anidadas)... así que la solución fue híbrida: todos esos bloques tenían su propia mini-plantilla. Cogía las mini-plantillas, las rellenaba con contenido dinámico, por programa, y el resultado era un nuevo contenido que se metía en las zonas dinámicas de la plantilla global.

Depende del resultado final, claro. Incluso se podría hacer todo dinámico, sin usar ningún sistema de plantillas (cosa que no me gusta, porque entonces dejamos al diseñador web fuera de juego).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Consulta sobre push()

Notapor PipoRide » 2012-01-31 07:51 @369

Así es, lo tengo como plantilla.

Al final lo que hice fue envolver los select en bloques y darles un id al bloque :D
Quedando así:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. elements: 
  2. ... 
  3.   - type: Block 
  4.    id: id_bloque_tcs 
  5.    name: bloque_tcs 
  6.    elements: 
  7.      - type: Select 
  8.       name: tc 
  9.       label: Seleccione TestCase 
  10.       id: id_testcase 
  11. ... 

De igual forma muchas gracias por la explicación.

Saludos.
PipoRide
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-01-27 08:07 @380


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados