Come cambiare "da" a "-" mentre si visualizzano le date di inizio e fine nelle viste?


10

Quando si utilizzano le visualizzazioni per visualizzare la data di inizio e di fine per impostazione predefinita, aggiunge "a" il testo tra due date, mi chiedevo quale sia il modo appropriato per convertire "in" a "-" o qualsiasi altra cosa.

Grazie



Quando uno avrà le risposte, l'altro dovrebbe chiudersi come duplicato. Buona cattura, @RajeevK
Mołot,

@ Mołot - Ecco perché non ho contrassegnato come duplicato. Spero che qualcuno abbia qualcosa a riguardo e abbia modificato i dati delle visualizzazioni. Ho fatto in D6 ma non questa, ma una cosa molto diversa.
RajeevK,

Risposte:


9

Le mie risposte presumono che io abbia un campo chiamato "field_event_date" che mostra come contenuto: la data dell'evento a mio avviso.

Risposta n. 1: utilizzare Visualizza modello

  1. Nella sezione Avanzate della vista, nella sezione Altro, apri Informazioni sul tema

  2. Copia il nome file dell'ultima opzione del tema per Field Content: Event Date, nel mio caso sarà views-view-field - VIEWMACHINENAME - BLOCKMACHINENAME - field-event-date.tpl.php

  3. Copia in esso quanto segue:

    <?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"])); ?>

Questo produrrà qualcosa come 2014-08-09 20:15:00 - 2014-08-12 20:15:00, formattato usando la stringa di formato data () .

Risposta n. 2: utilizzare i campi di visualizzazione

  1. In Campi, aggiungi Contenuto: Data evento e imposta il display su "Solo data di inizio"
  2. In Campi, aggiungi Globale: Testo personalizzato e imposta Testo su -
  3. In Campi, aggiungi Contenuto: Data evento e imposta il display su "Solo data di fine"
  4. In Impostazioni campo, imposta i tre campi sopra come In linea.

Questo produrrà qualcosa come domenica 1 dicembre 2013 - 12:00 - domenica 1 dicembre 2013 - 12:00, in base al formato che hai scelto.


Risposta n. 2b: fare lo stesso ma escludere la data di inizio dalla visualizzazione nel primo campo; non aggiungere globale: testo personalizzato; e riscrivere i risultati del campo della data di fine con uno schema di sostituzione in qualcosa del genere [field_my_time] - [field_my_time_1].
Hugo

4

Sebbene la risposta sopra sia corretta, è consigliabile non usare php in un TPL come questo. Drupal include un sacco di API fantasiose, una delle quali è template_preprocess_views_view_fields ( come visto qui )

Nel tuo template.php fai questo:

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);
  }
 }
}

2

In Date 7.x-2.8 e versioni successive, l'intera stringa "dalla data di inizio alla data di fine" è traducibile. Ciò significa che un modo semplice per modificare "in" in un "-" è utilizzare il modulo String Overrides . Basta scaricare e abilitare il modulo, quindi visitare / admin / config / regional / stringoverrides. In quella pagina, aggiungi "! Data di inizio a! Data di fine" (senza virgolette) in "Originale" e "! Data di inizio -! Data di fine" (senza virgolette) in "Sostituzione". Fai clic su Salva. Potrebbe anche essere necessario svuotare le cache del sito prima di vedere la modifica.

Un vantaggio di questo metodo è che cambierà "in" in un "-" su nodi e viste contemporaneamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.