如何在drupal 7中为自定义内容类型添加/编辑表单主题

时间:2016-07-21 13:03:15

标签: php forms drupal drupal-7

我有Drupal 7网站。它有自定义内容类型产品。它有20个领域。我想控制此内容类型的添加/编辑表单的UI。

我在sites / all / modules下创建了一个模块。

  • admin_product
        -admin_product.info
        -admin_product.module

-admin_product.module

 <?php
 function admin_product_theme($existing, $type, $theme, $path){
 return array(
'product_node_form' => array(
  'arguments' => array(
      'form' => NULL,
  ),
  'path' => drupal_get_path('theme', 'myTheme').'/templates/forms',
  'template' => 'product-node-form',
  'render element' => 'form',
  )
  );
  }

在模板中 - sites / all / themes / myTheme / templates / forms / product-node-form.tpl.php

-product-node-form.tpl.php

 <?php
 echo drupal_render_children($form);
 echo 'hello template';  // just to test
 ?>

未呈现模板。

如何控制表单的用户界面。

任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:0)

如果您要添加此主题的主题不是该网站的默认管理主题,则该模板将不会在管理区域中被选中。

您必须将此代码添加到自定义模块或根据管理主题(例如,七个)创建子主题,并选择它作为您的管理主题并将代码放在那里。

在此处找到了很好的解释:https://drupal.stackexchange.com/questions/33253/how-do-you-theme-a-content-types-create-edit-form-in-drupal-7

答案 1 :(得分:0)

我认为您需要的只是Field Group模块。借助此模块,您可以组织所有字段(即div,标签等)。其余的东西可以通过CSS制作。

其他方式是使用hook_form_FORM_ID_alter()挂钩,或者特别是hook_form_node_form_alter()来改变您的表单。

无论如何,在Drupal 7中Form APITheme API不同,你提供的代码没有任何意义:)对不起:)