If a subqueue is reordered via its admin page (e.g., /admin/content/nodequeue/1/view/1), no hook_nodequeue_ gets invoked unless one of the items is removed from the subqueue. If the subqueue is simply being reordered, other modules aren't notified.
I added the following to the nodequeue_save_subqueue_order() function (right before the final "return array" line):
// notify other modules of the swap
module_invoke_all('nodequeue_swap', $sqid, $nid);
hook_nodequeue_swap is fine for my purposes, but I don't know if it is generally appropriate for this function since normally it is only called when two items are swapped. So perhaps a new hook is needed (_save? _update? _order?), and instead of passing a single $nid to it, it would receive an array of them in their new order.
Comments
Comment #1
amateescu commentedFixed in #1110954: Provide a nodequeue_save_subqueue_order_alter hook to allow other modules to respond to and affect the sort.