/ / Защо HTML визуализацията е обикновен текст в проста промяна в заглавието? - drupal, drupal-7, drupal-module, drupal-views

Защо HTML рендерирането като обикновен текст се променя в проста промяна на заглавието? - drupal, drupal-7, drupal-модули, drupal-мнения

Успях да променя всеки възел Връзка за коментар текст "заглавие" (който по подразбиране прави "Добавяне на нов коментар") с кода по-долу, но ако добавя HTML, той се показва като обикновен текст. Опитвам се да добавя икона на FontAwesome преди този текст <i class="fa fa-comments" aria-hidden="true"></i>

въведете описанието на изображението тук

function MODULE_node_view_alter(&$build) {
$node = $build["#node"];
if (isset($build["links"]["comment"]["#links"]["comment-add"])) {
$build["links"]["comment"]["#links"]["comment-add"]["title"] = "<i class="fa fa-comments" aria-hidden="true"></i> Add Comment";
}
}

Всичко, което преминах, е параметър $ build, но не съм сигурен дали проблемът е или не.

Някакви идеи?

Отговори:

2 за отговор № 1

Можете да изобразите HTML в линкове, като зададете html опция за TRUE, Проверка theme_links () за да видите всички опции.

Например

theme("links", array(
"links" => array(
"title" => "<span>Title</span>",
"href" => "node/1",
"html" => FALSE, // default
)
))

ще доведе до избягване на маркера span, докато

theme("links", array(
"links" => array(
"title" => "<span>Title</span>",
"href" => "node/1",
"html" => TRUE,
)
))

ще превърне span тага като html.

Така че във вашия случай трябва да добавите следния ред.

$build["links"]["comment"]["#links"]["comment-add"]["html] = TRUE;

0 за отговор № 2

Ако не можете да включите html в това поле, тъй като това е типът поле, което може да се наложи да остане като обикновен текст и преводимо, можете да използвате css, за да добавите иконата.

    a:before {
font-family: FontAwesome;
content: "f086";
}


<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>

<a>Add Comment</a>