2017-09-28 4 views
0

각 노드의 Comment Link '제목'텍스트 (기본적으로 '새 주석 추가'를 렌더링 함)를 아래 코드와 함께 변경할 수 있지만 HTML을 추가하면 일반 텍스트로 렌더링됩니다. 나는이 텍스트 <i class="fa fa-comments" aria-hidden="true"></i>간단한 '제목'변경으로 HTML 렌더링이 일반 텍스트로 나타나는 이유는 무엇입니까?

enter image description here

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'; 
    } 
} 

내가 통과 한 모든이 $ 빌드 매개 변수입니다 전에 FontAwesome 아이콘을 추가하기 위해 노력하고있어,하지만 난이 문제인지 여부를 확신입니다.

아이디어가 있으십니까?

답변

1

당신은 TRUEhtml 옵션을 설정하여 링크에서 HTML을 렌더링 할 수 있습니다. 모든 옵션을 보려면 theme_links()을 확인하십시오.

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

가 HTML로 스팬 태그를 렌더링 할 때 예

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

탈출되는 스팬 태그 초래할 것이기

.

그래서 다음 행을 추가해야합니다.

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

해당 필드에 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>

+0

CSS와 유니 코드를 사용하면 훨씬 쉽습니다. 고맙습니다! :) – WebMW

+0

내가 찾을 수있는 단점은 앵커 내에 위치하지 않기 때문에 앵커에 마우스를 올리면 색이 부족하다는 것입니다. 당분간은 가능 하겠지만, PHP로이 작업을 수행 할 수있는 방법에 대한 아이디어는 아직 공개되지 않았습니다. – WebMW

관련 문제