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]
[/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'], "javascript:alert('You clicked on [link]');");</pre> <p> The dynamic effects are enabled by including the jQuery library and one small JavaScript file: </p> <pre> <script src="jquery.js" type="text/javascript"></script> <script src="php_file_tree_jquery.js" type="text/javascript"></script></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>
Il contenuto di php_file_tree.php � questo:
[spoiler]
[/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); }
Invece il contenuto di php_file_tree_jquery.js � questo:
[spoiler]
[/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; }); });
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!

Rispondi quotando