2009-03-21 5 views
2

댓글 ID를 기반으로 개별 댓글을 drupal에 인쇄하고 싶습니다. 어떻게해야합니까? 구글과 다른 소식통들은 나에게 아무것도주지 않았다. 고맙습니다. 당신은 코어 노드에서 오는 정보를 포함하여, 그것을하는 것처럼 주석을 표시해야하는 경우 (이, {comment}{comments} 아니다 제외)drupal에서 하나의 주석을 어떻게 인쇄합니까?

+0

이 컨텍스트는 무엇입니까? 댓글에 불과한 페이지를 원하십니까? 블록? 페이지 템플릿의 일부로 만드시겠습니까? 노드 템플릿에 단일 주석을 인쇄 하시겠습니까? –

답변

3

이튼의 제안이 좋다. modules/comment/comment.tpl.php의 기본 theme_comment 구현을 제외하면 $ node를 사용하지 않습니다.

그러나 한 가지 주석을 추출해야하는 경우 comment.tpl.php이 제공하는 일반 콘텐츠 서식을 사용하여 표시하는 것이 적절하지 않을 수 있기 때문에 약간 다르게 적용 할 것입니다.

function print_comment($cid) { 
    $sql = "SELECT * FROM {comment} c WHERE c.cid = %d"; 
    if ($comment = db_fetch_object(db_rewrite_sql(db_query($sql, $cid), 'c'))) { 
    return theme('my_special_comment_formatting', $comment); 
    } 
} 

그리고 물론

comment.tpl.php이하는 일에서 영감을 모듈의 hook_theme() 구현에 서식이 특별한 commment을 정의합니다.

2014-02 업데이트 : 2009 년 질문/답변입니다. 드루팔 8에서는, 당신은 단지 가상의 기본 SQL 데이터베이스에 액세스하고 싶지 않아 (어쨌든 이런 식으로하지 않을 것이지만, DBTNG을 사용), 그러나 단지 같은 것을 사용

if ($comment = entity_load('comment', $cid)) { 
    return entity_view($comment, $view_mode); 
} 
+0

Hah. 댓글/댓글 구분에주의 해 주셔서 감사합니다. 나는 api.drupal.org를 열었고 코드의 D7 버전을 보았습니다. 새로운 dev 릴리스에서는 테이블 이름이 단수로 변경되었습니다. – Eaton

+0

또한 전달 된 노드 객체가 없다면 몇 가지 PHP 고지문을 볼 수 있습니다 - $ node-> type은 기본 phptemplate \ _preprocess에서 가능한 템플릿 옵션 (예 : comment-story.tpl.php)을 구성하는 데 사용됩니다 \ _comment 함수. – Eaton

+0

테마를 호출 할 때'phptemplate_preprocess_comment'가 사용되지 않습니다 ('my_special_comment_formatting'). 그러나'theme ('comment')에 대한 좋은 캐치! 전처리 기능이 아니라 템플릿 만 검사했습니다. – FGM

3
 
function print_comment($cid) { 
    $sql = "SELECT * FROM {comments} WHERE cid = %d"; 
    if ($comment = db_fetch_object(db_query($sql, $cid))) { 
    $node = node_load($comment->nid); 
    return theme('comment', $comment, $node); 
    } 
} 
2

하나를 사용하는 이유 SQL 이렇게하려면, 두 드루팔 (Drupal API) 함수 호출이 전부입니다.

function print_comment($cid) 
{ 
    $comment = _comment_load($cid); 
    return theme('comment',$comment); 
} 
관련 문제