मैं प्रत्येक नोड को बदलने में सक्षम हूं टिप्पणी लिंक "शीर्षक" पाठ (कि डिफ़ॉल्ट रेंडर पर "नई टिप्पणी जोड़ें") नीचे दिए गए कोड के साथ, लेकिन अगर मैं 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";
}
}
मैंने जो भी पास किया है वह एक $ बिल्ड पैरामीटर है, लेकिन मैं इस बात का अनिश्चित हूं कि यह मुद्दा है या नहीं।
कोई विचार?
उत्तर:
जवाब के लिए 2 № 1आप लिंक सेट करके लिंक में HTML रेंडर कर सकते हैं html
विकल्प TRUE
। चेक theme_links () सभी विकल्पों को देखने के लिए।
उदाहरण के लिए
theme("links", array(
"links" => array(
"title" => "<span>Title</span>",
"href" => "node/1",
"html" => FALSE, // default
)
))
स्पैन टैग में बच निकलेगा, जबकि
theme("links", array(
"links" => array(
"title" => "<span>Title</span>",
"href" => "node/1",
"html" => TRUE,
)
))
html के रूप में स्पैन टैग प्रदान करेगा।
तो आपके मामले में आपको निम्नलिखित पंक्ति जोड़ने की आवश्यकता है।
$build["links"]["comment"]["#links"]["comment-add"]["html] = TRUE;
जवाब के लिए 0 № 2
यदि आप html को उस फ़ील्ड में शामिल नहीं कर सकते हैं, तो यह उस प्रकार का फ़ील्ड है जिसे सादे पाठ और अनुवाद योग्य के रूप में रहने की आवश्यकता हो सकती है, आप आइकन को प्रस्तुत करने के लिए सीएसएस का उपयोग कर सकते हैं।
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>