The "insert" part of this request is basically the respective issue as https://www.drupal.org/project/drupal/issues/66183
One of the most difficult things about manipulating Drupal forms is the process of manipulating the arrays themselves. And one of the things that I commonly want to do is "stick this stuff in after that". But I have yet to find a PHP function to manipulate arrays in this way.
So I wrote this function called
array_insert()
. Perhaps there's a cleaner way to handle this, but it seems like a function that should be available in Drupal core. It would certainly help with a lot of commonhook_form_alter()
tasks....
The "move" is something new (no equivalent d.org issue that I could find). I would like to be able to move an existing key in the array from its current position to the start/end of the array. So two new functions, like
backdrop_array_move_key_to_start($array, $key)
/backdrop_array_move_key_to_end($array, $key)
I usually achieve the "move to start" with this:
$my_array = array_merge(array($key => $my_array[$key]), $my_array);
...and "move to end" with this:
$move = $my_array[$key]; unset($my_array[$key]); $my_array[] = $move;
There could be more efficient/performant/readable ways, but it would be a much better DX if we did not have to search the web or previous code in Backdrop to find how to best do it. Helper functions with obvious names would be ideal for all that.
Recent comments
Hi Rob, Welcome to Backdrop! Here’s a quick overview: Subtheming Bootswatch: You should create your subtheme based on Bootstrap5 Lite, not directly on a Bootswatch style....
Basic Theme designing questions, using Bootstrap5 Lite
Hi Rolf, This happens because CKEditor saves absolute or semi-absolute paths in the HTML instead of using Backdrop’s file stream wrappers (like public://). When you move your site...
Losing link to embedded pictures when moving my installation
The error means the Stripe client isn’t initialized — $stripe is null. Fix steps: In CiviCRM → Payment Processors, ensure valid test/live API keys are entered and match the mode...
Getting Error after submitting event register form By using Stripe Payment Processor