Как превратить ссылку в кнопку? - PullRequest
2 голосов
/ 09 октября 2019

У меня есть сайт 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');
  }
}
...