Gente ,les quería comentar que finalmente pude hacer la búsqueda por rangos, hice un modulo (creo que muy feo x lo poco que conozco de la metodología de desarrollo que impone la gente de Drupal). También tengan en cuenta que es el primer código en PHP que escribo en mi vida! Vendo del mundo de Smalltalk, asi que imaginense la repulsión que me genera este código!
La idea fue setearle automáticamente un rango el cual tiene una lista de valores que el usuario puede seleccionar.
Les quería preguntar algo, hay alguna forma de ocultar un campo en un form? Dado que el campo que autoseteo aparece visible para los usuarios!
Acá les dejo el código del módulo:
<?php
function ageRangeSearch_form_alter($form_id, &$form) {
$nombreCampoFechaNacimiento = 'field_natta';
$nombreCampoRangoDeEdadTexto = 'field_text_0';
if ($form_id == 'uprofile_node_form') {
dprint_r(&$form);
$today = time();
$date_parts = &$form['#post'][$nombreCampoFechaNacimiento][0]['value'];
$year_diff = date("Y") - ($date_parts['year']);
$month_diff = date("m") - ($date_parts['mon']);
$day_diff = date("d") - ($date_parts['day']);
if ($month_diff < 0)
$year_diff--;
elseif ($month_diff == 0 && $day_diff < 0)
$year_diff--;
print 'Edad Calculada -> ' . $year_diff . '<br>';
$age = $year_diff;
$rangoDeEdad = '';
if ($age <= 15) {
$rangoDeEdad = '0-15';
} else {
if ($age <= 20) {
$rangoDeEdad = '16-20';
} else {
if ($age <= 25) {
$rangoDeEdad = '21-25';
} else {
if ($age <= 30) {
$rangoDeEdad = '26-30';
} else {
if ($age <= 40) {
$rangoDeEdad = '31-40';
} else {
if ($age <= 50) {
$rangoDeEdad = '41-50';
} else {
$rangoDeEdad = '51-100';
}
}
}
}
}
}
$form['#post'][$nombreCampoRangoDeEdadTexto] = array('key' => t($rangoDeEdad));
} // Cierro el if.
}
?>Saludos.