Я застрял на несколько дней, и я надеюсь, что кто-нибудь может мне помочь.
Я пишу модуль для связи с другим узлом (я понимаю, что такой модуль существует, однако я хотел бы попрактиковаться в кодировании модуля, я попытался взглянуть на другой модуль для справки, однако я не могу обнаружить никаких проблем).
После добавления модуля я активирую поле в пользовательском типе узла и выбираю разрешить множественное значение. Когда я добавил контент (такого типа контента), вместо одного появляется два поля, а когда я добавил дополнительное поле, я не могу удалить. Я надеюсь, что кто-то может дать мне некоторое руководство о том, как это исправить. Я включил скриншот проблемы ниже. Я также надеюсь добавить кнопку удаления / способ удалить дополнительный элемент. После нескольких дней исследований я не могу найти дружественный способ сделать это.
Ниже приведен код, который я добавил для справки
для belong_to_relation.install
я добавил следующее
function belong_to_relation_field_schema ($field) {
if ($field['type'] == 'belong_to_relation') {
// Declare fields in the db
$columns = array (
'to_node_type' => array (
'type' => 'varchar',
'length' => '64',
'not null' => FALSE,
'description' => 'The relation id from the belong_to_relation table',
),
'to_node_nid' => array (
'type' => 'int',
'not null' => FALSE,
'description' => 'the node id of the to node',
),
'extended_node_nid' => array (
'type' => 'int',
'not null' => FALSE,
'description' => 'the node id of the extended field node',
),
);
return array (
'columns' => $columns,
'indexes' => array(),
);
}
}
Для принадлежащего к модулю.relation.module я добавил следующее:
function belong_to_relation_field_info () {
return array (
'belong_to_relation_reference' => array (
'label' => t("Belong to Relation Node Reference"),
'description' => t('This field stores a node reference to a node of another content type'),
'default_widget' => 'belong_to_relation_reference_widget',
'default_formatter' => 'belong_to_relation_reference_formatter',
),
);
}
function belong_to_relation_field_widget_info () {
return array (
'belong_to_relation_reference_widget' => array (
'label' => t('Default'),
'field types' => array ('belong_to_relation_reference'),
),
);
}
function belong_to_relation_field_widget_form (&$form, &$form_state, $field,
$instance, $langcode, $items,
$delta, $element) {
$element += array(
'#type' => 'fieldset',
'#tree' => true
);
$element['to_node_type'] = array (
'#type' => 'select',
'#title' => t('Target Node Type'),
'#options' => array(),
'#default_value' => isset($item['to_node_type']) ? $item['to_node_type'] : NULL,
'#empty_option' => 'Select a Node type',
);
$element['to_node_nid'] = array (
'#type' => 'select',
'#title' => t('Target Node Type'),
'#options' => array(),
'#default_value' => isset($item['to_node_nid']) ? $item['to_node_nid'] : NULL,
'#empty_option' => 'Select a Node',
);
$element['extended_node_nid'] = array (
'#type' => 'select',
'#title' => t('Target Node Type'),
'#options' => array(),
'#default_value' => isset($item['extended_node_nid']) ? $item['extended_node_nid'] : NULL,
'#empty_option' => 'Select a Node type',
);
return $element;
}
function belong_to_relation_field_is_empty ($item, $field) {
return FALSE;
}
function belong_to_relation_field_formatter_info () {
return array (
'belong_to_relation_reference_formatter' => array (
'label' => t('Simple Belong To Relation Formatter'),
'field types' => array ('belong_to_relation_reference'),
),
);
}
В настоящее время я использую Drupal 7.7 на MAMP.