如何为特定内容类型自定义创建内容表单。在这个例子中,我有一个产品的CCK类型,但每次我创建一个产品时,我使用了4个字段Name,Price,Picture和dimensions。
有没有办法让create content表单变得更纤细,只有这些选项?这就是冥想要做的吗?
发布于 2009-02-04 17:56:32
您将需要使用hook_form_alter钩子。
在Drupal6中,我使用它来隐藏节点编辑/添加表单中的大部分无关内容。
function mymodule_form_alter(&$form, $form_state, $form_id) {
// hide extraneous options in the node form for nodetype nodes
if($form_id == 'nodetype_node_form') {
$form['path']['#access'] = FALSE;
$form['menu']['#access'] = FALSE;
$form['author']['#access'] = FALSE;
$form['options']['#access'] = FALSE;
$form['comment_settings']['#access'] = FALSE;
$form['revision_information']['#access'] = FALSE;
}
}
Contemplate用于设计节点视图的样式,而不是节点表单。我建议不要这样做--使用node-nodetype.tpl.php文件要好得多。
发布于 2009-02-04 20:00:34
另一种选择是从头开始创建您自己的表单,并在表单的提交处理程序中自己创建一个节点对象。
发布于 2009-02-04 20:31:48
在这方面找到了一个很好的资源:
http://www.lullabot.com/articles/modifying-forms-5-and-6
它提到的一件事没有被Eaton或ceejayoz覆盖,那就是隐藏主题层中的字段。
https://stackoverflow.com/questions/512144
复制相似问题