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.
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
Na seção Avançado da visualização, na seção Outros, abra Informações sobre o tema
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
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
Em Campos, adicione Conteúdo: Data do Evento e defina a Exibição como "Somente Data de Início"
Em Campos, adicione Global: Texto personalizado e defina Texto como -
Em Campos, adicione Conteúdo: Data do Evento e defina a Exibição como "Somente Data Final"
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.
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);}}}
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.
Respostas:
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
Na seção Avançado da visualização, na seção Outros, abra Informações sobre o tema
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
Copie o seguinte para ele:
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
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.
fonte
[field_my_time] - [field_my_time_1]
.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:
fonte
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.
fonte