Salve ragazzi:

Un utente deve visualizzare in una pagina di wordpress questa struttura ad albero dei file: deve vedere il contenuto di una specifica cartella su wordpress, deve riuscire ad esplorare e aprire i file eventualmente contenuti.

Ho scaricato questo script: https://www.abeautifulsite.net/php-file-tree e l'ho inserito nella cartella htdocs con xampp per vedere se localmente mi funziona.

L'esito � negativo, mi appare s�, la struttura ad albero dei file, ma non si pu� fare il collapse, cio� non posso chiudere ed aprire le cartelle in quanto risultano gi� tutte aperte. Inoltre mi appare una serie di errori:

Undefined variable: php_file_tree in H:\xampp\htdocs\Tree\php_file_tree.php on line 73
Undefined variable: code in H:\xampp\htdocs\Tree\php_file_tree.php on line 24


La cartella dello script � composta dai seguenti file:

- demo_jquery.php
- php_file_tree.php
- php_file_tree_jquery.js

Il contenuto di demo_jquery.php � questo:

[spoiler]
codice:
<?php// PHP File Tree Demo
// For documentation and updates, visit http://abeautifulsite.net/notebook.php?article=21


// Main function file
include("php_file_tree.php");


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>PHP File Tree Demo</title>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
		<link href="styles/default/default.css" rel="stylesheet" type="text/css" media="screen" />
		
		<!-- Makes the file tree(s) expand/collapsae dynamically -->
		<script src="jquery-1.3.2" type="text/javascript"></script>
		<script src="php_file_tree_jquery.js" type="text/javascript"></script>
	</head>


	<body>
	
		<h1>PHP File Tree with jQuery</h1>
		
		<p>
			This entire list was generated with one line of code:
		</p>
		
		<pre>	echo php_file_tree($_SERVER['DOCUMENT_ROOT'], &quot;javascript:alert('You clicked on [link]');&quot;);</pre>
		
		<p>
			The dynamic effects are enabled by including the jQuery library and one small JavaScript file:
		</p>
		
		<pre>	&lt;script src=&quot;jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;php_file_tree_jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
		
		<p>
			<a href="http://abeautifulsite.net/2007/06/php-file-tree/">Visit the project page</a>
		</p>
		
		<hr />
		
		<h2>Browing...</h2>
		
		<?php
		
		// This links the user to http://example.com/?file=filename.ext
		//echo php_file_tree($_SERVER['DOCUMENT_ROOT'], "http://example.com/?file=[link]/");


		// This links the user to http://example.com/?file=filename.ext and only shows image files
		//$allowed_extensions = array("gif", "jpg", "jpeg", "png");
		//echo php_file_tree($_SERVER['DOCUMENT_ROOT'], "http://example.com/?file=[link]/", $allowed_extensions);
		
		// This displays a JavaScript alert stating which file the user clicked on
		echo php_file_tree("demo/", "javascript:alert('You clicked on [link]');");
		
		?>
		
	</body>
	
</html>
[/spoiler]

Il contenuto di php_file_tree.php � questo:
[spoiler]
codice:
<?php
/*
	
	== PHP FILE TREE ==
	
		Let's call it...oh, say...version 1?
	
	== AUTHOR ==
	
		Cory S.N. LaViska
		http://abeautifulsite.net/
		
	== DOCUMENTATION ==
	
		For documentation and updates, visit http://abeautifulsite.net/notebook.php?article=21
		
*/




function php_file_tree($directory, $return_link, $extensions = array()) {
	// Generates a valid XHTML list of all directories, sub-directories, and files in $directory
	// Remove trailing slash
	if( substr($directory, -1) == "/" ) $directory = substr($directory, 0, strlen($directory) - 1);
	$code .= php_file_tree_dir($directory, $return_link, $extensions);
	return $code;
}


function php_file_tree_dir($directory, $return_link, $extensions = array(), $first_call = true) {
	// Recursive function called by php_file_tree() to list directories/files
	
	// Get and sort directories/files
	if( function_exists("scandir") ) $file = scandir($directory); else $file = php4_scandir($directory);
	natcasesort($file);
	// Make directories first
	$files = $dirs = array();
	foreach($file as $this_file) {
		if( is_dir("$directory/$this_file" ) ) $dirs[] = $this_file; else $files[] = $this_file;
	}
	$file = array_merge($dirs, $files);
	
	// Filter unwanted extensions
	if( !empty($extensions) ) {
		foreach( array_keys($file) as $key ) {
			if( !is_dir("$directory/$file[$key]") ) {
				$ext = substr($file[$key], strrpos($file[$key], ".") + 1); 
				if( !in_array($ext, $extensions) ) unset($file[$key]);
			}
		}
	}
	
	if( count($file) > 2 ) { // Use 2 instead of 0 to account for . and .. "directories"
		$php_file_tree = "<ul";
		if( $first_call ) { $php_file_tree .= " class=\"php-file-tree\""; $first_call = false; }
		$php_file_tree .= ">";
		foreach( $file as $this_file ) {
			if( $this_file != "." && $this_file != ".." ) {
				if( is_dir("$directory/$this_file") ) {
					// Directory
					$php_file_tree .= "<li class=\"pft-directory\"><a href=\"#\">" . htmlspecialchars($this_file) . "</a>";
					$php_file_tree .= php_file_tree_dir("$directory/$this_file", $return_link ,$extensions, false);
					$php_file_tree .= "</li>";
				} else {
					// File
					// Get extension (prepend 'ext-' to prevent invalid classes from extensions that begin with numbers)
					$ext = "ext-" . substr($this_file, strrpos($this_file, ".") + 1); 
					$link = str_replace("[link]", "$directory/" . urlencode($this_file), $return_link);
					$php_file_tree .= "<li class=\"pft-file " . strtolower($ext) . "\"><a href=\"$link\">" . htmlspecialchars($this_file) . "</a></li>";
				}
			}
		}
		$php_file_tree .= "</ul>";
	}
	return $php_file_tree;
}


// For PHP4 compatibility
function php4_scandir($dir) {
	$dh  = opendir($dir);
	while( false !== ($filename = readdir($dh)) ) {
	    $files[] = $filename;
	}
	sort($files);
	return($files);
}
[/spoiler]

Invece il contenuto di php_file_tree_jquery.js � questo:
[spoiler]
codice:
$(document).ready( function() {
	
	// Hide all subfolders at startup
	$(".php-file-tree").find("UL").hide();
	
	// Expand/collapse on click
	$(".pft-directory A").click( function() {
		$(this).parent().find("UL:first").slideToggle("medium");
		if( $(this).parent().attr('className') == "pft-directory" ) return false;
	});


});
[/spoiler]

Considerando che mi trovo in difficolt� in quanto non ho mai programmato, chiedo il vostro aiuto per riuscire a far funzionare questa cosa.
Ringrazio tutti coloro che mi risponderanno!