Comment changer «en» en «-» tout en affichant la date de début et de fin dans les vues?


10

Lorsque vous utilisez des vues pour afficher la date de début et de fin par défaut, il ajoute du texte "à" entre deux dates, je me demandais quelle était la façon appropriée de convertir "en" en "-" ou autre chose.

Merci



Quand l'un aura des réponses, les autres devraient être fermés en double. Bonne prise, @RajeevK
Mołot

@ Mołot - C'est pourquoi je n'ai pas signalé comme doublon. J'espère que quelqu'un a quelque chose à faire et a modifié les données des vues. J'ai fait en D6 mais pas celui-ci mais une chose très différente.
RajeevK

Réponses:


9

Mes réponses supposent que j'ai un champ appelé "field_event_date" qui apparaît comme contenu: date de l'événement à mon avis.

Réponse n ° 1 - Utiliser le modèle d'affichage

  1. Sous la section Avancé de la vue, sous la section Autre, ouvrez Informations sur le thème

  2. Copiez le nom de fichier de la dernière option de thème pour Contenu du champ: Date de l'événement, dans mon cas, ce sera vues-vue-champ - VIEWMACHINENAME - BLOCKMACHINENAME - champ-event-date.tpl.php

  3. Copiez-y les éléments suivants:

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

Cela produira quelque chose comme 2014-08-09 20:15:00 - 2014-08-12 20:15:00, formatant en utilisant la chaîne de format date () .

Réponse # 2 - Utilisez les champs d'affichage

  1. Sous Champs, ajoutez Contenu: Date de l'événement et définissez l'affichage sur "Date de début uniquement"
  2. Sous Champs, ajoutez Global: Texte personnalisé et définissez Texte sur -
  3. Sous Champs, ajoutez Contenu: Date de l'événement et définissez l'affichage sur "Date de fin uniquement"
  4. Sous Paramètres de champ, définissez les trois champs ci-dessus comme Inline.

Cela produira quelque chose comme le dimanche 1 décembre 2013 - 12h00 - le dimanche 1 décembre 2013 - 12h00, en fonction du format que vous avez choisi.


Réponse # 2b: faites de même mais excluez la date de début de l'affichage dans le premier champ; n'ajoutez pas Global: Texte personnalisé; et réécrire les résultats du champ de date de fin avec des modèles de remplacement à quelque chose comme [field_my_time] - [field_my_time_1].
Hugo

4

Bien que la réponse ci-dessus soit correcte, il est préférable de ne pas utiliser php dans un TPL comme celui-ci. Drupal est livré avec un tas d'API de fantaisie, l'un des modèles_preprocess_views_view_fields ( comme on le voit ici )

Dans votre template.php, faites ceci:

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

Dans Date 7.x-2.8 et versions ultérieures, toute la chaîne "date de début à date de fin" est traduisible. Cela signifie qu'un moyen simple de changer le "en" en "-" consiste à utiliser le module String Overrides . Téléchargez et activez simplement le module, puis visitez / admin / config / regional / stringoverrides. Sur cette page, ajoutez "! Date de début à! Date de fin" (sans guillemets) sous "Original" et "! Date de début -! Date de fin" (sans guillemets) sous "Remplacement". Cliquez sur enregistrer. Vous devrez peut-être également vider les caches de votre site avant de voir le changement.

Un avantage de cette méthode est qu'elle changera le "en" en "-" sur les nœuds et les vues à la fois.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.