Jak zmienić „na” na „-”, wyświetlając datę rozpoczęcia i zakończenia w widokach?
10
Używając widoków do domyślnego wyświetlania daty początkowej i końcowej, dodaje „do” tekstu pomiędzy dwiema datami, zastanawiałem się, jaki jest odpowiedni sposób konwersji „na” na „-” lub cokolwiek innego.
Gdy ktoś będzie miał odpowiedzi, drugi powinien zostać zamknięty jako duplikat. Dobry połów, @RajeevK
Mołot
@ Mołot - Dlatego nie zgłosiłem jako duplikatu. Mam nadzieję, że ktoś ma coś w tym kierunku i zmodyfikował dane wyświetleń. Zrobiłem w D6, ale nie ta, ale bardzo inna rzecz.
RajeevK
Odpowiedzi:
9
Moje odpowiedzi zakładają, że mam pole o nazwie „field_event_date”, które w moim widoku pokazuje się jako Treść: Data wydarzenia.
Odpowiedź nr 1 - Użyj widoku szablonu
W sekcji Zaawansowane widoku, w sekcji Inne otwórz Informacje o motywie
Skopiuj nazwę pliku ostatniej opcji motywu dla Treści pola: Data zdarzenia, w moim przypadku będzie to widok-pole-widok - NAZWA_MACHINU - NAZWA_MAKLARU - pole-data-daty.tpl.php
Skopiuj do niego następujące elementy:
<?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"]));?>
Spowoduje to wygenerowanie czegoś takiego jak 2014-08-09 20:15:00 - 2014-08-12 20:15:00, formatowanie przy użyciu ciągu formatu date () .
Odpowiedź # 2 - Użyj widoku pól
W polu Pola dodaj Treść: Data wydarzenia i ustaw Wyświetlacz na „Tylko data rozpoczęcia”
W polu Pola dodaj Globalny: Tekst niestandardowy i ustaw Tekst na -
W polu Pola dodaj Treść: Data wydarzenia i ustaw Wyświetlacz na „Tylko data końcowa”
W obszarze Ustawienia pól ustaw trzy pola powyżej jako Inline.
Spowoduje to wygenerowanie czegoś takiego jak niedziela, 1 grudnia 2013 r. - 12:00 - niedziela, 1 grudnia 2013 r. - 12:00, w zależności od wybranego formatu.
Odpowiedź # 2b: zrób to samo, ale wyklucz datę początkową z wyświetlacza w pierwszym polu; nie dodawaj Global: Custom Text; i przepisz wyniki pola daty zakończenia wzorcami zastępującymi do czegoś podobnego [field_my_time] - [field_my_time_1].
Hugo
4
Chociaż powyższa odpowiedź jest prawidłowa, najlepszą praktyką jest nie używanie php w takiej licencji TPL. Drupal zawiera kilka fantazyjnych API, jednym z nich jest szablon_preprocess_views_view_fields ( jak widać tutaj )
Zrób to w pliku template.php:
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);}}}
W wersjach 7.x-2.8 i wyższych cały ciąg „Data początkowa do końcowa” jest przetłumaczalny. Oznacza to, że łatwym sposobem na zmianę „z” na „-” jest użycie modułu Zastępowania ciągów . Wystarczy pobrać i włączyć moduł, a następnie odwiedzić / admin / config / regional / stringoverrides. Na tej stronie dodaj „! Data początkowa do! Data końcowa” (bez cudzysłowów) w polach „Oryginał” i „! Data początkowa -! Data końcowa” (bez cudzysłowów) w obszarze „Zamiennik”. Kliknij zapisz. Przed zmianą może być konieczne opróżnienie pamięci podręcznej witryny.
Jedną z zalet tej metody jest to, że zmieni ona „na” na „-” na węzłach i widokach jednocześnie.
Odpowiedzi:
Moje odpowiedzi zakładają, że mam pole o nazwie „field_event_date”, które w moim widoku pokazuje się jako Treść: Data wydarzenia.
Odpowiedź nr 1 - Użyj widoku szablonu
W sekcji Zaawansowane widoku, w sekcji Inne otwórz Informacje o motywie
Skopiuj nazwę pliku ostatniej opcji motywu dla Treści pola: Data zdarzenia, w moim przypadku będzie to widok-pole-widok - NAZWA_MACHINU - NAZWA_MAKLARU - pole-data-daty.tpl.php
Skopiuj do niego następujące elementy:
Spowoduje to wygenerowanie czegoś takiego jak 2014-08-09 20:15:00 - 2014-08-12 20:15:00, formatowanie przy użyciu ciągu formatu date () .
Odpowiedź # 2 - Użyj widoku pól
Spowoduje to wygenerowanie czegoś takiego jak niedziela, 1 grudnia 2013 r. - 12:00 - niedziela, 1 grudnia 2013 r. - 12:00, w zależności od wybranego formatu.
źródło
[field_my_time] - [field_my_time_1]
.Chociaż powyższa odpowiedź jest prawidłowa, najlepszą praktyką jest nie używanie php w takiej licencji TPL. Drupal zawiera kilka fantazyjnych API, jednym z nich jest szablon_preprocess_views_view_fields ( jak widać tutaj )
Zrób to w pliku template.php:
źródło
W wersjach 7.x-2.8 i wyższych cały ciąg „Data początkowa do końcowa” jest przetłumaczalny. Oznacza to, że łatwym sposobem na zmianę „z” na „-” jest użycie modułu Zastępowania ciągów . Wystarczy pobrać i włączyć moduł, a następnie odwiedzić / admin / config / regional / stringoverrides. Na tej stronie dodaj „! Data początkowa do! Data końcowa” (bez cudzysłowów) w polach „Oryginał” i „! Data początkowa -! Data końcowa” (bez cudzysłowów) w obszarze „Zamiennik”. Kliknij zapisz. Przed zmianą może być konieczne opróżnienie pamięci podręcznej witryny.
Jedną z zalet tej metody jest to, że zmieni ona „na” na „-” na węzłach i widokach jednocześnie.
źródło