セキュリティモジュールを作成して、マルチサイトのDrupalセットアップで特定のモジュールを有効にすることができます。今すぐ、次のスニペットを使用してModulesフォームを簡単に無効にすることができます。モジュールのチェックボックスを「読み取り専用」に設定することはできますか?
フォーム要素を読み取り専用に設定し、サブセットのみを有効/無効にする機能を有効にしたいと考えています。
function disable_form_fields_form_alter(&$form, $form_state, $form_id) {
//get handle on drupal user var
global $user;
//if we are uid == 1 then we can edit this stuff...
if($user->uid !=1 && variable_get('osu_update_lockdown',1)==1){
if ($form_id == 'system_modules'){
//find all the modules not disabled
$modules_to_disabled = array_diff_key($form['status']['#options'], array_flip($form['status']['#disabled_modules']));
//for each not in our disabled list lets add it in
foreach($modules_to_disabled as $name => $value){
$form['status']['#disabled_modules'][] = $name;
}
//disable non-checked boxes
foreach($form['status']['#options'] as $key=>$val){
$form['status']['#process']['system_modules_disable'][0][]=$key;
}
//disable checked boxes
foreach($form['status']['#default_value'] as $key=>$val){
$form['status']['#process']['system_modules_disable'][0][]=$val;
}
unset($form['buttons']['submit']);
}
}
}