The taxonomy select widget becomes unmanagable very quickly. If there are more than two levels in a hierarchy or more than X number of terms, it is almost impossible to use. This patch makes it a themable element so that creative UI designers can start cooking up better solutions. Here are the changes, in detail:

  • There is a new function theme_taxonomy_term_select which is a carbon copy of the old _taxonomy_term_select, plus XDoclet comments.
  • The old _taxonomy_term_select function calls the theme function using the theme() syntax.
  • taxonomy_form has an extra parameter $title = NULL so that the label on the form can be set by the public API. When NULL it defaults to the vocabulary name as usual. The reason I need this and I think Drupal needs this is that taxonomy is really useful for lists of items that need to be reused. Take the list {good, bad, ugly}. This set of terms could describe lots of things, defying any attempt to give the vocabulary a catchall name. Now, with the updated taxonomy_form, I can create a form element called 'Rate my code' and get the abovementioned list. In the same form I could have another element called 'George Bush is' and use the same list over again.
  • taxonomy_form now has XDoclet comments.

Comments

moshe weitzman’s picture

great patch. this widget could certainly be prettier, especially for small vocabularies (i.e. radio buttons or checkboxes). themers will make that happen.

- is there any reason to keep _taxonomy_term_select(). You could call the theme function directly from taxonomy_form()
- if we do keep it, perhaps collect $tree there and then pass $tree to the theme function.

robertdouglass’s picture

I wanted to gather feedback before I deprecate or remove _taxonomy_term_select().

perhaps collect $tree there and then pass $tree to the theme function

How do you think this would be easiest for themers?

mgifford’s picture

We have used this for some of our select lists for our other CMS (Back- End.org):
http://www.barelyfitz.com/projects/filterlist/

Might be worth considering bringing it over to Drupal.

There are other ways of approaching this too, but this seems to be a fairly easy way to deal with long lists.

There are some other javascript solutions that might be more applicable, but this is one of the few that is clearly GPL.

Mike

Robrecht Jacques’s picture

+1

I especially like the link mgifford provided: this would make it _very_ easy to select long taxonomy lists! (although that example only allows for single select, right?). This is not possible with current drupal, but providing the theming function someone could easily implement it. This would make using (and reusing) taxonomies much easier.

As for passing $tree or not. I actually prefer to have $vid only, not $tree as sometimes you don't need $tree at all.

Prometheus6’s picture

+1, definitely.

moshe weitzman’s picture

Folks - when an issue is in 'needs review' status, we expect a *patch review* to be posted. Guidelines for a patch review are at http://drupal.org/patch/review. I encourage everyoen to reread that page. We specifically discourage a simple +1 or -1 in a patch review.

I will be enforcing these guidelines for a while, as the quality of patch reviews has decreased recently. If you have issues/questions, pelse email me directly. I'd rather not hijack this fine patch.

-moshe

Robrecht Jacques’s picture

Ok, let's re-review:

1. I think the functionality added is needed and can't be achieved in any other way. The theming of a taxonomy select form will add usability in both small vocabularies (eg replacing it with checkboxes if only a few terms) and large vocabularies (see the example above).

2. The code degrades to exactly the same functionality as is now if no theming function is defined.

3. I have tested the patch:
- it applies cleanly.
- the taxonomy form is shown as before.

4. The code is well documented. It confirms to the coding style.

5. I do not like moshe's suggestion to pass $tree: not all implementations of this would need $tree. If the themer needs $tree, he can easily call taxonomy_get_tree() like is done.

6. I notice that _taxonomy_term_select() is called on other places in taxonomy.module too. Can you use the theme function there too?

robertdouglass’s picture

StatusFileSize
new6.09 KB

_taxonomy_term_select would now be deprecated. Modules that would need to update include:
amazontools
distantparent
eatlocal
flexinode
groups
image
img_assist
import_export
quotes
remindme
taxonomy_access
taxonomy_assoc
taxonomy_otf
trip_search

These modules will still work, though even without being upgraded. Please test as this patch changes more code.

Prometheus6’s picture

Not only does the patch work, I'll be looking at it to see if something similar can be done for book/outline handling. I started a patch that split the Parent combo into two that cascaded changes, but it does not degrade at all...I didn't consider theming as a way to do it.

I also need to use this widget, but with a different label, in another project...right now my only option is a mass of duplicated code.

Bèr Kessels’s picture

+1 works as expected.
* I can now style voc X different from voc Y, wohoo!
* I really like this workflow: first let contribs "fight" for the best implementation, then in future evaluate the winners to go in core as default.

I hope this is still in time for 4.7.....

Bèr Kessels’s picture

note: I tested the first patch, not the last.

killes@www.drop.org’s picture

Status: Needs review » Reviewed & tested by the community

I've tested the second patch. I didn't try any theming, but created a vocab, some terms and posted a forum topiuc without problems.

if somebody could add an option to display a part of the terms as optgroup terms this would be awesome for forum containers, btw.. But that is of course completely unrelated.

dries’s picture

I wonder if this patch makes sense when you have the form API in mind ... Adrian?

dries’s picture

Adrian told me we should let the form API patch land first.

adrian’s picture

I think this patch needs to wait for the form api to get in first, as the return value of taxonomy term select is changed, and the optimal way to accomplish this is different.

robertdouglass’s picture

Makes sense. Does that preclude getting it in before the freeze? Some sharp-shooting timewise will be needed. I haven't been able to follow the form api stuff, so maybe someone familiar with it could adopt this patch and re-roll it late Thursday or Friday?

dries’s picture

Status: Reviewed & tested by the community » Needs work

The form API went in, please revisit this patch as necessary.

chx’s picture

Assigned: robertdouglass » chx
Status: Needs work » Needs review
StatusFileSize
new1.11 KB

This is not particularly hard with the new forms API...

robertdouglass’s picture

Status: Needs review » Reviewed & tested by the community
StatusFileSize
new1.06 KB

I rerolled so that patch doesn't have to guess any more, but to me, this looks ready to go.

Steven’s picture

Status: Reviewed & tested by the community » Fixed

I commited to HEAD, but I modified the themable function's name from "theme__taxonomy_term_select" to plain "theme_taxonomy_term_select".

The double underscore looks weird, and really the themable function is not a 'private' function (which is what a leading underscore is normally used for).

robertdouglass’s picture

Assigned: chx » robertdouglass
Status: Fixed » Needs review
StatusFileSize
new5.34 KB

Now that I understand what the forms API does I have to report that the patch that got committed did not do what the original patch aimed to do. The original patch aimed to give people the option whether or not to create an HTML select to represent taxonomy selections. Not being anchored to this dumb widget for huge taxonomies is vital to the future of taxonomy. In the end this patch has nothing to do with the forms API.

I've rerolled the original patch based on the latest Drupal, and completely deprecated _taxonomy_term_select. There are no remaining instances of _taxonomy_term_select in core. When this patch hits core I'll update docs and notify maintainers of contrib modules who have called _taxonomy_term_select directly in the past.

Sorry for signing off on chx's patch before I understood it fully.

dries’s picture

Shouldn't the theming take place when the form is being rendered, rather than when the form is being constructed. Looks like this patch takes the wrong approach. I don't understand why this is better, or why '#theme' => 'taxonomy_term_select' is not adequate. Please elaborate.

robertdouglass’s picture

I want to have completely different forms for taxonomy, not select boxes. For vocabularies that have tens of thousands of terms, but aren't free-tagging or autocomplete, _taxonomy_term_select is a very expensive function. I want to be able to skip it altogether. With chx's patch, I have to wait for it to complete, intercept the form, and replace the form completely. With my patch, I can write phptemplate_taxonomy_term_select, take the parameters I want, and build the widget I need.

Here is the reason why the whole function needs to be a theme function, not just a themable form:

$tree = taxonomy_get_tree($vocabulary_id);

You simply cannot do this with 10,000+ terms. There must be a way to bypass it. I've confirmed from the developers of other taxonomy-intensive sites that taxonomy_get_tree is a major bottleneck performanc-wise. In the end, it just doesn't make sense to do the preparation for an HTML select element when you don't want to use an HTML select.

killes@www.drop.org’s picture

I can confirm that Robert has a case here. This function simply does not scale too well.

boris mann’s picture

+1 on Rob's use case...same would hold for large numbers of free tags. He's got a great write up of why he needs it.

dado’s picture

+1 from me too on Rob's issue. My module (tagnode) depends on Drupal permitting selection from a very large list of taxonomy terms. Plus, I would like to load large taxonomies into Drupal (e.g. MeSH or SNOMED CT)

eaton’s picture

+1 here, too. I'm migrating a number of sites away from awTags now, and the sizes of the resulting taxonomies involved are daunting. It's fine when entering, but once administration comes up...

robertdouglass’s picture

Thanks for the support. Can somebody please TEST this patch and move the status to "ready to be committed" to that it gets considered?

Bèr Kessels’s picture

+1 from me too, for a slightly different use case. We eend to "freeze" freetagging after approx 600 entries. This means that our taglist will still use autofill, yet not allow new tags to be posted, anymore.

robertdouglass’s picture

Bump. Has anybody tested this patch besides me? Seems like lots of people want it; please test, and if it works as expected, update the status to ready to commit.

dries’s picture

I haven't tested this yet, but could you document this a bit better in the code? From a forms API's point of view this is the wrong way to do it, so I think it needs some additional code comments explaining why we decided to take this unconventional (dare I say awkward?) approach.

robertdouglass’s picture

I've re-rolled the patch for latest CVS. I've added a couple lines explanation why this approach is needed.

robertdouglass’s picture

StatusFileSize
new3.28 KB

And now for a concrete example *why* the current approach cannot be efficiently used to replace the taxonomy widget. If you have a vocabulary that is optional, the SELECT form that gets built has an extra option at the top representing "nothing". This all gets built in the current _taxonomy_term_select function. Now let's say my goal is to have checkboxes instead of a drop-down select. This is a reasonable widget for many small vocabularies, and is easier to use if multiple values are allowed.

If I were to make a phptemplate_taxonomy_term_select function to theme the form array that gets built in _taxonomy_term_select, I'd end up with an extra empty checkbox representing the "nothing" option that gets added because it is assumed that a drop-down select is going to be built.

Using my patch, the phptemplate_taxonomy_term_select function doesn't have this bother. Here is an example of what the theme function would look like, and a screenshot of the working result is attached.

function phptemplate_taxonomy_term_select($title, $name, $value, $vocabulary_id, $description, $multiple, $blank, $exclude = array()) {
  $tree = taxonomy_get_tree($vocabulary_id);
  $options = array();

  if ($tree) {
    foreach ($tree as $term) {
      if (!in_array($term->tid, $exclude)) {
        $options[$term->tid] =  $term->name;
      }
    }
    if (!$value) {
      // required but without a predefined value, so set first as predefined
      $value = $tree[0]->tid;
    }
  }
  return array('#type' => 'checkboxes', '#title' => $title, '#default_value' => $value, '#options' => $options, '#description' => $description, '#weight' => -15);
}

Note that making a real, production-ready replacement widget for taxonomy selects will take more work, but it isn't really possible without this or a similar patch.

robertdouglass’s picture

PS: this will stay akward until Adrian's views technology is available. The fact is, any time the same information might be represented in different ways, there is a bit of complexity involved. We avoided this problem with free-tagging by branching the logic somewhere based on what kind of vocabulary was being dealt with, and rendering the widget differently. This patch extends that tradition allowing programmers to pick a specific vocabulary, render the widget for it differently, and fall back on the default presentation for the others.

sin’s picture

Taxonomy selection with checkboxes/radios in 4.7 can be produced with forms API, see http://drupal.org/node/84286.

robertdouglass’s picture

@sin - yes, that is how you superficially have control over the widget used for taxonomy. But what is happening in the background is still important. The select widget that is getting replaced is still being created. This involved a bit of processing, and when the vocabulary gets large enough, is a significant amount of overhead. Thus the patch I was proposing. This didn't make it into 4.7, and I left the issue alone for 5.0, but at some point, a more decoupled approach to making the taxonomy widgets should still be considered.

robertdouglass’s picture

Status: Needs review » Postponed
sin’s picture

Robert, I understand your idea - do not build control at all before theming. I think that this option would be very useful for large complicated vocabularies, but I think theme is not a place to introduce such functionality. Themes are for theming. Theming must be as easy as possible to use. Like {smarty}. I think it will be good to extend taxonomy module with special control overriding hook to be implemented in modules, not in themes. Is it possible?

As for checkboxes/radios -- they greatly increase taxonomy usability, but only for small vocabs -- not a situation your patch addresses. So this is different issue, I just commented here because I searched for taxonomy/checkboxes and found relevant only your year old activity, but later spotted other solution.

danielnolde’s picture

Whether or not theming is the right place for this, robert is right in *that* he is suggesting to make the *generation* taxonomy widget customizable (i.e. being able to change the widget which is generated) and to do that without obligatory creation of the term-hierarchy (since there could be really large taxonomies...!).

Since we see more and more jQuery & Ajax stuff getting into Drupal, this opens the door for really useful taxonomy-widgets, like a hierarchical dropdown-(multi)-select which branches out a large taxonomy on demnad via Ajax, perhaps combined with an autocomplete field (could be super-powerful while keeping the user interface lean and optimizing usability).

However, the latest patch (from nov. 05 i guess) is out of date and will not be able to applied to current 4.7 releases, so i attached a new version of the patch (should work).

Guys, you should really keep this idea going (don't know whether it's already commited for 5.0, or have to wait for 5.x)!

robertdouglass’s picture

Status: Postponed » Needs review

thanks for re-rolling. I'll open the issue up again; maybe it will lead to the desired change eventually.

webchick’s picture

Version: x.y.z » 6.x-dev

patching file modules/taxonomy/taxonomy.module
Hunk #1 FAILED at 364.
Hunk #2 FAILED at 533.
Hunk #3 succeeded at 663 (offset 107 lines).
Hunk #4 succeeded at 1195 with fuzz 1 (offset 150 lines).
2 out of 4 hunks FAILED -- saving rejects to file modules/taxonomy/taxonomy.module.rej

webchick’s picture

Status: Needs review » Needs work
Laurentvw’s picture

What about Drupal 5.2?

ashtronaut’s picture

Version: 6.x-dev » 5.2

Does this work for 5.2?

RobRoy’s picture

Version: 5.2 » 5.6
Status: Needs work » Needs review
StatusFileSize
new4.11 KB

taxonomy_get_tree() just slaughters your site if a vocab grows big. This is needed badly. Here's a super quick diff for 5.6. I had some local tax changes so it may need an offset.

webchick’s picture

Version: 5.6 » 7.x-dev
Status: Needs review » Needs work

This is an API change. Moving to 7.x. Doesn't apply anymore.

jpsalter’s picture

I have a vocabulary with 5000+ terms. It will grow to 100,000+ terms by the time it is done.

With a module like: http://drupal.org/project/hierarchical_select it is easy to select terms from a vocabulary of this magnitude. If I understand the patch - this module will be able to hook in sooner and be more efficient?

If so, I would like to voice my support for this patch.

If 100,000 terms seem like a lot - remember it is less than 10 terms per level x 5 levels.

wim leers’s picture

Actually it's unrelated. A function that's themeable means that a theme can override it, not a module. Modules can't override themeable functions, but they can intercept in this particular case, because it's a form widget, and form widgets are defined by the Forms API, thus can be overridden through hook_form_alter().

doc2@drupalfr.org’s picture

subscribing

RobRoy’s picture

Also, this patch should include a themeable fix for taxonomy_form_all() which is hit on admin/content/node as with large taxonomies that page yields WSOD as I just found.

doc2@drupalfr.org’s picture

Could this last feature be implemented, in a way or anther, into previous versions of drupal? (5.x for example :)

catch’s picture

There's an undocumented variable in taxonomy_term_form() for D6 which allows you to intercept the select list before the terms are loaded - only for parents on the admin form though: http://api.drupal.org/api/function/taxonomy_form_term/6

This menu module patch deals with a similar issue: http://drupal.org/node/191360

catch’s picture

Title: Make taxonomy selection widget themable » Scaleable/themeable taxonomy selection widget
Category: feature » bug
Priority: Normal » Critical

Reclassifying, seems like the grandfather issue to most of this, and since freetagging vocabularies can WSOD your site on quite trivial administration pages, it's a bug.

wim leers’s picture

This is pretty much the same as UB Usability: menu parent choosers, but for a taxonomy hierarchy instead of a menu hierarchy.

And the answer can be the same: HS (Hierarchical Select)! *However*, HS doesn't solve taxonomy_get_tree()'s scalability problem. HS even uses it itself (although a slightly modified version). HS in itself *is* scalable.

Without having given deep thought about this, I think the key to making taxonomy more scalable, is by adding a depth column to the term_hierarchy table (because sometimes you need to retrieve part of a tree, but only from a certain level, without having the parent/all parents, and due to the lack of a depth column, you're pretty much forced to retrieve the *entire* tree using taxonomy_get_tree()).

Jaza’s picture

@WL: I don't see how it's possible to add a depth column to the term_hierarchy table, as long as it's a multiple-parent hierarchy. Consider the following:

foo
--bar
----woo
tan
--woo

foo: depth 0
bar: depth 1
tan: depth 0
woo: depth... 1? 2? Both? Neither?

taxonomy_get_tree has defied all attempts at scalability, ever since the day it was committed to Drupal. IMHO, we will never get it to scale properly, until we remove multi-parent support from taxonomy.module. But every time we suggest removing it, many people complain that they use it and that they love it.

We often advertise the multi-parent taxonomy feature as one of Drupal's unique features. But the truth is, there's a reason why no other CMS has this. It's a data structure for which there simply is no known scalable traversal algorithm. Personally, I vote to remove multi-parent support, and to ignore the cries of those who use it. Then, we can make taxonomy_get_tree work efficiently.

damien tournoud’s picture

#54, #55: I don't see why HS would ever need a full-fledged taxonomy tree to work.

If I'm not mistaken, it only needs to be able to retrieve children of a given item, and this is trivial from the {term_hierarchy} table.

wim leers’s picture

Jaza: excellent point, that won't work indeed. I said I hadn't given it a lot of thought yet :) I'm not sure I wholeheartedly agree with your proposal though. I do know people that use the multiple parents feature. They aren't many, but they are there. It's used on http://rtbf.be/ for example, for classification of news articles.

Damien: for some operations, it's useful to be able to start from a certain depth. It's been several months since I last looked at HS' code that adds support for Taxonomy though, so I don't remember the details.

catch’s picture

Haven't looked at them yet, but there's supposed to be a rewrite of taxonomy_get_tree in this module: http://drupal.org/project/leftandright and also some depth search efficiencies in http://drupal.org/project/taxonomy_depth

sin’s picture

>I don't see how it's possible to add a depth column to the term_hierarchy table, as long as it's a multiple-parent hierarchy.
...
>woo: depth... 1? 2? Both? Neither?

We may store min and max depth for a term in two columns. They would be equal for a major of cases.

Nick Lewis’s picture

We often advertise the multi-parent taxonomy feature as one of Drupal's unique features. But the truth is, there's a reason why no other CMS has this. It's a data structure for which there simply is no known scalable traversal algorithm.

Jaza -- great point. I'd add that in my experience, using the multiple parent feature is nearly always a mistake. It makes management of the content more difficult. It results in unpredictable behavior from 3rd party modules. It makes development more hellish and bugprone than it needs to be. You know you are going down a wrong path when you have to configure the weights of an objects parents so the breadcrumbs work properly.

The correct solution is usually to use two vocabularies instead, and do some custom development to make the two play nice -- with resulting menus that may look like:

Foreign Policy (All content below filtered with vid 1->tid 1)
-Editorials ( vid 2->tid 10)
-Research reports (vid 2->tid 11)
Science and Technology (All content below filtered with vid 1->tid 2)
-Editorials (vid 2->tid 10)
-Research reports (vid 2-> tid 11)

Note that in this case (like most others where people blunder by going down the multiparent route), the terms "Editorials, research reports" are completely different ideas than their parent categories (foreign policy).

Its not hard to see why this is easier to work with than having to use some sort of convoluted voodoo to determine which parent category is supposed to show up. The parent category is dead clear, because it its vid identifier. The result is also easier from a user perspective. Instead of having to both select science and technology, and editorial, they have two drop downs.

So -- really -- I think removing multiparent support would be a good way from preventing people from using approaches they'll regret later. Maybe instead of multiparent support we should be supporting using taxonomies in this sort of fashion. Now if you'll excuse me, I'm going to hop on my segway and bore another audience with my lectures.

chx’s picture

Jaza, I am unsure what problem you need an algorithm for, there are a number of algorithms to traverse a DAG, DFS and BFS being two common ones. For UI, I prefer http://drupal.org/node/191360 obviously. It would need minimal work to work with taxonomy too.

wim leers’s picture

Nick Lewis: It can result in unexpected behavior because most modules haven't been developed with multiple parent support in mind.
Your point about figuring out which is the parent in case there are multiple nails down the whole problem (well, the whole problem minus the performance issues). That's where Drupal does things wrong. IMO, when multiple parents are used, the entire lineage should be saved (thus multiple terms). Which implies that "multiple select" really becomes "multiple lineages". This is one of the things Hierarchical Select solves completely, at least UI-wise.
It works with Taxonomy's current node relationship (the term_node table), but it might be better if Taxonomy stored relations to nodes "per lineage" instead of "per term": if you store "per term", you have to do several queries to figure out which lineages exist in a given set of terms. (See _hierarchical_select_dropbox_reconstruct_lineages_save_lineage_enabled() in hierarchical_select.module.) When you're not using multiple parents, then you simply get lineages with a single term.

sutharsan’s picture

Component: taxonomy.module » usability

Moving all usability issues to Drupal - component usability.

BioALIEN’s picture

#63, I'm not sure this issue is only related to usability. It also addresses a WSOD, scalability and performance cases.

wim leers’s picture

But in the first place it's a usability issue. It only results in scalability/performance issues in case of massive taxonomies.

moshe weitzman’s picture

Version: 7.x-dev » 8.x-dev
Component: usability » base system

seems like menu choosers will stay as is for a release.

damien tournoud’s picture

Only feature requests and tasks can be assigned to D8 for now, because the Drupal 8 tree is not opened yet.

Fortunately, this is a feature request.

damien tournoud’s picture

Category: bug » feature
catch’s picture

Priority: Critical » Major

Downgrading all D8 criticals to major per http://drupal.org/node/45111

catch’s picture

Category: feature » task

Actually this is a task because the current widget can bring down servers.

quicksketch’s picture

Category: task » feature

The final verdict of http://drupal.org/node/45111 resulted in http://drupal.org/node/1201874 (which prevents new features based on major tasks). Problem or not, this is an unlikely backport to Drupal 7. I'm putting this back in features, please recategorize again if this really should be something that should prevent other new features.

alan d.’s picture

In relation to some of the points raised above;

Performance & multi-parent
I agree that having single parents makes life so much easier, but there are compelling arguments for it: #338959: Move multiple parents to related terms. I'm building a regional db module and the first 3 of 4 countries that I have looked at required this. So from nearly having a working beta, I'm having to refactor this out into a multi-parent hierarchy. (Sorry for the side rant, this was what I was searching for when I came across this thread)

Either way, there are a number of other issues related to the performance issues of the taxonomy, I think that this issue should remain about preemptive strikes in avoiding the actual rendering of the tree. For example, Taxiselect does a single multi-join query in an autocomplete and HS does a small number of simple queries. Both run in the ms even with taxonomies in the millions.

Theme replacement:
Great for experienced developers, but I pity the newbies. It is like saying, "Yep core is broken and the best minds can not really find a solution, but now you can fix it by overriding this yourself!"

Override selectors:
From my experience with taxonomic override selectors in D6, here are the negatives: (as maintainer of the TaxiSelect module)

a) Only one module can exist that supplies this functionality
b) It is an all or none approach from a vocabulary perspective.
c) All of the free tagging logic was transferred to the override, and none of the four modules that I know that implemented this in contrib actually done nothing differently from core

So wrapping the logic in the tag widget code in core would be a great start if this is kept for D8+, exposing the optional widgets available would be nice and allowing vocabulary based widget selectors. I created an initial stab at this in #589332: Changes to the taxonomy_override_selector settings two years ago. The patch will be very outdated now.

xjm’s picture

xjm’s picture

wim leers’s picture

Version: 8.x-dev » 9.x-dev
catch’s picture

Version: 9.x-dev » 8.1.x-dev
Issue summary: View changes
mgifford’s picture

Assigned: robertdouglass » Unassigned

Just unassigning issues that haven't been developed for a bit in the D8 queue.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.0-beta1 was released on March 2, 2016, which means new developments and disruptive changes should now be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

  • Steven committed c2fcb6d on 8.3.x
    #30993: Make taxonomy selector widget themable
    
    

  • Steven committed c2fcb6d on 8.3.x
    #30993: Make taxonomy selector widget themable
    
    

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

  • Steven committed c2fcb6d on 8.4.x
    #30993: Make taxonomy selector widget themable
    
    

  • Steven committed c2fcb6d on 8.4.x
    #30993: Make taxonomy selector widget themable
    
    

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

  • Steven committed c2fcb6d on 9.1.x
    #30993: Make taxonomy selector widget themable
    
    

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.