Як змінити "на" на "-", відображаючи дату початку та кінця у поданнях?


10

Коли ви використовуєте представлення для відображення дати початку та закінчення за замовчуванням, вона додає текст "до" між двома датами, мені було цікаво, який підходящий спосіб перетворення "в" - "або" або що-небудь інше.

Дякую


1
Те саме питання - drupal.stackexchange.com/questions/79311/…
RajeevK

Коли у одного будуть відповіді, інші повинні закритись як дублікат. Хороший улов, @RajeevK
Mołot

@ Mołot - Ось чому я не позначив як дублікат. Сподіваюся, хтось має щось до цього та змінює дані переглядів. Я робив у D6, але не ця, а зовсім інша річ.
RajeevK

Відповіді:


9

Мої відповіді припускають, що у мене є поле під назвою "field_event_date", яке відображається як Зміст: Дата події.

Відповідь №1 - Використовуйте шаблон перегляду

  1. У розділі «Розширений розділ» подання в розділі Інші відкрийте інформацію про тему

  2. Скопіюйте ім'я останнього параметра теми для вмісту поля: Дата події, в моєму випадку це буде поле перегляду-поле - VIEWMACHINENAME - BLOCKMACHINENAME - field-event-date.tpl.php

  3. Скопіюйте в нього:

    <?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 - Використовуйте поля перегляду

  1. У розділі Поля додайте вміст: дата події та встановіть на дисплеї "Тільки дата початку"
  2. У розділі Поля додайте глобальний: спеціальний текст та встановіть текст на -
  3. У розділі Поля додайте вміст: дата події та встановіть для дисплея "Лише кінцеву дату"
  4. У розділі Налаштування поля встановіть три поля вище як Inline.

Це виведе щось на зразок неділі, 1 грудня 2013 р. - 12:00 - неділя, 1 грудня 2013 р. - 12:00, виходячи із обраного вами формату.


Відповідь №2b: зробіть те саме, але виключіть дату початку з відображення у першому полі; не додавати глобальний: спеціальний текст; і переписати результати поля кінцевої дати з шаблонами заміни на щось подібне [field_my_time] - [field_my_time_1].
Гюго

4

Хоча відповідь вище правильна, найкраще практикувати не використовувати php у TPL, як це. Drupal постачається з безліччю фантазійних API, одним із це шаблон_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);
  }
 }
}

2

У даті 7.x-2.8 і вище весь рядок "дата початку до дати закінчення" може бути перекладається. Це означає, що простий спосіб змінити "на" на "-" - це використовувати модуль String Overrides . Просто завантажте та ввімкніть модуль, а потім відвідайте / admin / config / regional / stringoverrides. На цій сторінці додайте "! Початкову дату до! Кінцевої дати" (без лапок) у розділі "Оригінал" та "! Дата початку -! Кінцева дата" (без лапок) у розділі "Заміна". Клацніть Зберегти. Також вам може знадобитися очистити кеші вашого сайту, перш ніж побачити зміни.

Однією з переваг цього методу є те, що він змінить «на» на «-» у вузлах та видах одразу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.