Cambiar en una vista la etiqueta min y max por desde y hasta en los campos fechas - Drupal

Actualmente estoy trabajando en un sitio de Drupal 10. El cliente me pidió un filtro en una vista. El Filtro era de un campo fecha y queria buscar entre un rango de fecha para el campo fecha de creación. 

En este sentido, el cliente necestitaba que en vez de decir la etiqueta min = Desde y que en vez de max = Hasta.

Para esto tendriamos que crear un modulo personalizado y crear un archivo .module.

en este archivo de llamar al hook_form_views_exposed_form_alter()

con este código les funcionará.

 

<?php


/**
 * Implements hook_form_views_exposed_form_alter().
 */
function mi_modulo_form_views_exposed_form_alter(&$form, &$form_state, $form_id) {
  // Asegurarnos de que estamos trabajando con un formulario expuesto de una vista.
  if ($form_id === 'views_exposed_form') {
    // Recorremos todos los elementos del formulario.
    foreach ($form as &$element) {
      // Verificamos si el elemento es un array.
      if (is_array($element)) {
        // Recorremos sus subelementos.
        foreach ($element as &$sub_element) {
          // Verificamos si el sub_elemento es un array y no un objeto.
          if (is_array($sub_element)) {
            // Recorremos más profundamente si hay otro nivel de anidamiento.
            foreach ($sub_element as &$nested_element) {
              // Verificamos si el elemento es un array antes de acceder a 'min' y 'max'.
              if (is_array($nested_element)) {
                // Verificamos si los campos "min" y "max" existen y son arrays.
                if (isset($nested_element['min']) && is_array($nested_element['min']) && isset($nested_element['max']) && is_array($nested_element['max'])) {
                  // Cambiamos las etiquetas de "min" y "max".
                  $nested_element['min']['#title'] = t('Desde');
                  $nested_element['max']['#title'] = t('Hasta');
                }
              }
            }
          }

          // Verificamos si el sub_elemento tiene directamente los campos "min" y "max", y es un array.
          if (isset($sub_element['min']) && is_array($sub_element['min']) && isset($sub_element['max']) && is_array($sub_element['max'])) {
            // Cambiamos las etiquetas de "min" y "max".
            $sub_element['min']['#title'] = t('Desde');
            $sub_element['max']['#title'] = t('Hasta');
          }
        }
      }
    }
  }
}

 

 

Añadir nuevo comentario

Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Comparte este artículo