web-gelistirme-sc.com

Mevcut tüm içerik türlerinin listesini nasıl alabilirim?

Ben Drupal 7. node_type_get_types() çağırırsam, sayfa ve makale alıyorum ama listelenmeyen alanları kullanarak 4 diğer düğüm türleri tanımladım.

Mevcut tüm içerik türlerinin listesini nasıl alabilirim?

6
BetaRide

Doğru yapıyorsunuz: node_type_get_types() içerik türlerini döndürür.

Bu garip! Başka bir içerik türü news oluşturdum ve bu kodla hızlı bir test.module yaptım:

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

Eriştiğimde/test ettiğimde 3 içerik türünün de bulunduğu bir dizi alıyorum:

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

Herhangi bir fonksiyonun DIŞINDA bulunan bir .module dosyasında bazı kodlar bulduğumuzu ve bu node_type_get_types () çağrıldığından ÖNCE Drupal tamamen önyüklendi. Bu, Drupal tüm türlerden haberdar edilmeden önce düğüm türlerinin önbelleğe alınmasına neden oluyordu, bu nedenle node_type_get_types () öğesine yapılan çağrılar bazı düğüm türlerini kaçırdı. Bu, burada neler olduğunu açıklayabilir.

Bu kavramın daha ayrıntılı bir yazımı http://tiger-fish.com/blog/drupal-ubercart-disappearing-content-types (Drupal 6, ancak mekanizmalar çok benzer).

6
Chris Cohen

Aşağıda, içerik türüne göre bir düğümün adını ve açıklamasını çıkarma örneği verilmiştir:

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