I am using Fancytree, I want to generate a file/folder tree but excluding all folders that are not from the current user.
Example:
UPPERCASE = FOLDER
lowercase = file
I want to create a tree structure with the user "Peter"
I have several problems:
- I don't understand the
listFolders
function, I can't give it a parameter (like $ name_user) otherwise it doesn't work. - the lines >>
print_r ('TAKE THIS'. $ Dir);
<< show what I want to take, but it isforeach
which does not work - my code is duplicated because I can't create a function inside a function ...
Here is my code:
<?php
$name_user = 'Peter'; // actualy not user :-(
print_r(listFolders());
function listFolders($dir = __DIR__ . '/datausers') {
$dh = scandir($dir);
$name_user = "Peter";
$return = [];
if (strpos($dir, "/datausers/PERSONNAL") !== false){ // PERSONNAL found !
if ($dir === __DIR__ . '/datausers/PERSONNAL') {
print_r('TAKE THIS' . $dir);
echo '</br>';
foreach ($dh as $item) {
if ($item != '.' && $item != '..') {
if (is_dir($dir . '/' . $item)) { // it's a folder
$return[] = array(
'title' => $item,
'folder' => true,
'expanded'=> true,
'children' => listFolders($dir . '/' . $item, $key)
);
} else { // it's a file
$return[] = [
'title' => $item,
];
}
}
}
}
if (strpos($dir, "/datausers/PERSONNAL/" . $name_user) !== false){ // Peter found
print_r('TAKE THIS' . $dir);
echo '</br>';
foreach ($dh as $item) {
if ($item != '.' && $item != '..') {
if (is_dir($dir . '/' . $item)) { // it's a folder
$return[] = array(
'title' => $item,
'folder' => true,
'expanded'=> true,
'children' => listFolders($dir . '/' . $item, $key)
);
} else { // it's a file
$return[] = [
'title' => $item,
];
}
}
}
}
}
else {
print_r('TAKE THIS' . $dir);
echo '</br>';
foreach ($dh as $item) {
if ($item != '.' && $item != '..') {
if (is_dir($dir . '/' . $item)) { // it's a folder
$return[] = array(
'title' => $item,
'folder' => true,
'expanded'=> true,
'children' => listFolders($dir . '/' . $item, $key)
);
} else { // it's a file
$return[] = [`enter code here`
'title' => $item,
];
}
}
}
}
return $return;
}
?>