Я создал небольшой модулек...
<?phpfunction test_menu(){
$items['node/%/custom']=array(
'title' => t('Новая вкладка для ноды'),
'description' => t('Описание'),
'page callback' => 'custom_node_tab',
'access arguments' => true,
'type' => MENU_LOCAL_TASK,
);
return $items;
}
function custom_node_tab(){
}?>
Сейчас он выводит пустую страницу в табе у всех типов материала.
Стоит задача - добавить в модуль функционал, который бы в каждом типе материала (в новом вертикальном табе) давал возможность показывать страницу или не показывать (используя чекбокс), плюс к этому в это же вертикальной чтобы была возможность задать разрешение показа страницы для ролей (вывод списка всех ролей и выставление галочек).
Подскажите что еще требуется...
Комментарии
Скорее всего нужно заюзать и вот этот хук
<?phpfunction test_form_node_type_form_alter(&$form, $form_state) {
}
?>
<?php function test_form_node_type_form_alter(&$form, &$form_state) {
$form['#submit'][] = 'test_node_type_submit';
$settings = variable_get('test_settings', array());
$bundle2 = $form['#node_type']->type;
$default_value = isset($settings['bundles2'][$bundle2]) ?
$settings['bundles2'][$bundle2] : FALSE;
$form['submission2'] = array(
'#title' => 'Показывать страницу',
'#type' => 'checkbox',
'#default_value' => $default_value,
);
}
function
test_node_type_submit($form, &$form_state) {$settings = variable_get('test_settings', array());
$bundle2 = $form_state['values']['type'];
$settings['bundles2'][$bundle2] = $form_state['values'];
variable_set('test_settings', $settings);
} ?>
чекбокс выводится, почему то не хочет выводится в табе нужном (хотел вывести в табе где настройки заголовока и тд).
выводится под вертикальными табами.
и нифига не сохраняет значения. в форме.
что не правильно сделано?
вывел в своем табе так (добавил немного кода в функцию function test_form_node_type_form_alter(&$form, &$form_state) )
<?php
$form
['my_tab'] = array('#type' => 'fieldset',
'#title' => t('Настройки для новой страницы'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#group' => 'additional_settings',
'#attributes' => array(
'class' => array('node-form-mytab'),
),
);
$form['my_tab']['viewpage'] = $form['viewpage']; // - помещаем поле в вертикальную вкладку.
hide($form['viewpage']); ?>
как сохранять значение этого чекбокса для типов материалов ???