Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
When hook_form_altering the node editing form, there's crazy goofy things that need to be done -- pulling a form element out of the form, checking for a special key, appending it to the form_id, and so on...
This just sets $form['#node_edit_form'] = TRUE. Check that, and you know you're on the node edit form. ;) It's not a killer patch or anything, but it would definitely make things simpler.
Comment | File | Size | Author |
---|---|---|---|
#12 | drupal.node-form-checking.patch | 6.29 KB | sun |
#11 | mw.patch | 5.63 KB | moshe weitzman |
#6 | mw.patch | 5.09 KB | moshe weitzman |
#5 | mw.patch | 5.09 KB | moshe weitzman |
nodetype_form.patch | 3.77 KB | eaton | |
Comments
Comment #1
moshe weitzman CreditAttribution: moshe weitzman commentedoh yes, this is far too messy right now. subscribe.
Comment #2
catchno longer applies. Probably small enough it could squeeze into this version though.
Comment #3
moshe weitzman CreditAttribution: moshe weitzman commentedanyone available to reroll and rtbc this?
Comment #4
PanchoMoving feature requests to D7 queue.
Comment #5
moshe weitzman CreditAttribution: moshe weitzman commentedBack from the dead, and ready for review. The whole test suite is passing for me.
Comment #6
moshe weitzman CreditAttribution: moshe weitzman commentedNow, with a period at end of a comment, as suggested by Catch.
Comment #7
webchick+100 for something nicer than
This patch is a really nice DX improvement.
However, why:
Since $form['#node'] is set on any form where $form['#node_edit_form'], you can just use $form['#node']->type same as you use $form['#node']->nid or any other node property. Then that makes one less FAPI property for people to know about.
Comment #8
eaton CreditAttribution: eaton commentedYeah, I concur that the #node_type property is overkill. checking for #node to ensure that it's a node edit form is risky, but once we know it's a node edit form, we can very easily check its type. Thanks to PHP eval order, the following works nicely:
if (!empty($form['#node_edit_form']) && $form['#node']->type == 'blog') {...}
Comment #9
webchickCool. Let's remove that (doesn't seem to be used anywhere in the patch) and get correct the "// Set the id of the top-level form tag" comment so it correctly reflects what the code below is doing now.
Comment #10
webchickMy mistake, I was looking at an earlier patch "+ // Set the id and other useful elements." capitalize ID please.
Also, I don't see a hunk for book.module? Are there other ones we're missing too?
Comment #11
moshe weitzman CreditAttribution: moshe weitzman commentedRemoved that extra line which set the type. I did *not* change id to ID because I refer to the HTML id attribute which is almost always lowercase.
I added the book.module hunk. I searched for more instances of this node form check but found none more in core.
Comment #12
sunRe-rolled with appropriate menu.module changes.
Comment #13
Dries CreditAttribution: Dries commentedLooks like a small but valuable improvement and all tests continue to pass. Committed to CVS HEAD.
Comment #14
webchickDocs, please! :D
* Need an update to the upgrading docs
* Need an update to the FAPI reference for HEAD.
Comment #15
moshe weitzman CreditAttribution: moshe weitzman commentedAdded to upgrade guide http://drupal.org/node/224333#node_form ... I'm not touching that FAPI reference doc though. I proposed an alternate solution for that doc but it has not been embraced yet - #100680: [meta] Make API module generate Form API documentation
Comment #16
sun.
Comment #17
sun.