2010-01-14 1 views
0

여기에 심한 질문이 있습니다.Drupal 6의 스레딩 코멘트 마크 업 변경

드루팔은 단 4 가지 방법으로 사용자에게 thems를 표시 할 수있는 선택권을주고 코멘트를 처리

: Flat list - collapsed, Flat list - expanded, Threaded list - collapsedThreaded list - expanded.

<div class="comment"> 
    <!-- comment's content --> 
</div> 
<div class="indented"> 
    <!-- next comment is an 'answer' to the previous comment! --> 
    <div class="comment"> 
     <!-- comment's content --> 
    </div> 
</div> 

하지만 난이 '부모'주석의 같은 DOM 요소 내부의 '아이들'의견을 가지고 싶다 : 같은 마크 업을 제공하는 마지막 하나를 사용하여

임. 따라서, 예를 들어, 뭔가 같은 : 내가하지 this blog (사용 워드 프레스)로 나사 의견을 표시 할 수 있도록 마크 업을하기 위해

<div class="comment"> 
    <!-- comment's content --> 
    <div class="indented"> 
     <!-- next comment is an 'answer' to the previous comment! --> 
     <div class="comment"> 
      <!-- comment's content --> 
     </div> 
    </div> 
</div> 

.

그것은 같은 마크 업 사용 : 그래서

<ul> 
    <li> 
     <div class="comment> 
      <!-- comment's content --> 
     </div> 
     <ul class="children"> 
      <li> 
       <div class="comment> 
        <!-- comment's content --> 
       </div> 
      </li> 
     </ul> 
    </li> 
</ul> 

을, 그렇게 할 수있는 drupalish 방법은 무엇입니까 (더 나은 내가 필요한 모든 변화가 template.php 또는 템플릿 파일에있는 경우)?

답변

1

comment_render() 내부적으로 모든 것을 수행하는 것으로 보입니다. 따라서 이것을 다시 작성해야합니다. 불행히도 node_show()을 사용하여 노드를 comment_render로 렌더링하면 (재정의 할 수있는 테마 함수를 통하지 않고) 자동으로 실행되므로 원하는 작업을 수행하기 위해 많은 작업을 수행해야합니다.

첫째로 당신은 코멘트합니다 (talk module가이 작업을 수행)

function talk_nodeapi(&$node, $op) { 
    switch ($op) { 
    case 'load': 
     if (talk_activated($node->type) && arg(0) == 'node' && !arg(2)) { 
     // Overwrite setting of comment module and set comments for this node to disabled. 
     // This prevents the comments of being displayed. 
     $output['comment_original_value'] = $node->comment; 
     $output['comment'] = 0; 
     return $output; 
     } 
     break; 
    } 
} 

그럼 당신은 (중첩 포함) comment_render의 자신의 구현을 작성해야합니다 없는지 드루팔 코어를 설득 hook_nodeapi를 사용해야하고 있음을 호출합니다 노드가 렌더링 된 후 (아마도 템플릿 페이지 나 전처리 함수에서).

+0

+1 많은 작업이지만 분명히 할 수 있습니다. – googletorp