public ViewUI::addFormToStack($key, $display_id, $type, $id = NULL, $top = FALSE, $rebuild_keys = FALSE)
Add another form to the stack; clicking 'apply' will go to this form rather than closing the ajax popup.
File
- core/modules/views_ui/src/ViewUI.php, line 379
Class
- ViewUI
- Stores UI related temporary settings.
Namespace
Drupal\views_ui
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | public function addFormToStack( $key , $display_id , $type , $id = NULL, $top = FALSE, $rebuild_keys = FALSE) { // Reset the cache of IDs. Drupal rather aggressively prevents ID // duplication but this causes it to remember IDs that are no longer even // being used. Html::resetSeenIds(); if ( empty ( $this ->stack)) { $this ->stack = array (); } $stack = array (implode( '-' , array_filter ( array ( $key , $this ->id(), $display_id , $type , $id ))), $key , $display_id , $type , $id ); // If we're being asked to add this form to the bottom of the stack, no // special logic is required. Our work is equally easy if we were asked to add // to the top of the stack, but there's nothing in it yet. if (! $top || empty ( $this ->stack)) { $this ->stack[] = $stack ; } // If we're adding to the top of an existing stack, we have to maintain the // existing integer keys, so they can be used for the "2 of 3" progress // indicator (which will now read "2 of 4"). else { $keys = array_keys ( $this ->stack); $first = current( $keys ); $last = end ( $keys ); for ( $i = $last ; $i >= $first ; $i --) { if (!isset( $this ->stack[ $i ])) { continue ; } // Move form number $i to the next position in the stack. $this ->stack[ $i + 1] = $this ->stack[ $i ]; unset( $this ->stack[ $i ]); } // Now that the previously $first slot is free, move the new form into it. $this ->stack[ $first ] = $stack ; ksort( $this ->stack); // Start the keys from 0 again, if requested. if ( $rebuild_keys ) { $this ->stack = array_values ( $this ->stack); } } } |
Please login to continue.