рдЕрдХреНрд╕рд░ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдерд╛ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рдХреА рд╡реГрдХреНрд╖ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо, рд╕рд╛рдЗрдЯ рдореЗрдиреВ рдпрд╛ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рдиред

HTML рдореЗрдВ рдЯреНрд░реА рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рд╕реВрдЪреА рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЧрддрд┐рд╢реАрд▓ рдЧреБрдгреЛрдВ рд╡рд╛рд▓реЗ рдкреЗрдбрд╝реЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЖрдк рдпрд╣рд╛рдБ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЪреВрдВрдХрд┐ рд╕рдорд╛рдзрд╛рди рдЖрдорддреМрд░ рдкрд░ рддреЗрдЬрд╝ рд╣реИ, jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдЧрддрд┐рд╢реАрд▓ рдкреЗрдбрд╝реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдХреЛрдбрд┐рдВрдЧ рд╕рдордп рдХреА рдПрдХ рд╕рднреНрдп рд░рд╛рд╢рд┐ рдХреА рдмрдЪрдд рд╣реЛрддреА рд╣реИред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдЯрди рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреЛрдЬ рдЗрдВрдЬрди рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рджреЗрдЦреЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрдХреНрд╕рд░ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрдм рдкреЗрдбрд╝ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЫреЛрдЯреА рдЪрд┐рдк рдирд╣реАрдВ рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдкреЗрдбрд╝ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред
рдЖрдЬ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреИрдпрд╛рд░реА рдХреА рдореЗрдЬ рдкрд░ рджреЛ рдкреЗрдбрд╝ рд╣реИрдВ:
рдЯреНрд░реАрд╡реНрдпреВ рдФрд░
jQuery рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА ред
рдЯреНрд░реАрд╡реНрдпреВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреЗрдбрд╝ рдореЗрдВ рдирдП рдиреЛрдбреНрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдУрд░, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рдЕрдЬреАрдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреЗрдбрд╝ рдореЗрдВ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирдП рдиреЛрдбреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣:
var tree = $( ".selector" ).treeview();
$( ".button" ).click( function () {
var newSublist = $( "<li><span class='folder'>New Sublist</span><ul>" +
"<li><span class='file'>Item1</span></li>" +
"<li><span class='file'>Item2</span></li></ul></li>" ).appendTo(tree);
tree.treeview({
add: newSublist
});
});
рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИ, рдПрдХ рдиреЛрдб рдпрд╛ рддреЛ рдкреЗрдбрд╝ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдмрдиреЛрдб рдореЗрдВред рд▓реЗрдХрд┐рди рдЪрдпрдирд┐рдд рдЙрдк-рд╕рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ рдиреЛрдб рдХреНрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдХреА рдЦреЛрдЬ, рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкреЗрдбрд╝ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрд╛рд╣рд░реА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
$( function () {
var pervios_node; //
$( "#browser" ).treeview({
toggle: function () { //
$( this ).addClass( "selector" ); //
// ( )
if (pervios_node!=undefined && pervios_node!= this ) {
//
$(pervios_node).removeClass( "selector" );
};
pervios_node= this ;
}
});
$( "#add" ).click( function () {
//
var branches = $( "<li><span class='folder'>New Sublist</span><ul><li><span class='file'>Item2</span></li></ul></li>" ).appendTo( "li.selector ul:first" );
$( "#browser" ).treeview({
add: branches
});
});
});
рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ
appendTo ("li.selector ul: first") рд╣реИ ред рд╣рдордиреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдиреЛрдб рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЕрдм рд╣рдо рдЗрд╕реЗ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирдП рдиреЛрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛ рдкреЗрдбрд╝ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рджреЛрд╖ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдиреЗрдХреНрдЯрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рддреЛ рдЖрдк рдШреЛрдбрд╝реЗ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рдПрдХ рдЫреЛрдЯреА рд╕реА рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЗрдбрд╝ рдХреЛ рд╕реНрд╡рдпрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЪрд▓реЛ jqueryFileTree.js рдЯреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЯреНрд░реА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:
var show_root=1; //true
рдЗрдЯрд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдиреАрдЪреЗ, рд╣рдо рд▓рд╛рдкрддрд╛ рд░реВрдЯ рдкреИрд░рд╛рдореАрдЯрд░ (рдЕрдм рдХрдиреЗрдХреНрдЯрд░ рдЕрдиреБрдкрд▓рдмреНрдз рдЪрд░ рдкрд░ рд╢рдкрде рдирд╣реАрдВ рд▓реЗрдВрдЧреЗ) рдХреЛ рдЬреЛрдбрд╝рдХрд░ POST рдЕрдиреБрд░реЛрдз рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ, рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдо рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдХрдиреЗрдХреНрдЯрд░ рдореЗрдВ рдкрдереЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдиреЛрдб рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рд╢реЛрдЪред
$.post(o.script, { dir: t, root: '' ,showroot:show_root }, function (data) {
тАж
});
show_root=0; //false
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рдж, рд╣рдо рд░реВрдЯ рдиреЛрдб рдХреЛ рдкреЗрдбрд╝ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдмрдиреЙрдбреНрд╕ рдореЗрдВ рдкреНрд░рдХрдЯ рди рд╣реЛред
рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ рдХрдиреЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛ред
$_POST[ 'dir' ] = urldecode($_POST[ 'dir' ]);
$root= urldecode($_POST[ 'root' ]);
$show_root=( bool )urldecode($_POST[ 'showroot' ]);
if ( file_exists($root . $_POST[ 'dir' ]) ) {
$files = scandir($root . $_POST[ 'dir' ]);
natcasesort($files);
if ( count($files) > 2 ) { /* The 2 accounts for . and .. */
echo "<ul class=\"jqueryFileTree\" style=\"display: none;\">" ;
//
if ($show_root)
{
echo "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" . htmlentities($_POST[ 'dir' ] . "." ) . "/\">root</a></li>" ;
}
else
{
// All dirs
foreach ( $files as $file ) {
if ( file_exists($root . $_POST[ 'dir' ] . $file) &&
$file != '.' &&
$file != '..' &&
is_dir($root . $_POST[ 'dir' ] . $file) ) {
echo "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" . htmlentities($_POST[ 'dir' ] . $file) . "/\">" . htmlentities($file) . "</a></li>" ;
}
}
// All files
}
echo "</ul>" ;
}
}
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдмрд╛рдХреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреЗрдбрд╝ рдХреЗ рд╕рдмрдиреЙрдбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
рдпреБрдкреАрдбреА:рдкреЗрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдбреЗрдореЛ
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред