드루팔에서 BLOG를 카테고리화 하는 방법

제목 : 드루팔에서 BLOG를 카테고리화 하는 방법

1. 관리 > 컨텐츠 관리 > 태그 모음 에서,
   하나의 태그 모음 더하기에서 "블로그 카테고리"로 만드세요.
   이때 "종류"라는 항목에서 "블로그"를 체크해 주세요.
   만일 블로깅 본문이 여러 카테고리에 동시에 분포하게 하고 싶다면,
   "복수 선택"이라는 항목을 체크해 주세요.
   참고로 "필수 항목"을 체크하면 카테고리 선택을 꼭 해야 하지요.

2. 위 태그 모음을 저장한 후, "태그 더하기" 항목에서
   원하는 블로그 카테고리를 태그로 계속 추가합니다.
   예) 태그 추가하기 : 신변잡기, 웹서핑, 공부

3. 블로그를 하나 써 보시면, 카테고리를 선택하는 메뉴가 보일 겁니다.

4. Views 모듈을 이용해서, 카테고리와 그 링크를 출력합니다.  --- 수정 : 이 방법은 실패.
4. Taxonomy Block / Advanced Taxonomy Block 에 관한 글이 팔팔.오알지에 있습니다 - 추천하는 방법.
4. PHP Snippet(가벼운 코드/팁들)을 하나 이용해서, 카테고리와 그 링크를 출력합니다. 이것도 잘 작동하는 방법입니다.

 
4번 항목은 좀 더 자세한 설명이 필요한데, 아래를 참고해 주세요.

* 내용이 잘못 돼서 수정합니다. 죄송합니다.
 
Views 모듈을 이용해서, 카테고리와 그 링크를 출력하기.
 
 
1. 관리 > 사이트 구성 > Views 로 가서 Add 메뉴를 누르세요.

2. 이름 항목에 적절한 명칭을 넣으세요.
예를 들어 "blog_category_view"라고.
주의) 영문자와 언더바 이외에는 허용되지 않습니다.

3. "블록" 항목을 펼쳐서, "Provide Block"을 체크하세요.
뷰 타입은 "List View"가 블로그 카테고리 표시에 적절할 듯.
Nodes per Block: 항목에도 카테고리 표시 갯수를 입력.

4. "블록"의 "Fields" 세부항목을 펼쳐서,
Add Field의 "Taxonomy : Terms for 블로그 카테고리"를 선택하시고, 우측의 Add Field 버튼을 누르세요.
참고로 "블로그 카테고리"는 아까 위 단계에서 미리 만들어 둔 것이죠.

5. 맨 아래 "Save" 버튼을 눌러 새로 만든 "blog_category_view"를 저장합니다.

6. 관리 > 사이트 구성 > 블록에 가서,
위에서 추가한, "blog_category_view" 블럭을 적절한 위치에 추가하시면 끝! 테스트 해 보세요.
  

 


몇 번의 검색 끝에, 답을 찾은 것 같습니다.
PHP Snippet(가벼운 코드/팁들)을 하나 이용해서, 카테고리와 그 링크를 출력하는 법입니다.
 
<?php
  $vocabulary_id
= 1;   // 주의 : $vocabulary_id 값을 조정!
 
$result = db_query("SELECT d.tid, d.name FROM {term_data} d WHERE d.vid = $vocabulary_id GROUP BY d.tid, d.name ORDER BY d.name");
 
$items = array();
  while (
$category = db_fetch_object($result)) {
    
$items[] = l($category->name, 'taxonomy/term/'. $category->tid);
  }
  print
theme('item_list', $items);
?>

 
주의할 점은, $vocabulary_id 에 입력될 번호를 잘 확인해서 넣어야 합니다.
그 번호를 확인하려면,
관리 > 컨텐츠 관리 > 카테고리 항목을 열어서,
아까 만들어 둔 "블로그 카테고리"의 "태그 모음 고치기" 링크 위에서, taxonomy/edit/vocabulary/5 와 같은 형태의 URL을 확인하세요. 그때 제일 뒤에 있는 숫자(예:5)가 $vocabulary_id 입니다.

참고 : http://drupal.org/node/34256

* 드루팔은 시간을 들여서 찾거나 커스터마이징 하면 못하는 게 거의 없더군요. 여러 프로젝트를 하면서 그 점이 참 좋았습니다.

 


참고 : 별도 방법.
Taxonomy Menu 를 이용해서, 네비게이션 메뉴에 카테고리를 추가할 수 있습니다.
http://drupal.org/project/taxonomy_menu

위 모듈을 설치/활성한 후,
관리 > 모듈별 설정 > Taxonomy Menu settings 에 가서,
아까 미리 만들어 준, "블로그 카테고리"를 체크(이미 체크돼 있다면, 다른 Taxonomy들을 체크 해제)하면, 네비게이션 메뉴에 "블로그 카테고리"가 표시되기 시작합니다.

댓글

아래 PHP Snippet도

아래 PHP Snippet도 참고하고 바란다. 유용할 듯.

Show block on specific pages via PHP Snippet
http://drupal.org/node/259832

위 Snippet과

위 Snippet과 비슷하기는 한데... 한 카테고리 내에서 시간순으로 게시물들을 표현하는 예제이다.

<?php print $body ?>
<?php
$strTermsID
= "";
if ( 
$node->taxonomy == null  ||  !is_array($node->taxonomy)  )    return;   // Do Nothing

/* extracting the keys from the array */

foreach( array_keys($node->taxonomy) as $keys )
{
 
$strTermsID .= $keys.",";
}

// comma separated lists of terms tid to display nodes
$terms = substr( $strTermsID, 0, -1);    // trim the last comma.
if ( trim($terms) == "" )  return;   // exception

// the number of nodes to show

$count = 10;

// $sql = "SELECT n.title, n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid in ($terms) AND n.status=1 ORDER BY n.created DESC"; // latest
$sql = "SELECT DISTINCT n.title, n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid in (".$terms.") AND  n.status=1 AND n.created<".($node->created)." ORDER BY n.created DESC"; // previous articles from this nid

$result = db_query_range(db_rewrite_sql($sql), 0, $count);
if (
$result) {
  echo
"<hr />";
  echo
t('[Articles List]');
  echo
"<br />";
  echo
node_title_list($result);
  echo
"<hr />";
}
else {
  echo
t('No nodes available.');
}
?>

본 팁의 PHP Snippet을

본 팁의 PHP Snippet을 블럭에 적용하는 경우도 있지만,
컨텐츠의 본문 하단에 적용하면 더 많은 PV를 유도할 수 있다.

이때 Contemplate 모듈을 이용한 편집이 유용하다. 아래 관련글을 참고하기 바란다.

도움이 된다면

도움이 된다면 저희도 기쁘지요!