У меня есть сайт Drupal 8 с модулем Private Message. Я хочу отобразить контактную кнопку вместо контактной ссылки.
Я создал пользовательский модуль, он работает. Но я предпочитаю помещать код в тему, а не создавать новый модуль.
<?php
/**
* @file
* Hook implementations of private_message_contact_button module.
*/
use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
use Drupal\Core\Entity\EntityInterface;
function private_message_contact_button_node_view_alter(&$build) {
if (array_key_exists('private_message_link', $build)) {
$build['private_message_link']['#attributes']['class'] = array('btn-success', 'btn-sm', 'btn');
$build['private_message_link']['#title'] = t('<i class="fas fa-comment-dots fa-lg"></i> Send a message');
}
}
function private_message_contact_button_user_view_alter(&$build) {
if (array_key_exists('private_message_link', $build)) {
$build['private_message_link']['#attributes']['class'] = array('btn-success', 'btn-sm', 'btn');
$build['private_message_link']['#title'] = t('<i class="fas fa-comment-dots fa-lg"></i> Send a message');
}
}
Я удалил свой пользовательский модуль и скопировал приведенный ниже код в мою тему, но он не работает.
Как использовать код в теме?
bootstrap_subtheme_front_office_old.theme
:
/**
* Private Message button.
*/
function bootstrap_subtheme_front_office_old_node_view_alter(&$build) {
if (array_key_exists('private_message_link', $build)) {
$build['private_message_link']['#attributes']['class'] = array('btn-success', 'btn-sm', 'btn');
$build['private_message_link']['#title'] = t('<i class="fas fa-comment-dots fa-lg"></i> Send a message');
}
}
function bootstrap_subtheme_front_office_old_user_view_alter(&$build) {
if (array_key_exists('private_message_link', $build)) {
$build['private_message_link']['#attributes']['class'] = array('btn-success', 'btn-sm', 'btn');
$build['private_message_link']['#title'] = t('<i class="fas fa-comment-dots fa-lg"></i> Send a message');
}
}