Люди, помогите решить проблему. Пишу модуль под свои нужды. В хуке hook_install прописую создание нового контент тайпа. Он создаеться, вот только из полей кроме заголовка больше ничего нет... Помогите пожалуйста найти проблему.
Вот код:
<?php
function periodic_reminder_install(){
if(!node_type_load('periodic_reminder')){
$node_type = array(
'type' => 'periodic_reminder',
'name' => 'Remind',
'base' => 'node_content',
'description' => 'Creating a new memo',
'custom' => true,
'locked' => false,
); // New content type settings
$content_type = node_type_set_defaults($node_type); // Set defaults values
node_add_body_field($content_type, t('Description')); // Add body field with label 'Description'
node_type_save($content_type); // Saving new content type
// Load the instance definition for our content type's body
$body_instance = field_info_instance('node', 'body', 'periodic_reminder');
$body_instance['display']['periodic_reminder_list'] = array(
'label' => 'hidden',
'type' => 'text_summary_or_trimmed',
);
field_update_instance($body_instance);
// Create fields
field_create_field(array(
'field_name' => 'periodic_reminder_image',
'type' => 'image'
));
// Create instance
field_create_instance(array(
'periodic_reminder_image' => array(
'field_name' => 'periodic_reminder_image',
'entity_type' => 'node',
'bundle' => 'periodic_reminder',
'label' => t('Attached image'),
'cardinality' => 1,
'type' => 'text',
'widget' => array(
'type' => 'image_image',
),
),
));
}
}
?>
Комментарии
Фичи юзай и не парь мозг
где мне почитать о этих самых "фичах"?
И все же вопрос остается насущным... мне надо понять в чем ошибка, а сам я её найти не могу...
http://drupal.org/project/features
Фичи - это конечно очень хорошо. Вот несколько полезных ссылок по данной теме, которые помогли мне разобраться с ними:
Создание и использование Features
Drupal Features Новости
Небольшое слайд шоу, которое можно использовать как подсказку)
Но все же для кастомных решений не подойдет. Я порылся в ядре друпала (а именно в модуле установки) и нашел как создаются типы Article и Basic Page. Провел паралель с свои кодом и нашел ошибочки)
Вот правильное создание нового content type:
<?php
function reminder_install(){
if(!node_type_load('periodic_reminder')){
$node_type = array(
'type' => 'reminder',
'name' => 'Remind',
'base' => 'node_content',
'description' => 'Creating a new memo',
'custom' => true,
'locked' => false,
); // New content type settings
$content_type = node_type_set_defaults((object)$node_type); // Set defaults values
node_type_save($content_type); // Saving new content type
node_types_rebuild();
menu_rebuild();
// Add body field with label 'Remind description'
node_add_body_field((object)$node_type, t('Remind description'));
}
}
?>
При включении модуля создастся новый content type с двумя полями: Title и Remind description
Как прикручивать дополнительные поля сейчас буду искать) может кто знает и поделиться ссылкой???
Фичи же, и для первого, и для второго подходят на 100%
В принцыпе я с Вами согласен. Для экономии времени можно создать основной функционал во фронтэнде и сохранить его как модуль-фичу, а потом редактировать и дописывать кастомный функционал. Спасибо за напутствие)