¿Cómo cambiar "a" a "-" mientras se muestra la fecha de inicio y finalización en las vistas?

10

Cuando se utilizan vistas para mostrar la fecha de inicio y finalización de forma predeterminada, agrega texto "a" entre dos fechas, me preguntaba cuál es la forma adecuada de convertir "a" a "-" o cualquier otra cosa.

Gracias

ilama
fuente
1
El mismo tipo de pregunta - drupal.stackexchange.com/questions/79311/…
RajeevK
Cuando uno tenga respuestas, otro debería cerrarse como un duplicado. Buena captura, @RajeevK
Mołot
@ Mołot: por eso no marqué como duplicado. Espero que alguien tenga algo para eso y modifique los datos de las vistas. Lo he hecho en D6 pero no este, pero es algo muy diferente.
RajeevK

Respuestas:

9

Mis respuestas asumen que tengo un campo llamado "field_event_date" que se muestra como Contenido: Fecha del evento en mi opinión.

Respuesta # 1 - Usar plantilla de vista

  1. En la sección Avanzada de la vista, en la sección Otros, abra Información del tema

  2. Copie el nombre de archivo de la última opción de tema para Contenido de campo: Fecha del evento, en mi caso será vistas-vista-campo - VIEWMACHINENAME - BLOCKMACHINENAME - field-event-date.tpl.php

  3. Copie lo siguiente en él:

    <?php
    
    /**
     * @file
     * This template is used to print a single field in a view.
     *
     * It is not actually used in default Views, as this is registered as a theme
     * function which has better performance. For single overrides, the template is
     * perfectly okay.
     *
     * Variables available:
     * - $view: The view object
     * - $field: The field handler object that can process the input
     * - $row: The raw SQL result that can be used
     * - $output: The processed output that will normally be used.
     *
     * When fetching output from the $row, this construct should be used:
     * $data = $row->{$field->field_alias}
     *
     * The above will guarantee that you'll always get the correct data,
     * regardless of any changes in the aliasing that might happen if
     * the view is modified.
     */
    ?>
    
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value"])); ?>
     - 
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value2"])); ?>

Esto generará algo así como 2014-08-09 20:15:00 - 2014-08-12 20:15:00, formatear usando la cadena de formato de fecha () .

Respuesta # 2 - Usar campos de vista

  1. En Campos, agregue Contenido: Fecha del evento y configure la Pantalla en "Solo fecha de inicio"
  2. En Campos, agregue Global: Texto personalizado y establezca Texto en -
  3. En Campos, agregue Contenido: Fecha del evento y establezca la Visualización en "Solo fecha de finalización"
  4. En Configuración de campo, configure los tres campos anteriores como En línea.

Esto generará algo como domingo, 1 de diciembre de 2013 - 12:00 - domingo, 1 de diciembre de 2013 - 12:00, según el formato que haya elegido.

Scott Joudry
fuente
Respuesta # 2b: haga lo mismo pero excluya la fecha de inicio de la pantalla en el primer campo; no agregue Global: Texto personalizado; y reescribe los resultados del campo de fecha de finalización con patrones de reemplazo para algo así [field_my_time] - [field_my_time_1].
Hugo
4

Aunque la respuesta anterior es correcta, es una buena práctica no utilizar php en un TPL como este. Drupal viene con un montón de APIs elegantes, una de ellas es template_preprocess_views_view_fields ( como se ve aquí )

En tu template.php haz esto:

function YOURTHEME_preprocess_views_view_fields(&$vars) {
 if($vars['view']->name == 'YOUR_VIEW') {
  if (strpos($vars['fields']['YOUR_FIELD']->content,'to') !== false) {
    $vars['fields']['YOUR_FIELD']->content = str_replace('to','-',$vars['fields']['YOUR_FIELD']->content);
  }
 }
}
John O
fuente
2

En la fecha 7.x-2.8 y superior, toda la cadena de "fecha de inicio a fecha de finalización" es traducible. Esto significa que una manera fácil de cambiar el "a" por un "-" es usar el módulo Stride Overrides . Simplemente descargue y habilite el módulo, luego visite / admin / config / regional / stringoverrides. En esa página, agregue "! Fecha de inicio a! Fecha de finalización" (sin comillas) en "Original" y "! Fecha de inicio -! Fecha de finalización" (sin comillas) en "Reemplazo". Clic en Guardar. Es posible que también necesite limpiar las cachés de su sitio antes de ver el cambio.

Un beneficio de este método es que cambiará el "a" a un "-" en los nodos y las vistas a la vez.

peezy
fuente