я использую Приватное сообщение версия модуля 8.x-2.0-beta16 и я хочу изменить сообщение с «Отправить личное сообщение»
к 'Отправить личное сообщение @username'
который должен отображать имя пользователя со страницы пользователя, которую мы посещаем и с которой связываемся.
Модуль использует следующий код.
'#title' => t('Отправить личное сообщение'),
Есть ли способ переопределить эту строку напрямую и вставить имя пользователя? Я пытался без успеха.
Соответствующий код находится в: личное_сообщение\src\Service\PrivateMessageService.php#L336-382.
общедоступная функция createRenderablePrivateMessageThreadLink (массив и $ build, EntityInterface $ Entity, EntityViewDisplayInterface $ display, $ view_mode) {
если ($display->getComponent('private_message_link')) {
если ($entity instanceof UserInterface) {
$автор = $сущность;
}
еще {
$author = $entity->getOwner();
}
$current_user = \Drupal::currentUser();
если ($current_user->isAuthenticated()) {
if ($current_user->hasPermission('использовать систему личных сообщений') && $current_user->id() != $author->id()) {
$members = [$current_user, $author];
$thread_id = $this->mapper->getThreadIdForMembers($members);
если ($thread_id) {
$url = Url::fromRoute('entity.private_message_thread.canonical', ['private_message_thread' => $thread_id], ['attributes' => ['class' => ['private_message_link']]]);
$build['private_message_link'] = [
'#тип' => 'ссылка',
'#url' => $url,
'#title' => t('Отправить личное сообщение'),
'#prefix' => '<div class="private_message_link_wrapper">',
'#суффикс' => '</div>',
];
}
еще {
$url = Url::fromRoute('private_message.private_message_create', [], ['query' => ['recipient' => $author->id()]]);
$build['private_message_link'] = [
'#тип' => 'ссылка',
'#url' => $url,
'#title' => t('Отправить личное сообщение'),
'#prefix' => '<div class="private_message_link_wrapper">',
'#суффикс' => '</div>',
];
}
}
}
еще {
$url = Url::fromRoute('user.login');
$build['private_message_link'] = [
'#тип' => 'ссылка',
'#url' => $url,
'#title' => t('Отправить личное сообщение'),
'#prefix' => '<div class="private_message_link_wrapper">',
'#суффикс' => '</div>',
];
}
}
}