Чтобы ответить на ваши вопросы точно:
Создание типа контента в процессе установки : вы используете node_type_save () для создания типа контента, вот пример из webform.install:
// Create the default webform type.
$webform_type = array(
'type' => 'webform',
'name' => st('Webform'),
'base' => 'node_content',
'description' => st('Create a new form or questionnaire accessible to users. Submission results and statistics are recorded and accessible to privileged users.'),
'custom' => TRUE,
'modified' => TRUE,
'locked' => FALSE,
);
$webform_type = node_type_set_defaults($webform_type);
node_type_save($webform_type);
node_add_body_field($webform_type);
Что делать в hook_uninstall : в основном просто выполняйте очистку после себя, поэтому удалите переменные, созданные вашим модулем (используя variable_del () ), удалите все файлы, загруженные модулем (используя file_unmanaged_delete_recursive () ), удалите определенные типы содержимого (используя node_type_delete () ), и т.п.
Надеюсь это поможет!
Одним из лучших способов сохранить эту информацию в коде является использование функций . Особенности можно вставить в код:
Список можно продолжить.
Одна приятная особенность функций - интеграция с Drush
drush features
предоставит вам список всех функций на сайте, и их статусdrush features revert all
вернет все функции обратно к тому, что в коде (очень удобно для запуска после развертываний)Помогите это поможет
источник
Проверьте модуль примеров D7 . У узла node_example есть установка и удаление.
Вы можете уточнить тип с помощью инструментов интерфейса, а затем создать функцию (с модулем функций) и извлечь соответствующие части в функцию установки вашего пользовательского модуля.
источник
Если вы хотите создать новый тип контента с некоторыми полями, вы можете использовать приведенный ниже код.
Этот код работает для меня отлично.
источник
Я сделал это в модуле синхронизации MySpace .
Я помню, как складывал это из разных источников, но я не помню, какими были все источники. Вы можете просмотреть репозиторий git там, чтобы увидеть, что я сделал, но это в основном экспорт каждого типа контента с модулем CCK Content Copy при установке, а затем удаление всех узлов перед удалением типа контента при удалении.
источник
Попробуйте ссылку ниже, это будет полезно.
Drupal 7 Field API - Установите новый тип контента при установке и добавьте поля
источник