Para responder exatamente às suas perguntas:
Criando um tipo de conteúdo na instalação do gancho : Você usa node_type_save () para criar o tipo de conteúdo, aqui está um exemplo de 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);
O que fazer no hook_uninstall : basicamente apenas faça a limpeza depois de você mesmo; exclua as variáveis criadas pelo módulo (usando o variable_del () ), exclua os arquivos carregados pelo módulo (use file_unmanaged_delete_recursive () ), exclua os tipos de conteúdo definidos (use node_type_delete () ), etc.
Espero que isto ajude!
Uma das melhores maneiras de manter essas informações em código é usar os recursos . Os recursos podem colocar no código:
A lista continua.
Um recurso interessante sobre os recursos é a integração drush
drush features
fornecerá uma lista de todos os recursos do site e seu statusdrush features revert all
reverterá todos os recursos para o que está no código (realmente útil para executar após implantações)Ajude isso ajuda
fonte
Confira o módulo D7 Examples . O node_example possui instalação e desinstalação.
Você poderá detalhar o tipo com as ferramentas de interface e criar um recurso (com módulo de recursos) e extrair partes relevantes para a função de instalação do seu módulo personalizado.
fonte
Se você deseja criar um novo tipo de conteúdo com alguns campos, pode usar o código abaixo.
Este código funciona para mim perfeitamente.
fonte
Eu fiz isso no módulo MySpace Sync .
Lembro-me de juntar isso de várias fontes, mas não lembro quais eram todas. Você pode navegar no repositório git lá para ver o que eu fiz, mas é basicamente uma exportação de cada tipo de conteúdo com o módulo Content Copy do CCK na instalação e, em seguida, excluindo todos os nós antes de excluir o tipo de conteúdo na desinstalação.
fonte
Experimente o link abaixo, será útil.
Drupal 7 Field API - Configure um novo tipo de conteúdo ao instalar e adicionar campos
fonte