Last updated December 13, 2011.
This page is for listing issues that help improve Drupal's developer experience and user experience by identifying things that make absolutely no sense.
View list of all "DrupalWTF" issues at http://drupal.org/project/issues/3060/term/757.
Developer Experience (DX)
#220233: Put node_get_types() out of its misery: This function has a "magic" parameter that returns something completely different depending in what's passed in. Furthermore, it's not just for types, but for names, descriptions, etc. Kill it. Kill it dead.
#145164: DX: Use hook_variable_info to declare variables and defaults: Addresses two long-standing gripes about the variables system:
a) you have to specify the default of a variable *every time* you call it
b) hook_uninstall() has no way of cleaning up all variables defined by a module. you must call variable_del() manually. Ugh.
#371235: How many different ways can you sort elements by weight?: There are (at least) four different sorting functions that are *exactly* the same, apart from what key in the array they are searching for. We need to clean this up.
The entire menu system.... got any idea how to use menu_tree_all_data()? it takes an $item parameter which is "A fully loaded menu link" but how do you load a menu link? you guessed it! using menu_link_load() which only takes mlid. any idea how to get an mlid for a path? well i sure don't unless i'm the one populating the menu_links table. menu.inc seems to be missing a ton of helper functions. if you want to do anything you basically end up copying a big chunk of core code and tweaking it. http://drupal.org/project/menu_block has some good helper functions for a few common use cases.
How about a "button" button. All Drupal buttons are currently 'submit' buttons. So if you just want to generate a click event, you have to either use javascript, which bypasses your theme, or create your own form element. This has been brought up in the issue queue several times, but chx, who appears to be in charge of this, steadfastly refuses to fix it. I really don't see what sense this makes.
User Experience (UX)
#91663: Permission of text format is not checked when editing an entity and instead reset to something a user can use.: You have "edit book page" content, and can edit every page except.. this... one. What on earth?! Where did my edit tab go?!? The answer is, someone set a format to something higher than you have permissions to. Of.. course. Let's fix this, so it stops causing a support burden for the documentation team.
Why are textfields sometimes filled through placeholders in angle brackets like / and sometimes through placeholders in square brackets? Shouldn't the angle ones be global tokens, too?