Preseleccionar un checkbox en nuevo registro

Hola a todos, he tenido que cambiar el registro de usuario añadiende más campos. Lo he hecho con el modulo profile, lo que pasa es que tengo q tener preseleccionada una casilla de un checkbox cuando creamos una cuenta nueva en el sitio. No le he hecho con un formulario porque no se colocar el formulario en la pagina de registro, creo q los valores del formulario no se van a almcaenar como los del modulo profile.

Podría alguien decirme que es mejor y como hacerlo? Estoy mirando el codigo para poner esa casilla a true, pero no lo encuentro x ningun lao.

Muchas gracias, saludos!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Conseguido

Hola amigo!

Ya lo he conseguido, al final un compi me ha ayudado y lo hemos hecho de otra forma.

Hemos añadido un tipo nuevo, checkboxSlected en el modulo profile, y le hemos cambiado esto:

en esta funcion function profile_view_field($user, $field)
hemos añadido: case 'checkboxY': (esto antes de case checkbox)
case 'checkbox':
return $browse ? l($field->title, 'profile/'. $field->name) : check_plain($field->title);

en la función: function profile_form_profile, añadimos:
case 'checkboxY':
$fields[$category][$field->name] = array('#type' => 'checkbox',
'#title' => check_plain($field->title),
'#default_value' => isset($edit[$field->name]) ? $edit[$field->name] : '1',
'#description' => _profile_form_explanation($field),
'#required' => $field->required,
);
break;

La clave es añadir el 1 al final aki:$edit[$field->name] : '1'

Y para que se muestra nuestro nuevo tipo de boton, en esta funcion ponemos function _profile_field_types:
'checkboxY' => t('checkboxSelected')

Y funciona prefecto, modifica la base de datos, se alamacena el valor.

Gracias a Juan P. por su ayuda y rapidez.
Saludos a todos!!

No he podido

He creado mi modulo con la funcion que me pasaste, pero no consigo q funcione. El .module y el .info.
No sé si tengo q hacer alguna llamada desde alguna parte del codigo de otro modulo a esta funcion, o en 'Personal' poner '2.Deseo recibir en mi correo electrónico información de:' que es la sección donde está la casilla q kiero marcar, q se llama iTours. Donde deberia colocar la llamada a la función? O no es necesario realizar esa llamada? Es q soy nueva en drupal y php y estoy superverde.

Muchas gracias x la paciencia, saludos.

En tu tabla "profile_fields"

En tu tabla "profile_fields" donde yo he puesto "Personal" tu debes poner el campo 'category' de la tabla y en la segunda posición del array el campo 'name' correspondientes a tu checkbox.

PD:
- Asegurate de activar tu módulo
- Drupal cachea los formularios por lo que te recomiendo que después de hacer los cambios, limpies la cache.

Salu2

Gracias

Muchas gracias, lo voy a probar ahora mismo. Ya te contaré q tal q ido.

Para ello tienes que alterar

Para ello tienes que alterar el formulario de registro. Yo haría un form_alter de ese formulario en algún módulo propio que tengas para no modificar los de Drupal.

Algo así.

function tumodulo_form_alter(&$form, $form_state, $form_id) {

  switch($form_id) {
    case 'user_register':
     
      $form['Personal']['nombre_de_tu_checkbox']['#default_value'] = TRUE;

    break;

  }
}

Saludos
Juan P.