Рейтинг:2

Как я могу изменить формат, используемый для ?

флаг ng

Я использую Drupal 9 для отображения RSS-канала с помощью модуля Aggregator. Для импортных товаров дата <pubDate>Wed, 24 Nov 2021 20:05:46 +0000</pubDate> отображается как 2 месяца 3 недели назад.

Поля отметки времени уже настроены на использование длинный формат даты, который установлен в М Дж, Й.

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

/**
 * Реализует hook_preprocess_aggregator_feed().
 */
функция mymodule_preprocess_aggregator_feed(&$variables) {
  $variables['pubDate'] = \Drupal::service('date.formatter')->format($date, 'long');
}

Любая помощь будет принята с благодарностью.

apaderno avatar
флаг us
Имя функции предварительной обработки не начинается с *templateName*; это означает, что хук не вызывается. При вызове `\Drupal::service('date.formatter')->format($date, 'long')` без инициализации `$date` произойдет неустранимая ошибка *PHP: Uncaught InvalidArgumentException: Отметка времени должна быть числовым.* ошибка.
Scott B avatar
флаг ng
да, я знаю, я заглушил это, потому что я не хочу, чтобы мое фактическое имя шаблона было в этом посте
Scott B avatar
флаг ng
помимо имени шаблона, как мне правильно инициализировать переменную $date для этого?
apaderno avatar
флаг us
В этом случае просто используйте `mymodule_preprocess_aggregator_feed()` в качестве имени хука, и пользователи будут знать, что вы не используете настоящее имя модуля, а заменили его на `mymodule`. Вы также должны показать код, который работает, или точно описать, что ожидаемый результат отличается от того, что вы получаете. Если вы скажете *это не работает* для кода, который кажется неполным или использует переменные без их предварительной инициализации, это не даст пользователям понять, что именно вы не понимаете при выполнении описанной задачи.
Scott B avatar
флаг ng
хорошо. я изменил его на мой модуль. Можете ли вы на самом деле помочь мне понять, как это исправить или нет? Это немного не в моей лиге, поэтому я написал в первую очередь

Ответить или комментировать

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