it-swarm-ko.tech

사용 가능한 모든 컨텐츠 유형의 목록을 얻으려면 어떻게해야합니까?

Drupal 7. node_type_get_types()_을 (를) 호출하면 페이지와 기사가 표시되지만 목록에없는 필드를 사용하여 4 가지 다른 노드 유형을 정의했습니다.

사용 가능한 모든 컨텐츠 유형의 목록을 얻으려면 어떻게해야합니까?

6
BetaRide

node_type_get_types()이 컨텐츠 유형을 리턴합니다.

이상하다! 나는 다른 content-type news을 만들고이 코드로 빠른 테스트 모듈을 만들었습니다.

function test_menu() {
$items = array();

$items['testing'] = array(
    'title' => 'Testing',
    'page callback' => 'page_test',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK
);
return $items;
}

function page_test() {
return '<pre>' . print_r(node_type_get_types(), true) . '</pre>';
} 

액세스/테스트하면 3 가지 내용 유형이 모두있는 배열이 나타납니다.

Array
(
[article] => stdClass Object ()
[news] => stdClass Object ()
[page] => stdClass Object ()
)
7
sergio

함수 외부에 존재하는 .module 파일에서 일부 코드를 발견했으며 node_type_get_types () BEFORE Drupal이 완전히 부트 스트랩되었으므로 노드 유형이 발생했습니다. Drupal 전에 모든 유형을 인식하기 전에 캐시되었으므로 node_type_get_types ()에 대한 후속 호출에서 일부 노드 유형이 누락되었습니다. 여기서 발생하는 상황을 설명 할 수 있습니다.

이 개념에 대한 자세한 내용은 http://tiger-fish.com/blog/drupal-ubercart-disappearing-content-types (노드 _get_types ()에서 Drupal 6이지만 메커니즘은 매우 유사합니다).

6
Chris Cohen

아래는 컨텐츠 유형에 따라 노드의 이름과 설명을 추출하는 예입니다.

  <?php
  $type = $node->type;
  $types = node_type_get_types();
  $name = $types[$type]->name;
  $description = $types[$type]->description;  
  ?>
0
Astha chauhan