function displayFolders($folder_id = 0, $level = 0) { global $AppUI, $m, $a, $tab; global $current_uri; global $canAccess_folders, $canRead_folders, $canEdit_folders; global $canAuthor_folders, $canDelete_folders; global $company_id, $project_id, $task_id; global $allowedCompanies, $allowedProjects, $allowedTasks, $allowedFolders; $q = new DBQuery(); $folders = array(); // retrieve all info of $folder_id if ($folder_id) { $q->addTable('file_folders', 'ff'); $q->addQuery('ff.*'); $q->addWhere('ff.file_folder_id = ' . $folder_id); $folder_sql = $q->prepare(); $q->clear(); $folders = db_loadList($folder_sql); } else { $folders[0]['file_folder_name'] = $AppUI->_('Root'); $folders[0]['file_folder_description'] = ''; $folder_id = 0; } //get file count for folder $file_count = countFiles($folder_id); //check permissions $canAccess_this = getPermission('file_folders', 'access', $folder_id); $canRead_this = getPermission('file_folders', 'view', $folder_id); $canEdit_this = getPermission('file_folders', 'edit', $folder_id); $canAuthor_this = getPermission('file_folders', 'add', $folder_id); $canDelete_this = getPermission('file_folders', 'delete', $folder_id); if (!$canRead_this && $folder_id) { return; } foreach ($folders as $row) { //"loop" through one folder if ($canRead_this && $level) { // indent and display the title echo '<table width="100%"><tr>' . "\n"; echo '<td>' . "\n"; } echo '<span class="folder-name' . (!($folder_id && $level) ? '-current' : '') . '">' . "\n"; echo ($m == 'files' ? '<a' . ($folder_id ? ' href="./index.php?m=' . $m . '&a=' . $a . '&tab=' . $tab . '&folder=' . $folder_id . '"' : '') . ' name="ff' . $folder_id . '">' : '') . "\n"; echo dPshowImage(DP_BASE_URL . '/modules/files/images/folder5_small.png', '16', '16', 'folder icon', $AppUI->_('show only this folder')) . $row['file_folder_name'] . "\n"; echo ($m == 'files' ? '</a>' : '') . "\n"; if ($file_count > 0) { echo '<a href="#ff' . $folder_id . '" onClick="expand(' . "'files_" . $folder_id . "'" . ')" class="has-files">(' . $file_count . ' files) +</a>' . "\n"; } echo "</span>\n" . ($level ? "</td>\n" : ''); if ($row['file_folder_description'] && !($folder_id && $level)) { echo '<p>' . $row['file_folder_description'] . '</p>'; } else { if ($level) { if ($folder_id) { echo '<form id="frm_remove_folder_' . $folder_id . '" name="frm_remove_folder_' . $folder_id . '" action="?m=files" method="post">' . "\n" . '<input type="hidden" name="dosql" value="do_folder_aed" />' . "\n" . '<input type="hidden" name="del" value="1" />' . "\n" . '<input type="hidden" name="file_folder_id" value="' . $folder_id . '" />' . "\n" . '<input type="hidden" name="redirect" value="' . $current_uri . '" />' . "</form>\n"; echo '<td align="right" width="64" nowrap="nowrap">' . "\n"; //edit folder if ($canEdit_this) { echo '<a href="./index.php?m=files&a=addedit_folder&folder=' . $folder_id . '">' . dPshowImage(DP_BASE_URL . '/modules/files/images/filesaveas.png', '16', '16', 'edit icon', 'edit this folder') . '</a>'; } //add folder if ($canAuthor_this) { echo '<a href="./index.php?m=files&a=addedit_folder&file_folder_parent=' . $folder_id . '&folder=0">' . dPshowImage(DP_BASE_URL . '/modules/files/images/edit_add.png', '16', '16', 'new folder', $AppUI->_('add a new subfolder')) . '</a>'; } if ($canDelete_this) { //remove folder echo '<a href="#" onclick="delCheck(' . "'" . $folder_id . "'" . ')">' . dPshowImage(DP_BASE_URL . '/modules/files/images/remove.png', '16', '16', 'delete icon', $AppUI->_('delete this folder')) . '</a>'; } //add file to folder echo '<a href="./index.php?m=files&a=addedit&folder=' . $folder_id . '&project_id=' . $project_id . '&file_id=0">' . dPshowImage(DP_BASE_URL . '/modules/files/images/folder_new.png', '16', '16', 'new file', $AppUI->_('add new file to this folder')) . '</a>'; echo "</td>\n"; echo "</tr></table>\n"; } } } if ($file_count > 0) { //echo ('<div class="files-list" id="files_' . $folder_id . '" style="display:' // . (($level || $open_folder ) ? 'none' : 'block') . ';">'); echo '<div class="files-list" id="files_' . $folder_id . '" style="display: none;">'; displayFiles($folder_id); echo '</div>'; } else { if ($folder && !($folder_id && $level)) { echo $AppUI->_('No Result(s)'); } } } // retrieve all children of $folder_id $q->addTable('file_folders', 'ff'); $q->addQuery('ff.*'); $q->addWhere('ff.file_folder_parent = ' . $folder_id); if (count($allowedFolderIDs)) { $q->addWhere($allowedFolderIDs); } $q->addOrder('ff.file_folder_name'); $folder_children_sql = $q->prepare(); $q->clear(); $folders_children = db_loadList($folder_children_sql); foreach ($folders_children as $kid_row) { // call this function again to its children echo '<ul><li>'; displayFolders($kid_row['file_folder_id'], $level + 1); echo '</li></ul>'; } }
plxUtils::printSelect('sel_medias', array('images' => 'Images', 'documents' => 'Documents'), $medias); ?> <input class="button" type="submit" name="medias" value="Ok" /> </div> </form> <form class="cssform" enctype="multipart/form-data" action="medias.php?dir=<?php echo urlencode($dir); echo $view != '' ? '&v=' . $view : ''; ?> " method="post"> <fieldset style="float:left"> <div style="border:1px solid #333333;"> <div style="height:170px;overflow:auto;"> <?php displayFolders($dir, $plxMedias, $view); # Affichage de la liste des dossiers ?> </div> <?php # Affichage creation nouveau dossier ?> <div style="background-color:#EDE9E3;padding:2px;border-top:1px solid #333333;"> <input type="text" name="newdir" size="15" /><input type="submit" name="create" value="Créer un dossier" /> </div> </div> </fieldset> <?php # Affichage de la zone d'upload de fichier ?>