Php 主题化Drupal通过forms API添加块形式
有谁能告诉我如何定制添加块表单吗?(/admin/build/block/add) 我想对用户隐藏“特定于用户的可见性设置”和“特定于角色的可见性设置”。到目前为止,这是我得到的,但显然这是不对的,我也不知道数组是什么。有人有这方面的经验吗Php 主题化Drupal通过forms API添加块形式,php,drupal,drupal-6,drupal-fapi,Php,Drupal,Drupal 6,Drupal Fapi,有谁能告诉我如何定制添加块表单吗?(/admin/build/block/add) 我想对用户隐藏“特定于用户的可见性设置”和“特定于角色的可见性设置”。到目前为止,这是我得到的,但显然这是不对的,我也不知道数组是什么。有人有这方面的经验吗 function theme_add_block_form($form) { $form['roles']['#prefix'] = '<div class="hidden">'; $form['roles']['#suffix'
function theme_add_block_form($form) {
$form['roles']['#prefix'] = '<div class="hidden">';
$form['roles']['#suffix'] = '</div>';
return drupal_render($form);
}
函数主题添加块形式($form){
$form['roles']['#prefix']='';
$form['roles']['#后缀']='';
返回drupal_渲染($form);
}
谢谢,
H
编辑-也许我不清楚-我可以使用API中的各种表单挂钩,但在本例中,我的问题是无法识别要在函数中使用的数组元素。devel模块似乎没有在blocks页面上起作用,并且更大的弹出块内容也不清楚。在
模块/block/block.admin.inc
中,函数block\u admin\u configure
:
$form['user_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('User specific visibility settings'),
'#collapsible' => TRUE,
);
(...)
$form['role_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Role specific visibility settings'),
'#collapsible' => TRUE,
);
只需尝试隐藏$form['user\u vis\u settings']
和$form['role\u vis\u settings']
编辑:
不要触摸模块/block/block.admin.inc!!(我只是指着我找到表单字段名称的地方)。隐藏
主题\添加\块\表单中的字段
。您可以编写$form['user\u vis\u settings']['#access']=false,而不是将字段包装在div中代码>在模块/block/block.admin.inc
中,函数块管理配置
:
$form['user_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('User specific visibility settings'),
'#collapsible' => TRUE,
);
(...)
$form['role_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Role specific visibility settings'),
'#collapsible' => TRUE,
);
只需尝试隐藏$form['user\u vis\u settings']
和$form['role\u vis\u settings']
编辑:
不要触摸模块/block/block.admin.inc
!!(我只是指着我找到表单字段名称的地方)。隐藏主题\添加\块\表单中的字段
。您可以编写$form['user\u vis\u settings']['#access']=false,而不是将字段包装在div中代码>这是要走的路。在另一个答案中使用as。您需要在costum模块中编写此代码
<?php
function module_name_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'block_admin_configure') {
$form['user_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('User specific visibility settings'),
'#collapsible' => TRUE,
'#access' = FALSE,
);
$form['role_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Role specific visibility settings'),
'#collapsible' => TRUE,
'#access' = FALSE,
);
}
}
这是一条路要走。在另一个答案中使用as。您需要在costum模块中编写此代码
<?php
function module_name_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'block_admin_configure') {
$form['user_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('User specific visibility settings'),
'#collapsible' => TRUE,
'#access' = FALSE,
);
$form['role_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Role specific visibility settings'),
'#collapsible' => TRUE,
'#access' = FALSE,
);
}
}
是的,这是执行主题化的一个选项,但我需要一些帮助来实际识别要放入函数中的数组元素。我无法使用Devel模块识别它们,因为它似乎不在该页面上运行。在hook\u form\u alter中的dpm($form)如果您有Devel(如果没有,则打印),您将看到表单的所有内部数据。在那里添加您自己的表单元素,并添加自己的验证和提交调用。了解这一点更有帮助:已经尝试过了-抱歉,应该在代码示例中留下这一点:)是的,这是执行主题化的一个选项,但我需要一些帮助来实际识别要放入函数中的数组元素。我无法使用Devel模块识别它们,因为它似乎不在该页面上运行。在hook\u form\u alter中的dpm($form)如果您有Devel(如果没有,则打印),您将看到表单的所有内部数据。在那里添加您自己的表单元素,并添加自己的验证和提交调用。了解这一点更有帮助:已经尝试过了-抱歉,应该在代码示例中留下这一点:)我不想这么说!我会澄清我的答案的。很好的一个,干杯,杜桑,没有想到看里面。是的,别担心,我不会在那里进行编辑,从我的帖子中应该可以清楚地看到,我正在创建一个theme template.php函数。没有必要投反对票!积分返回,从未显示新手破解drupal代码:)谢谢Nikit,我会更仔细地写我的答案。=)我不是故意这么说的!我会澄清我的答案的。很好的一个,干杯,杜桑,没有想到看里面。是的,别担心,我不会在那里进行编辑,从我的帖子中应该可以清楚地看到,我正在创建一个theme template.php函数。没有必要投反对票!积分返回,从未显示新手破解drupal代码:)谢谢Nikit,我会更仔细地写我的答案。=)