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>';
    }
}
Exemple #2
0
    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 != '' ? '&amp;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&eacute;er un dossier" />
					</div>
				</div>
			</fieldset>
			<?php 
    # Affichage de la zone d'upload de fichier
    ?>