Рейтинг:0

Служба токенов не заменяет текст термином в качестве токена

флаг rs

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

Пример:
Привет, [term:field_first_name], ...

Термин загружается правильно, но текст не меняется:

    $term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($tid);

    $token_service = \Drupal::token();
    $текст = $token_service->заменить($текст, [
        'термин' => $термин,
    ]);

    print_r ($ текст);

Печать возвращает:
Привет, [term:field_first_name], ...
вместо:
Привет, Джон, ...

В настоящее время я использую drupal версии 9.3.2.

apaderno avatar
флаг us
Добро пожаловать в Drupal Ответы! Вы уверены, что поле *field_first_name* добавлено в термины таксономии? Судя по названию, это скорее пользовательское поле.
флаг rs
@apaderno Спасибо за ваш ответ, но это поле, я просто хотел упростить пример.
Рейтинг:0
флаг cn

Drupal «из коробки» имеет только базовую поддержку токенов, которые могут заменить стандартные поля основных объектов, такие как [термин:имя] или же [термин:описание].

Настроенные поля, обычно с префиксом поле_, нужен модуль Токен быть установленным. затем [термин:field_first_name] будет заменено, если поле существует.

флаг rs
Спасибо за ваш ответ. Я знаю, что не упомянул об этом, но я не хотел полагаться на модули, думая, что они уже встроены. Я выбрал другой путь, зациклившись на термине: ```foreach($term as $field_name => $_ )```, а затем просто использовал str_replace, чтобы заменить текст именами полей
4uk4 avatar
флаг cn
Я согласен, что владельцы сайтов на Drupal не должны устанавливать большое количество модулей, включая бета-версии или версии для разработчиков. Но есть несколько стандартных модулей, которые вы можете и должны использовать, если вам нужна функциональность. А такие модули, как Token, можно устанавливать и удалять с очень низким риском, поскольку они не изменяют схему базы данных.

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

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