I have a content type where I'm using the dropbox in hierarchical select to select multiple child terms from a taxonomy vocabulary.
Simplified the Vocabulary looks like this:


The children 1, 2 and 3 have both TermA and TermB as parents - so there's only the three children and not six children.

Creating content, the user must select children, and is allowed to select multiple children.
It works fine when I'm selecting TermB -> 1 but if I then also add TermA -> 2, TermB -> 2 also get's selected.

So selected terms should look like this:

TermB -> 1
TermA -> 2

But it looks like

TermB -> 1
TermB -> 2
TermA -> 2

And if I then try to remove TermB->2 it also removes TermA->2

I think it is a bug - or do I have to create unique children for all of my parent terms ? (I have more than two parents, and they all need to have the same six children).


Milosavlevski’s picture

Anyone working on this?

davidneedham’s picture

Yeah, a little late but I'm also seeing this.

Wim Leers’s picture

Status: Active » Closed (works as designed)

No, this is impossible — sorry :(

From README.txt:

 - In hierarchies where items can have multiple parent items and where you have
   enabled Hierarchical Select's "save lineage" setting, it is impossible to
   remember individual hierarchies, unless the underlying module supports it.
   So far, no module supports this. Hierarchical Select is just a form element,
   not a system for storing hierarchies.
   For example, if you have created a multiple parent vocabulary through the
   Taxonomy module, and you have terms like this:
    A -> C
    A -> D
    B -> C
    B -> D
   If you then save any two lineages in which all four terms exist, all four
   lineages will be rendered by Hierarchical Select, because only the four
   terms are stored and thus there is no way to recover the originally selected
   two lineages.
davidneedham’s picture

It's not elegant, but the compromise I came to was to create unique terms for each parent. Hope this helps anyone else coming across it down the road.

For example:

- Canada
-- Active (Canada)
-- Inactive (Canada)
-- Retired (Canada)

- United Kingdom
-- Active (UK)
-- Inactive (UK)
-- Retired (UK)

- United States
-- Active (USA)
-- Inactive (USA)
-- Retired (USA)

Wim Leers’s picture

#4: sure, but then you're no longer using the "multiple parents" functionality anymore ;)

davidneedham’s picture

@Wim Leers: absolutely, but as you said, that's impossible. Therefore I found a solution that came to the same conclusion, albeit not as nicely as I would have liked. :-)