Успях да променя всеки възел Връзка за коментар текст "заглавие" (който по подразбиране прави "Добавяне на нов коментар") с кода по-долу, но ако добавя 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>