Программно проверить существование типа контента в Drupal 7.
Иногда перед тем, как создавать программно новый тип контента, требуется проверить — а не существует ли он уже? Чтобы сделать такую проверку, мы можем:
1. получить информацию о всех существующих типах контента
2. проверить, есть ли тип контента с нашим названием
3. если такой тип контента не существует, создать его
Получить информацию о всех типах контента нам поможет функция node_type_get_names(), имеющаяся в Drupal.
При ее вызове, например, так:
1 |
$types = node_type_get_names(); |
мы получим массив имеющихся типов контента, где в качестве ключа будет «машинное» имя, а в значении — имя:
1 2 3 4 5 6 7 8 9 |
Array ( [article] => Article [page] => Basic page [blog] => Blog [product] => Product [shop] => Shop [vacancy] => Vacancy ) |
Если нужного нам типа еще нет, создаем его программно:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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); } |
Категория: Drupal