Иногда перед тем, как создавать программно новый тип контента, требуется проверить – а не существует ли он уже? Чтобы сделать такую проверку, мы можем:
1. получить информацию о всех существующих типах контента
2. проверить, есть ли тип контента с нашим названием
3. если такой тип контента не существует, создать его
Получить информацию о всех типах контента нам поможет функция node_type_get_names(), имеющаяся в Drupal.
При ее вызове, например, так:
$types = node_type_get_names();
мы получим массив имеющихся типов контента, где в качестве ключа будет «машинное» имя, а в значении – имя:
Array( [article] => Article [page] => Basic page [blog] => Blog [product] => Product [shop] => Shop [vacancy] => Vacancy)
Если нужного нам типа еще нет, создаем его программно:
if (!array_key_exists("gallery", $types)) {
$type = array(
'type' => 'gallery',
'name' => st('gallery'),
'base' => 'node_content',
'description' => st('This is our gallery'),
'custom' => 1,
'modified' => 1,
'locked' => 0,
);
$type = node_type_set_defaults($type);
node_type_save($type);
}