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
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
Réponses:
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
Sous la section Avancé de la vue, sous la section Autre, ouvrez Informations sur le thème
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
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
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.
[field_my_time] - [field_my_time_1]
.
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);
}
}
}
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.