Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.
LLMS_Forms::get_block_tree( array $block, array[] $block_list )
Returns a filtered version of $block_list containing only the passed $block and its parents.
Parameters Parameters
- $block
-
(array) (Required) Parsed block array.
- $block_list
-
(array[]) (Required) The list of WP Block array
$blockcomes from.
Return Return
(array[]) Filtered version of $block_list containing only the passed $block and its parents. Or an empty array if $block cannot be found within $block_list.
Source Source
File: includes/forms/class-llms-forms.php
* @return array[] Filtered version of `$block_list` containing only the passed `$block` and its parents.
* Or an empty array if `$block` cannot be found within `$block_list`.
*/
private function get_block_tree( $block, $block_list ) {
foreach ( $block_list as &$_block ) {
// Found the block.
if ( $block === $_block ) {
return array( $block );
}
if ( ! empty( $_block['innerBlocks'] ) ) {
$tree = $this->get_block_tree( $block, $_block['innerBlocks'] );
}
if ( ! empty( $tree ) ) { // Break as soon as the desired block is removed from one of the innerBlocks.
if ( $_block['innerBlocks'] !== $tree ) { // Update innerBlocks/innerContent structure if needed.
$_block['innerBlocks'] = $tree;
// Update innerContent to reflect the innerBlocks changes = only 1 innerBlock.
$inner_block_in_content_index = 0;
foreach ( $_block['innerContent'] as $index => $chunk ) {
if ( ! is_string( $chunk ) && $inner_block_in_content_index++ ) {
unset( $_block['innerContent'][ $index ] );
}
}
// Re-index.
$_block['innerContent'] = array_values( $_block['innerContent'] );
}
return array( $_block );
}
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 5.1.0 | Introduced. |