Como alterar "para" para "-" enquanto exibe as datas de início e término nas visualizações?

10

Ao usar modos de exibição para exibir data de início e término por padrão, ele adiciona texto "a" entre duas datas, fiquei pensando qual é a maneira apropriada de converter "para" para "-" ou qualquer outra coisa.

obrigado

Ilama
fonte
1
O mesmo tipo de pergunta - drupal.stackexchange.com/questions/79311/…
RajeevK
Quando um tiver respostas, outro deverá ser fechado como duplicado. Boa captura, @RajeevK
Mołot
@ Mołot - Por isso não sinalizei como duplicado. Espero que alguém tenha algo a seu favor e modifique os dados das visualizações. Eu fiz no D6, mas não este, mas uma coisa muito diferente.
RajeevK

Respostas:

9

Minhas respostas assumem que eu tenho um campo chamado "field_event_date" que mostra como Conteúdo: Data do Evento na minha visualização.

Resposta nº 1 - Use o modelo de exibição

  1. Na seção Avançado da visualização, na seção Outros, abra Informações sobre o tema

  2. Copie o nome do arquivo da última opção de tema para Conteúdo do campo: Data do evento. No meu caso, será visualizações-vista-campo - VIEWMACHINENAME - BLOCKMACHINENAME - field-event-date.tpl.php

  3. Copie o seguinte para ele:

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

Isso produzirá algo como 2014-08-09 20:15:00 - 2014-08-12 20:15:00, formato usando a string de formato date () .

Resposta 2 - Use os campos de exibição

  1. Em Campos, adicione Conteúdo: Data do Evento e defina a Exibição como "Somente Data de Início"
  2. Em Campos, adicione Global: Texto personalizado e defina Texto como -
  3. Em Campos, adicione Conteúdo: Data do Evento e defina a Exibição como "Somente Data Final"
  4. Em Configurações do campo, defina os três campos acima como Inline.

Isso produzirá algo como domingo, 1 de dezembro de 2013 - 12:00 - domingo, 1 de dezembro de 2013 - 12:00, com base no formato que você escolheu.

Scott Joudry
fonte
Resposta nº 2b: faça o mesmo, mas exclua a data de início da exibição no primeiro campo; não adicione Global: texto personalizado; e reescreva os resultados do campo de data final com padrões de substituição para algo parecido [field_my_time] - [field_my_time_1].
Hugo Hugo
4

Embora a resposta acima esteja correta, é uma prática recomendada não usar php em um TPL como este. O Drupal vem com várias APIs sofisticadas, uma das quais é template_preprocess_views_view_fields ( como visto aqui )

No seu template.php, faça o seguinte:

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
fonte
2

Na Data 7.x-2.8 e superior, toda a cadeia "data de início até a data de término" é traduzível. Isso significa que uma maneira fácil de alterar o "para" para um "-" é usar o módulo Substituições de String . Simplesmente faça o download e ative o módulo, depois visite / admin / config / regional / stringoverrides. Nessa página, adicione "! Data de início até! Data de término" (sem aspas) em "Original" e "! Data de início -! Data de término" (sem aspas) em "Substituição". Clique em salvar. Você também pode precisar liberar os caches do site antes de ver a alteração.

Um benefício desse método é que ele altera o "para" para um "-" nos nós e nas visualizações de uma só vez.

peezy
fonte