Drupal 更好的节点形式主题化方法
我有一个定义内容类型的模块。假设我只有Drupal 更好的节点形式主题化方法,drupal,drupal-7,drupal-theming,Drupal,Drupal 7,Drupal Theming,我有一个定义内容类型的模块。假设我只有title和body字段 当节点表单呈现时,它具有标准的标题(textfield)和正文(textarea) 我想将这两个字段包装成字段集 这就是我实现这一目标的方式,但我不认为这是最好的方式 /** *实现hook_form()。 */ 函数hook\u form($node,$form\u state){ 返回节点内容表单($node,$form\u state); } /** *实现hook\u form\u form\u ID\u alter()。
title
和body
字段
当节点表单呈现时,它具有标准的标题(textfield)
和正文(textarea)
我想将这两个字段包装成字段集
这就是我实现这一目标的方式,但我不认为这是最好的方式
/**
*实现hook_form()。
*/
函数hook\u form($node,$form\u state){
返回节点内容表单($node,$form\u state);
}
/**
*实现hook\u form\u form\u ID\u alter()。
*/
函数钩子\表单\节点\表单\变更(&$form,&$form\ state,$form\ id){
如果($form\u id=='content\u type\u name\u node\u form'){
$form['info']=数组(
“#类型”=>“字段集”,
“#title”=>t('描述你的内容')
);
$form['info']['title']=$form['title'];
未结算($form['title']);
$form['info']['body']=$form['body'];
未结算($form['body']);
}
}
有什么建议可以让它变得更好吗
更新
我想到的另一个变体。差不多,只是有点改进
/**
* Implements hook_form_FORM_ID_alter().
*/
function hook_form_node_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'content_type_name_node_form') {
$groups = array(
'info' => array(
'title' => t('Describe your content'),
'fields' => array('title', 'body')
)
);
foreach ($groups as $key => $group) {
$form[$key] = array(
'#type' => 'fieldset',
'#title' => $group['title']
);
foreach ($group['fields'] as $field) {
$form[$key][$field] = $form[$field];
unset($form[$field]);
}
}
}
}
你做的正是你应该做的,弗拉德。这就是API的使用方式,实际上没有其他方法可以通过代码来实现
你也可以使用面板来改变布局,虽然我自己没有做过,也不能解释这个过程,我也不能肯定地说它会像你在这里做的那样。使用自定义模块可能是最直接的途径。您完全按照您应该的方式来做。这就是API的使用方式,实际上没有其他方法可以通过代码来实现
你也可以使用面板来改变布局,虽然我自己没有做过,也不能解释这个过程,我也不能肯定地说它会像你在这里做的那样。使用自定义模块可能是最直接的途径。我必须同意David Fells的观点——我认为您的操作方式没有问题 但为了给您提供一种在字段集中设置标题和正文字段的非编程方法:您可以查看 顾名思义,Fieldgroup将字段分组在一起。全部的 可部署实体将有可能添加要包装的组 他们的田地在一起。Fieldgroup附带默认的HTML包装器 如垂直选项卡、水平选项卡、手风琴、字段集或div 包装纸
老实说,如果你只想为你的标题和正文创建一个字段集,那就太过分了,但是如果你对字段分组和主题有其他类似的要求,那么让用户界面为你做这件事可能会很有用。我不得不同意大卫·费尔斯的观点——我认为你的做法没有问题 但为了给您提供一种在字段集中设置标题和正文字段的非编程方法:您可以查看 顾名思义,Fieldgroup将字段分组在一起。全部的 可部署实体将有可能添加要包装的组 他们的田地在一起。Fieldgroup附带默认的HTML包装器 如垂直选项卡、水平选项卡、手风琴、字段集或div 包装纸
老实说,如果你只想为你的标题和正文创建一个字段集,那就太过分了,但是如果你对字段分组和主题有其他类似的要求,那么让用户界面为你做这件事可能会很有用。Fieldgroup很棒。我同意这有点过火,但肯定会奏效。我真的不得不同意。一旦你有了大的内容类型,就可以将这些字段分组到垂直选项卡和手风琴组中。我同意这有点过火,但肯定会奏效。我真的不得不同意。一旦你有了大的内容类型,就可以将这些字段分组到垂直选项卡和手风琴组中。