как добавить дополнительные классы в поле даты в представлениях?


Я использую Drupal 7. Я создал представление, в котором используется поле даты. Я хотел бы создать дополнительные классы в поле даты для этого конкретного представления.

Например,

<div class="field-content">
 <span class="date">10</span>
 <span class="month">June</span>
 <span class="year">2011</span>
 <span class="time"> 8:00 </span>
</div>

Теперь у меня есть код:

<div class="field-content">
 <span class="date-display-single">10 June 2011, 8:00</span>
</div>

Как я могу сделать это шаг за шагом?

Author: john, 2011-06-10

5 answers

  1. Вам необходимо установить модуль токенов (последняя бета-версия включает полевые токены) и пользовательские форматеры модуль из http://drupal.org/project/custom_formatters.

  2. Затем включите его на странице модулей.

  3. Перейдите в раздел администратор -> структура->форматеры.

  4. Добавьте новый форматер, дайте ему имя, которое вам нравится.

  5. Формат: HTML + токены

  6. Тип поля: Дата

  7. Форматирование:

    <span class="day">[node:source:field-datefieldname:custom:j]</span>
    <span class="month">[node:source:field-datefieldname:custom:F]</span>
    <span class="year">[node:source:field-datefieldname:custom:Y]</span>
    
  8. Сохранить

Теперь вы создали пользовательский форматер даты, который вы можете использовать в своем представлении!

 3
Author: john, 2011-09-01 21:44:47

Вы можете сделать это без каких-либо дополнительных модулей.

  1. Добавьте поле даты. Исключите это из отображения. Выберите пользовательский и напишите d в поле (как в php дата за день). Измените "Настройки стиля" - Настройте поле HMTL (установите значение "нет") и настройте HTML-оболочку полей и меток (установите значение "нет"). Drupal date field
  2. Снова добавьте поле даты. Исключите это также из отображения. Выберите пользовательский и напишите M в поле (как в php-дате за месяц). Измените "Стиль Настройки" - Настройка поля HMTL (установлено значение "нет") и настройка HTML-кода оболочки полей и меток (установлено значение "нет").
  3. Снова добавьте поле даты. Исключите это также из отображения. Выберите пользовательский и напишите Y в поле (как в php дата за год). Измените "Настройки стиля" - Настройте поле HMTL (установите значение "нет") и настройте HTML-оболочку полей и меток (установите значение "нет").
  4. Добавьте поле даты еще раз (В ПОСЛЕДНИЙ РАЗ!). НЕ ИСКЛЮЧАЙТЕ ЭТО ИЗ ОТОБРАЖЕНИЯ. Выберите пользовательский и напишите G:i (как в php дата для часов и минут). Измените "Настройки стиля" - Настройте поле HMTL (установите значение "нет") и настройте HTML-оболочку полей и меток (установите значение "нет").
  5. Перепишите результаты этого поля окончательной даты. Используя шаблоны замены, вы можете затем написать что-то вроде этого:

    <div class="date">
      <span class="day">
        [created]
      </span>
      <span class="month">
        [created_1]
      </span>
      <span class="year">
        [created_2]
      </span>
    </div>
    

Drupal Rewrite Results

 4
Author: David Paul, 2012-07-13 08:16:30

Достаточно быстрым (если вы умеете писать на php), но слегка хакерским решением было бы переопределить шаблон для этого поля (см. Просмотр основ тематизации ), обработать исходное значение даты с помощью php, чтобы извлечь отдельные фрагменты, а затем склеить их вместе с выбранным вами HTML.

В качестве альтернативы, я думаю, вы могли бы написать пользовательский формат поля даты ( здесь - это тот, кто сделал это для D6). Это было бы хорошим решением на случай, если вы захотите повторно использовать пользовательский форматирование в ваших узлах.

 3
Author: marcvangend, 2017-04-13 12:46:59

Это невозможно с помощью пользовательского интерфейса представлений. Вам понадобится довольно сложный фрагмент кода, и мне было бы любопытно узнать о вашем варианте использования, прежде чем поощрять вас к выяснению этого.

Если бы вы спросили, как добавить классы в поле в целом, ответ был бы примерно таким:

  1. Нажмите на поле в интерфейсе Представлений .

  2. Разверните набор полей "Настройки стиля ".

  3. Проверьте "Настроить поле HTML" флажок, затем Флажок "Создать класс CSS".

  4. Введите желаемый класс.

Возможно, этого решения будет достаточно. В противном случае, я желаю вам удачи.

 1
Author: tim.plunkett, 2011-06-10 05:56:48

Это действительно легко, (как только вы узнаете, как)

Используйте настраиваемое поле набора дисплеев

Перейдите в раздел администратор/структура/ds/поля

(В меню: Структура - > Набор отображения - > Поля)

Нажмите кнопку добавить поле кода

Для моего варианта использования я ввел следующее

Этикетка

Что угодно

Сущности

Узел

Поле Ограничения

Оставлено пустым

Поле код

<div>
  <span class="mf-month">[node:created:custom:M]</span> 
  <span class="mf-day">[node:created:custom:d]</span>
</div>

Жетон

Проверено

После создания поля перейдите на страницу "Управление отображением" для типа контента и режима просмотра, которые вы настраиваете, и выберите новое настраиваемое поле.

Скриншот настройки выше

Screenshot of the settings page

 1
Author: chim, 2012-12-13 14:42:21