2010-05-18 8 views
5

Tengo este grupo de botones de radio en el que cada botón individual tiene su propia posición establecida a través del atributo de estilo. Me gustaría saber cómo puedo archivar el mismo usando la API apr de drupal. Encontré cómo estilo como un todo, pero no como control individual dentro del grupo. He aquí cómo mi código HTML parezcan -Diseñando botones de radio individuales en formato drupal

<input type="radio" name="base_location" checked="checked" value="0" style="margin-left:70px;float:left;"/><span style="float:left;">District</span> 
    <input type="radio" name="base_location" value="1" style="margin-left:50px;float:left;"/><span style="float:left;">MRT</span> 
    <input type="radio" name="base_location" value="2" style="margin-left:60px;float:left;"/><span style="float:left;">Address</span> 

Y este es el código de Drupal que estoy atascado en -

$form['base_location'] = array(
    '#type' => 'radios', 
    '#title' => t('base location'), 
    '#default_value' => variable_get('search_type', 0), 
    '#options' => array(
'0'=>t('District'), 
'1'=>t('MRT'), 
'2'=>t('Address')), 
    '#description' => t('base location'), 

Estoy al tanto de tipo # => existencia de radio. Sin embargo, no sé cómo agrupar todos mis botones de radio al respecto. Si utilizo la misma clave de matriz para todos ellos, colisionarían entre sí. Si no lo hago, no se los ve como parte del mismo grupo. Os doy las gracias de antemano.

Respuesta

2

Si usa Drupal 6.x Form API y #type=>radios (http://api.drupal.org/api/function/theme_radios/6) cada elemento de radio tendrá su ID único que puede usar para aplicar CSS adecuado.

El ejemplo que proporciona

$form['base_location'] = array(
    '#type' => 'radios', 
    '#title' => t('base location'), 
    '#default_value' => variable_get('search_type', 0), 
    '#options' => array(
    '0'=>t('District'), 
    '1'=>t('MRT'), 
    '2'=>t('Address')), 
    '#description' => t('base location'), 
); 

debe marcado de salida, así:

<div id="base-location-0-wrapper" class="form-item"> 
    <label for="base-location-0" class="option"><input type="radio" class="form-radio" value="0" name="base_location" id="base-location-0"> District</label> 
</div> 
<div id="base-location-1-wrapper" class="form-item"> 
    <label for="base-location-1" class="option"><input type="radio" class="form-radio" value="1" name="base_location" id="base-location-1"> MRT</label> 
</div> 
<div id="base-location-2-wrapper" class="form-item"> 
    <label for="base-location-2" class="option"><input type="radio" class="form-radio" value="2" name="base_location" id="base-location-2"> Address</label> 
</div> 

Aplicar el siguiente CSS y que debe establecerse.

#base-location-0-wrapper, 
    #base-location-1-wrapper, 
    #base-location-2-wrapper { 
    display:inline; 
    margin-left:50px; 
    } 
+0

Gracias por la solución. – Andrew

+0

Excepto que una ID a veces no es confiable entre entornos. Por ejemplo, si las radios se generan a partir de términos de taxonomía, puede obtener -tid- que no se puede usar de manera confiable. –

1

La respuesta es usar CSS con el html que ya tiene. Parece que solo quiere cambiar la visualización de los botones de radio a 'en línea' con márgenes de 10px, lo cual puede hacer. (Y si dividió las radios en elementos separados dentro de un conjunto de campo, ya no interactuarían entre sí.)

+0

Creo que estoy atascado con el tipo de marca y escribo el código html correspondiente directamente. Pero no estoy seguro si drupal aún los vería como controles. ¿Verdad? – Andrew

+0

¿Por qué te quedas atascado con el 'tipo de marcado'? Imprima el formulario con Drupal y ajústelo con CSS. ¿Dónde está el problema? – lazysoundsystem

+0

El problema es que no sabía drupal generate id por sí solo para cada elemento y, la única forma en que podía pensar en archivar lo que quería es, generar el formato tal como está y asignar el estilo de clase o conjunto para cada elemento . Pero, ahora está claro; todo lo que necesito es definir estilo css con ids generados por Drupal. Gracias de cualquier manera. – Andrew

Cuestiones relacionadas