tôi đang sử dụng Tin nhắn riêng phiên bản mô-đun 8.x-2.0-beta16 và tôi muốn thay đổi thông báo từ 'Gửi tin nhắn riêng'
đến 'Gửi tin nhắn riêng tới @username'
sẽ hiển thị tên người dùng từ trang của người dùng mà chúng tôi đang truy cập và liên hệ.
Mô-đun sử dụng đoạn mã sau.
'#title' => t('Gửi tin nhắn riêng'),
Có cách nào để ghi đè trực tiếp dòng này và chèn tên người dùng không? Tôi đã cố gắng mà không thành công.
Mã có liên quan được đặt tại: private_message\src\Service\PrivateMessageService.php#L336-382.
chức năng công cộng createRenderablePrivateMessageThreadLink(mảng &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
if ($display->getComponent('private_message_link')) {
if ($entity instanceof UserInterface) {
$tác giả = $thực thể;
}
khác {
$author = $entity->getOwner();
}
$current_user = \Drupal::currentUser();
if ($current_user->isAuthenticated()) {
if ($current_user->hasPermission('sử dụng hệ thống nhắn tin riêng tư') && $current_user->id() != $author->id()) {
$members = [$current_user, $author];
$thread_id = $this->mapper->getThreadIdForMembers($members);
nếu ($thread_id) {
$url = Url::fromRoute('entity.private_message_thread.canonical', ['private_message_thread' => $thread_id], ['attributes' => ['class' => ['private_message_link']]]);
$build['private_message_link'] = [
'#type' => 'liên kết',
'#url' => $url,
'#title' => t('Gửi tin nhắn riêng'),
'#prefix' => '<div class="private_message_link_wrapper">',
'#suffix' => '</div>',
];
}
khác {
$url = Url::fromRoute('private_message.private_message_create', [], ['query' => ['recipient' => $author->id()]]);
$build['private_message_link'] = [
'#type' => 'liên kết',
'#url' => $url,
'#title' => t('Gửi tin nhắn riêng'),
'#prefix' => '<div class="private_message_link_wrapper">',
'#suffix' => '</div>',
];
}
}
}
khác {
$url = Url::fromRoute('user.login');
$build['private_message_link'] = [
'#type' => 'liên kết',
'#url' => $url,
'#title' => t('Gửi tin nhắn riêng'),
'#prefix' => '<div class="private_message_link_wrapper">',
'#suffix' => '</div>',
];
}
}
}