Как изменить «на» на «-» при отображении даты начала и окончания в представлениях?
10
При использовании представлений для отображения начальной и конечной даты по умолчанию добавляется текст «к» между двумя датами, мне было интересно, каким образом можно преобразовать «в» - или что-нибудь еще.
Когда у одного будут ответы, другой должен быть закрыт как дубликат. Хороший улов, @RajeevK
Mołot
@ Молот - вот почему я не пометил как дубликат. Надеюсь, у кого-то есть что-то к этому и измененные данные просмотров Я сделал в D6, но не это, а совсем другое.
RajeevK
Ответы:
9
Мои ответы предполагают, что у меня есть поле с именем field_event_date, которое отображается как Content: Event Date в моем представлении.
Ответ № 1 - Используйте шаблон представления
В расширенном разделе представления, в разделе «Другое» откройте «Информация о теме».
Скопируйте имя файла последней опции темы для содержимого поля: Дата события, в моем случае это будет view-view-field - VIEWMACHINENAME - BLOCKMACHINENAME - field-event-date.tpl.php
Скопируйте в него следующее:
<?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"]));?>
Это выведет что-то вроде 2014-08-09 20:15:00 - 2014-08-12 20:15:00, форматирование с использованием строки формата date () .
Ответ № 2 - Используйте поля просмотра
В разделе «Поля» добавьте «Содержимое: Дата события» и установите для параметра «Только дата начала»
Под Полями добавьте Global: Custom Text и установите Text в -
В разделе «Поля» добавьте «Содержимое: Дата события» и установите для параметра «Только дата окончания»
Под полевыми настройками, установите три поля выше как встроенные.
Это выведет что-то вроде воскресенья, 1 декабря 2013 г. - 12:00 - воскресенья, 1 декабря 2013 г. - 12:00, в зависимости от выбранного вами формата.
Ответ № 2b: сделать то же самое, но исключить дату начала из дисплея в первом поле; не добавлять Global: Custom Text; и переписать результаты поля даты окончания с шаблонами замены в нечто подобное [field_my_time] - [field_my_time_1].
Хьюго
4
Хотя приведенный выше ответ является правильным, лучше не использовать php в TPL, подобном этому. Drupal поставляется с кучей необычных API, одним из которых является template_preprocess_views_view_fields ( как видно здесь )
В вашем 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);}}}
В дате 7.x-2.8 и выше вся строка «дата начала и дата окончания» может быть переведена. Это означает, что простой способ изменить «на» на «-» - это использовать модуль переопределения строк . Просто скачайте и включите модуль, затем перейдите в / admin / config / Regional / stringoverrides. На этой странице добавьте «! Start-date to! End-date» (без кавычек) в «Original» и «! Start-date -! End-date» (без кавычек) в «Replacement». Нажмите сохранить. Вам также может потребоваться очистить кэш вашего сайта, прежде чем вы увидите изменения.
Одним из преимуществ этого метода является то, что он сразу изменит "на" на "-" на узлах и представлениях.
Ответы:
Мои ответы предполагают, что у меня есть поле с именем field_event_date, которое отображается как Content: Event Date в моем представлении.
Ответ № 1 - Используйте шаблон представления
В расширенном разделе представления, в разделе «Другое» откройте «Информация о теме».
Скопируйте имя файла последней опции темы для содержимого поля: Дата события, в моем случае это будет view-view-field - VIEWMACHINENAME - BLOCKMACHINENAME - field-event-date.tpl.php
Скопируйте в него следующее:
Это выведет что-то вроде 2014-08-09 20:15:00 - 2014-08-12 20:15:00, форматирование с использованием строки формата date () .
Ответ № 2 - Используйте поля просмотра
Это выведет что-то вроде воскресенья, 1 декабря 2013 г. - 12:00 - воскресенья, 1 декабря 2013 г. - 12:00, в зависимости от выбранного вами формата.
источник
[field_my_time] - [field_my_time_1]
.Хотя приведенный выше ответ является правильным, лучше не использовать php в TPL, подобном этому. Drupal поставляется с кучей необычных API, одним из которых является template_preprocess_views_view_fields ( как видно здесь )
В вашем template.php сделайте это:
источник
В дате 7.x-2.8 и выше вся строка «дата начала и дата окончания» может быть переведена. Это означает, что простой способ изменить «на» на «-» - это использовать модуль переопределения строк . Просто скачайте и включите модуль, затем перейдите в / admin / config / Regional / stringoverrides. На этой странице добавьте «! Start-date to! End-date» (без кавычек) в «Original» и «! Start-date -! End-date» (без кавычек) в «Replacement». Нажмите сохранить. Вам также может потребоваться очистить кэш вашего сайта, прежде чем вы увидите изменения.
Одним из преимуществ этого метода является то, что он сразу изменит "на" на "-" на узлах и представлениях.
источник