У меня есть модуль job_post
, который устанавливает job_post
тип контента.
В этом модуле у меня есть hook_unistall()
, который вызывает функцию node_type_delete()
, которая удаляет мой тип контента.
После процесса удаления я получаю ошибки из основного модуля Drupal comment
, который запускается с node_type_delete()
после module_invoke_all('node_type_delete', $info)
.
Ошибка следующая и повторяется 8раз (из-за цикла в comment_node_type_delete()
):
Notice: Trying to get property of non-object in comment_node_type_delete()
(line 343 of ....\comment.module).
У меня есть эта ошибка, потому что переменная $info
в node_type_delete()
функция равна false
.
У меня вопрос, почему, когда мой модуль установлен и когда я печатаю var_dump(node_type_get_type('job_post'))
на любой странице, у меня есть объект, но когда я пытаюсь напечатать тот же код в моей функции unistall, я получаю false, и этоошибка?
job_post.install
/**
* Implements hook_install().
*/
function job_post_install() {
node_types_rebuild();
$types = node_type_get_types();
node_add_body_field($types['job_post']);
$body_instance = field_info_instance('node', 'body', 'job_post');
$body_instance['type'] = 'text_summary_or_trimmed';
field_update_instance($body_instance);
}
/**
* Implements hook_uninstall().
*/
function job_post_uninstall() {
$instances = field_info_instances('node', 'job_post');
foreach ($instances as $instance_name => $instance) {
field_delete_instance($instance);
}
// Force rebuild of the node type cache
// as Clive suggested didn't help
// _node_types_build(TRUE);
node_type_delete('job_post');
field_purge_batch(1000);
}
job_post.module
/**
* Implements hook_node_info() to provide our job_post type.
*/
function job_post_node_info() {
return array(
'job_post' => array(
'name' => t('Job Post'),
'base' => 'job_post',
'description' => t('Use this content type to post a job.'),
'has_title' => TRUE,
'title_label' => t('Job Title'),
'help' => t('Enter the job title and job description')
)
);
}
/**
* Implement hook_form() with the standard default form.
*/
function job_post_form($node, $form_state) {
return node_content_form($node, $form_state);
}
Примечание: Этот пример модуля был взят из Pro Drupal 7 Development book (стр. 141) с небольшими изменениями, и он выдавал ошибки даже с оригиналом.