Добавление настройки показа кастомной странице в каждом типе материала с ограничением по ролям

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 1 марта 2013 в 10:21

Я создал небольшой модулек...

<?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(){

}?>

Сейчас он выводит пустую страницу в табе у всех типов материала.

Стоит задача - добавить в модуль функционал, который бы в каждом типе материала (в новом вертикальном табе) давал возможность показывать страницу или не показывать (используя чекбокс), плюс к этому в это же вертикальной чтобы была возможность задать разрешение показа страницы для ролей (вывод списка всех ролей и выставление галочек).

Подскажите что еще требуется...

Комментарии

Аватар пользователя iNFerNo iNFerNo 1 марта 2013 в 11:43
<?php

function test_form_node_type_form_alter(&$form, &$form_state) {
  
$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,
  );

  

$form['#submit'][] = 'test_node_type_submit';
}

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);
}

?>

чекбокс выводится, почему то не хочет выводится в табе нужном (хотел вывести в табе где настройки заголовока и тд).
выводится под вертикальными табами.

и нифига не сохраняет значения. в форме.

что не правильно сделано?

Аватар пользователя iNFerNo iNFerNo 1 марта 2013 в 12:22

"iNFerNo" wrote:
чекбокс выводится, почему то не хочет выводится в табе нужном (хотел вывести в табе где настройки заголовока и тд).
выводится под вертикальными табами.

вывел в своем табе так (добавил немного кода в функцию 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']); 

?>

как сохранять значение этого чекбокса для типов материалов ???