1

SHORT DESCRIPTION

I want subtypes without bundles.

Longer:

GIVEN

  • A content type which represents a bibliography item.
  • A list(text) field ("Subtype") which is used with a selectlist widget. Values include: a book, a phd thesis, a conference paper, etc (I have more than a dozen of them).
  • Many text fields, each should be used only for some subtypes, not all of them. Example: The "Edition" text field should be filled for a book subtype, but not for a phd thesis subtype.
  • A bibliography item should not change its subtype (i.e., convert to another subtype).

NEED

  • Creating a new item form: Selecting a subtype from a selectlist, then continue to edit item form. That is, 2 steps on creation.
  • Editing an item: all other fields of the content types - only the ones that make sense in the context of the subtype. This form is used as the second step when creating a new item and as a single step when editing an existing item.

CONSIDERATIONS

  • As there are so many subtypes I do not want to make each of them a separated content type using the shared fields approach.
  • A custom entity type with bundles is gives a too narrow result as indeed there is a need for all node capabilities.
  • Counting of client-side is not an option (e.g., hiding/disabling fields).

Any ideas how to implement this? All code snippets and modules which I have found use client-side techniques (w/ or w/o FAPI's #states).

Thanks!

  • If you don't want to use nodes, and you've discounted other entity types (e.g. taxonomy term), you're probably looking at writing a custom entity type – Clive Nov 6 '14 at 16:49
  • Not sure if i understood the question correctly, but take a look here: davidsonj.com/blog/how-create-multi-step-form-drupal-7 This seems to be what you need? – Guardian Apr 10 '15 at 15:43
  • Thanks Guardian. In the end I took the path of using conditional fields. – Amir Simantov Apr 13 '15 at 13:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.