如何使用各种节点类型使用drupal制作多步骤表单

时间:2011-01-31 18:05:56

标签: forms drupal cck drupal-ctools

我正在创建一个非常基本的分类广告网站。在这个网站上,我将有各种内容类型;如:

  1. 汽车(有cck字段:年,公里,颜色
  2. House(有cck字段:楼层数,花园(是/否)
  3. 因此每个'元素'都是内容类型。

    我列出了我向用户显示的视图中的所有内容类型,然后点击链接转到“创建类型的内容类型(点击类型)”。

    它工作得很好;但我无法摆脱创建页面顶部的“创造新车”(这反映了'drupalish'行为)。

    我希望以更加方便的方式使用它,例如三步形式:

    1. 选择类别
    2. 选择您的选项
    3. 注册发布新的分类
    4. 我见过ctools;它提供了“差不多”的多步行为;但是我无法想象我的十几种内容类型在一个模块中被“硬编码”。

      我想知道是否有人已经实现了这种设置,或者是否有一种可以解决这个问题的模块。我想为每种类型的分类保留内容类型(网站管理员现在用于界面)。

      任何帮助,起点都不胜感激。

1 个答案:

答案 0 :(得分:1)

第一步我们必须解决一个类似的问题。为此,我们创建了基本上是/ node / add页面的覆盖(列出所有内容类型的页面),您已经完成了。要更改标题,最简单的方法是创建一个yourtheme_preprocess_page()函数,当url为/ node / add或node / * / edit

时更改标题

但是:我强烈建议切换到一个系统,该系统对所有列表使用1种内容类型。我们创建了一个非常类似的网站,在处理了不同的内容类型之后,它清楚地表明,有一个内容类型包含有条件显示的字段是一个更加理智的解决方案。使用不同产品类型的类别,然后使用条件字段模块隐藏和显示正确的字段工作得更好。

http://drupal.org/project/conditional_fields

以下是用于在页面预处理功能中设置标题的示例代码段:

在节点/添加页面上设置标题:

  if (arg(0) == 'node' && arg(1) == 'add' && arg(2) == '') {
    $vars['title'] = 'Choose an Industry';
    $vars['head_title'] = $vars['title'] . " | " . variable_get('site_name', "Industry Trader");
  }