WordPress Version: 6.4
/**
* Outputs the formatted file list for the plugin file editor.
*
* @since 4.9.0
* @access private
*
* @param array|string $tree List of file/folder paths, or filename.
* @param string $label Name of file or folder to print.
* @param int $level The aria-level for the current iteration.
* @param int $size The aria-setsize for the current iteration.
* @param int $index The aria-posinset for the current iteration.
*/
function wp_print_plugin_file_tree($tree, $label = '', $level = 2, $size = 1, $index = 1)
{
global $file, $plugin;
if (is_array($tree)) {
$index = 0;
$size = count($tree);
foreach ($tree as $label => $plugin_file) {
++$index;
if (!is_array($plugin_file)) {
wp_print_plugin_file_tree($plugin_file, $label, $level, $index, $size);
continue;
}
?>
<li role="treeitem" aria-expanded="true" tabindex="-1"
aria-level="<?php
echo esc_attr($level);
?>"
aria-setsize="<?php
echo esc_attr($size);
?>"
aria-posinset="<?php
echo esc_attr($index);
?>">
<span class="folder-label"><?php
echo esc_html($label);
?> <span class="screen-reader-text">
<?php
/* translators: Hidden accessibility text. */
_e('folder');
?>
</span><span aria-hidden="true" class="icon"></span></span>
<ul role="group" class="tree-folder"><?php
wp_print_plugin_file_tree($plugin_file, '', $level + 1, $index, $size);
?></ul>
</li>
<?php
}
} else {
$url = add_query_arg(array('file' => rawurlencode($tree), 'plugin' => rawurlencode($plugin)), self_admin_url('plugin-editor.php'));
?>
<li role="none" class="<?php
echo esc_attr(($file === $tree) ? 'current-file' : '');
?>">
<a role="treeitem" tabindex="<?php
echo esc_attr(($file === $tree) ? '0' : '-1');
?>"
href="<?php
echo esc_url($url);
?>"
aria-level="<?php
echo esc_attr($level);
?>"
aria-setsize="<?php
echo esc_attr($size);
?>"
aria-posinset="<?php
echo esc_attr($index);
?>">
<?php
if ($file === $tree) {
echo '<span class="notice notice-info">' . esc_html($label) . '</span>';
} else {
echo esc_html($label);
}
?>
</a>
</li>
<?php
}
}