function traverseDirTree($base, $root) { global $db; $subdirectories = opendir($base); $dirs = countDir($base); $length = countFiles($base); $dirInc = 0; if ($dirs <= 0) { return; } for ($i = 0; $i < $length; $i++) { $subdirectory = readdir($subdirectories); $path = $base . $subdirectory; if ($subdirectory != '.' && $subdirectory != '..' && is_dir($path)) { if ($root && $dirInc == 0) { echo '<ul>'; } if ($db->is('path') && $subdirectory != '_thumbs') { if ($db->filter('path') == $path . "/") { echo '<li class="show"><div id="' . $path . '" class="conMenu" onclick="sumo2.ftp.RefreshFileView(\'' . $path . '/' . '\')">' . $subdirectory . '</div>'; } else { echo '<li><div id="' . $path . '" class="conMenu" onclick="sumo2.ftp.RefreshFileView(\'' . $path . '/' . '\')">' . $subdirectory . '</div>'; } } else { if ($subdirectory == 'Documents') { echo '<li class="show"><div id="' . $path . '" class="conMenu" onclick="sumo2.ftp.RefreshFileView(\'' . $path . '/' . '\')">' . $subdirectory . '</div>'; } else { if ($subdirectory != '_thumbs') { echo '<li><div id="' . $path . '" class="conMenu" onclick="sumo2.ftp.RefreshFileView(\'' . $path . '/' . '\')">' . $subdirectory . '</div>'; } } } traverseDirTree($path . '/', true); echo '</li>'; if ($root && $dirInc == $dirs - 1) { echo '</ul>'; } $dirInc++; } } }
function getFolders($parent, $level = 0) { global $AppUI, $allowed_folders_ary, $denied_folders_ary, $tab, $m, $a, $company_id, $allowed_companies, $project_id, $task_id, $current_uri, $file_types; // retrieve all children of $parent $folder_where = "file_folder_parent='{$parent}'"; // $folder_where .= (count($denied_folders_ary) > 0) ? "\nAND file_folder_id NOT IN (" . implode(",", $denied_folders_ary) . ")" : ""; $q = new DBQuery(); $q->addTable('file_folders'); $q->addQuery('*'); $q->addWhere($folder_where); $q->addOrder('file_folder_name'); $folder_sql = $q->prepare(); $q->clear(); $folders = db_loadList($folder_sql); // display each child foreach ($folders as $row) { if (array_key_exists($row['file_folder_id'], $allowed_folders_ary) or array_key_exists($parent, $allowed_folders_ary)) { // indent and display the title of this child $file_count = countFiles($row['file_folder_id']); echo '<ul><li><table width="100%"><tr><td><span class="folder-name">'; if ($m == 'files') { echo '<a href="./index.php?m=' . $m . '&a=' . $a . '&tab=' . $tab . '&folder=' . $row['file_folder_id'] . '" name="ff' . $row['file_folder_id'] . '">'; } echo dPshowImage('./modules/files/images/folder5_small.png', '16', '16', 'folder icon', 'show only this folder'); if ($m == 'files') { '</a>' . '<a href="./index.php?m=' . $m . '&a=' . $a . '&tab=' . $tab . '&folder=' . $row['file_folder_id'] . '" name="ff' . $row['file_folder_id'] . '">'; } echo $row['file_folder_name']; if ($m == 'files') { '</a>'; } if ($file_count > 0) { echo ' <a href="#ff' . $row['file_folder_id'] . '" onClick="expand(\'files_' . $row['file_folder_id'] . '\')" class="has-files">(' . $file_count . ' files) +</a>'; } echo "</td>\n"; echo ' <form name="frm_remove_folder_' . $row['file_folder_id'] . '" action="?m=files" method="post"> <input type="hidden" name="dosql" value="do_folder_aed" /> <input type="hidden" name="del" value="1" /> <input type="hidden" name="file_folder_id" value="' . $row['file_folder_id'] . '" /> <input type="hidden" name="redirect" value="' . $current_uri . '" /> </form>'; echo "<td align='right' width='64' nowrap>\n"; echo '<a href="./index.php?m=files&a=addedit_folder&folder=' . $row['file_folder_id'] . '">' . dPshowImage('./modules/files/images/filesaveas.png', '16', '16', 'edit icon', 'edit this folder') . '</a>' . '<a href="./index.php?m=files&a=addedit_folder&file_folder_parent=' . $row['file_folder_id'] . '&file_folder_id=0">' . dPshowImage('./modules/files/images/edit_add.png', '', '', 'new folder', 'add a new subfolder') . '</a>' . '<a href="#" onclick="if (confirm(\'Are you sure you want to delete this folder?\')) {document.frm_remove_folder_' . $row['file_folder_id'] . '.submit()}">' . dPshowImage('./modules/files/images/remove.png', '', '', 'delete icon', 'delete this folder') . '</a>' . '<a href="./index.php?m=files&a=addedit&folder=' . $row['file_folder_id'] . '&project_id=' . $project_id . '&file_id=0">' . dPshowImage('./modules/files/images/folder_new.png', '', '', 'new file', 'add new file to this folder') . '</a>'; echo "</td></tr></table></span>\n"; if ($file_count > 0) { echo '<div class="files-list" id="files_' . $row['file_folder_id'] . '" style="display: none;">'; displayFiles($row['file_folder_id']); echo "</div>"; } } // call this function again to display this // child's children if (!getFolders($row['file_folder_id'], $level + 1)) { echo "</li>"; } else { echo "</li></ul>"; } } return true; }
function displayFiles($folder_id) { global $AppUI, $m, $a, $tab, $page; global $current_uri; global $canAccess, $canRead, $canEdit, $canAuthor, $canDelete; global $canAccess_folders, $canRead_folders, $canEdit_folders; global $canAuthor_folders, $canDelete_folders; global $company_id, $project_id, $task_id; global $allowedCompanies, $allowedProjects, $allowedTasks, $allowedFolders; global $showProject, $cfObj, $dPconfig; $df = $AppUI->getPref('SHDATEFORMAT'); $tf = $AppUI->getPref('TIMEFORMAT'); $file_types = dPgetSysVal('FileType'); $xpg_pagesize = 30; //TODO?: Set by System Config Value ... $xpg_totalrecs = countFiles($folder_id); //get file count for folder $xpg_total_pages = $xpg_totalrecs > $xpg_pagesize ? ceil($xpg_totalrecs / $xpg_pagesize) : 1; $xpg_min = $xpg_pagesize * ($page - 1); // This is where we start our record set from $q = new DBQuery(); // most recent version info per file_project and file_version_id $q->createTemp('files_count_max' . $folder_id); $q->addTable('files', 'f'); $q->addQuery('DISTINCT count(f.file_id) as file_versions' . ', max(f.file_version) as file_lastversion' . ', file_version_id, f.file_project'); $q->addJoin('projects', 'p', 'p.project_id = f.file_project'); $q->addJoin('tasks', 't', 't.task_id = f.file_task'); $q->addJoin('file_folders', 'ff', 'ff.file_folder_id = f.file_folder'); $q->addWhere('f.file_folder = ' . $folder_id); if (count($allowedProjects)) { $q->addWhere('((' . implode(' AND ', $allowedProjects) . ') OR f.file_project = 0)'); } if (count($allowedTasks)) { $q->addWhere('((' . implode(' AND ', $allowedTasks) . ') OR f.file_task = 0)'); } if (count($allowedFolders)) { $q->addWhere('((' . implode(' AND ', $allowedFolders) . ') OR f.file_folder = 0)'); } if ($company_id) { $q->innerJoin('companies', 'co', 'co.company_id = p.project_company'); $q->addWhere('co.company_id = ' . $company_id); if (count($allowedCompanies)) { $q->addWhere('(' . implode(' AND ', $allowedCompanies) . ')'); } } $q->addGroup('f.file_version_id'); $q->addGroup('f.file_project'); $file_version_max_counts = $q->exec(); $q->clear(); // most recent version $q->addTable('files', 'f'); $q->addQuery('f.*, fmc.file_versions, round(fmc.file_lastversion, 2) as file_lastversion' . ', u.user_username as file_owner, ff.file_folder_name' . ', ff.file_folder_id, ff.file_folder_name, p.project_name' . ', p.project_color_identifier, p.project_owner, c.contact_first_name' . ', c.contact_last_name, t.task_name, u.user_username as file_owner' . ', cc.contact_first_name as checkout_first_name' . ', cc.contact_last_name as checkout_last_name'); $q->addJoin('files_count_max' . $folder_id, 'fmc', '(fmc.file_lastversion=f.file_version AND fmc.file_version_id=f.file_version_id' . ' AND fmc.file_project=f.file_project)', 'inner'); $q->addJoin('projects', 'p', 'p.project_id = f.file_project'); $q->addJoin('users', 'u', 'u.user_id = f.file_owner'); $q->addJoin('contacts', 'c', 'c.contact_id = u.user_contact'); $q->addJoin('tasks', 't', 't.task_id = f.file_task'); $q->addJoin('file_folders', 'ff', 'ff.file_folder_id = f.file_folder'); $q->leftJoin('users', 'cu', 'cu.user_id = f.file_checkout'); $q->leftJoin('contacts', 'cc', 'cc.contact_id = cu.user_contact'); $q->addWhere('f.file_folder = ' . $folder_id); if (count($allowedProjects)) { $q->addWhere('((' . implode(' AND ', $allowedProjects) . ') OR f.file_project = 0)'); } if (count($allowedTasks)) { $q->addWhere('((' . implode(' AND ', $allowedTasks) . ') OR f.file_task = 0)'); } if (count($allowedFolders)) { $q->addWhere('((' . implode(' AND ', $allowedFolders) . ') OR f.file_folder = 0)'); } if ($project_id) { $q->addWhere('f.file_project = ' . $project_id); } if ($task_id) { $q->addWhere('f.file_task = ' . $task_id); } if ($company_id) { $q->innerJoin('companies', 'co', 'co.company_id = p.project_company'); $q->addWhere('co.company_id = ' . $company_id); if (count($allowedCompanies)) { $q->addWhere('(' . implode(' AND ', $allowedCompanies) . ')'); } } $q->addOrder('p.project_name'); $q->setLimit($xpg_pagesize, $xpg_min); $files_sql = $q->prepare(); $q->clear(); // all versions $q->addTable('files', 'f'); $q->addQuery('f.*, ff.file_folder_id, ff.file_folder_name, p.project_name' . ', p.project_color_identifier, p.project_owner, c.contact_first_name' . ', c.contact_last_name, t.task_name, u.user_username as file_owner'); $q->addJoin('projects', 'p', 'p.project_id = f.file_project'); $q->addJoin('users', 'u', 'u.user_id = f.file_owner'); $q->addJoin('contacts', 'c', 'c.contact_id = u.user_contact'); $q->addJoin('tasks', 't', 't.task_id = f.file_task'); $q->addJoin('file_folders', 'ff', 'ff.file_folder_id = f.file_folder'); $q->addWhere('f.file_folder = ' . $folder_id); if (count($allowedProjects)) { $q->addWhere('((' . implode(' AND ', $allowedProjects) . ') OR f.file_project = 0)'); } if (count($allowedTasks)) { $q->addWhere('((' . implode(' AND ', $allowedTasks) . ') OR f.file_task = 0)'); } if (count($allowedFolders)) { $q->addWhere('((' . implode(' AND ', $allowedFolders) . ') OR f.file_folder = 0)'); } if ($project_id) { $q->addWhere('f.file_project = ' . $project_id); } if ($task_id) { $q->addWhere('f.file_task = ' . $task_id); } if ($company_id) { $q->innerJoin('companies', 'co', 'co.company_id = p.project_company'); $q->addWhere('co.company_id = ' . $company_id); if (count($allowedCompanies)) { $q->addWhere('(' . implode(' AND ', $allowedCompanies) . ')'); } } $file_versions_sql = $q->prepare(); $q->clear(); //file arrays $files = array(); $file_versions = array(); if ($canRead) { $files = db_loadList($files_sql); $file_versions = db_loadHashList($file_versions_sql, 'file_id'); } $q->dropTemp('files_count_max' . $folder_id); $q->exec(); if ($files == array()) { return; } ?> <table width="100%" border="0" cellpadding="2" cellspacing="1" class="tbl"> <tr> <th nowrap="nowrap"><?php echo $AppUI->_('File Name'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Description'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Versions'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Category'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Task Name'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Owner'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Size'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Date'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('co Reason'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('co'); ?> </th> <th nowrap width="1"></th> <th nowrap width="1"></th> </tr> <?php $fp = -1; $file_date = new CDate(); $id = 0; foreach ($files as $row) { $file_date = new CDate($row['file_date']); $canEdit_file = getPermission('files', 'edit', $row['file_id']); //single file if ($fp != $row['file_project']) { if (!$row['file_project']) { $row['project_name'] = $AppUI->_('Not associated to projects'); $row['project_color_identifier'] = 'f4efe3'; } if ($showProject) { $style = 'background-color:#' . $row['project_color_identifier'] . ';color:' . bestColor($row['project_color_identifier']); ?> <tr> <td colspan="20" style="border: outset 2px #eeeeee;<?php echo $style; ?> "> <a href="?m=projects&a=view&project_id=<?php echo $row['file_project']; ?> "> <span style="<?php echo $style; ?> "><?php echo $row['project_name']; ?> </span></a> </td> </tr> <?php } } $fp = $row['file_project']; ?> <form name="frm_remove_file_<?php echo $row['file_id']; ?> " action="?m=files" method="post"> <input type="hidden" name="dosql" value="do_file_aed" /> <input type="hidden" name="del" value="1" /> <input type="hidden" name="file_id" value="<?php echo $row['file_id']; ?> " /> <input type="hidden" name="redirect" value="<?php echo $current_uri; ?> " /> </form> <form name="frm_duplicate_file_<?php echo $row['file_id']; ?> " action="?m=files" method="post"> <input type="hidden" name="dosql" value="do_file_aed" /> <input type="hidden" name="duplicate" value="1" /> <input type="hidden" name="file_id" value="<?php echo $row['file_id']; ?> " /> <input type="hidden" name="redirect" value="<?php echo $current_uri; ?> " /> </form> <tr> <td nowrap="8%"> <?php $file_icon = getIcon($row['file_type']); ?> <a href="./fileviewer.php?file_id=<?php echo $row['file_id']; ?> " title="<?php echo $row['file_description']; ?> "> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/' . $file_icon, '16', '16'); ?> <?php echo $row['file_name']; ?> </a> </td> <td width="20%"><?php echo $row['file_description']; ?> </td> <td width="5%" nowrap="nowrap" align="center"> <?php $hidden_table = ''; echo $row['file_lastversion']; if ($row['file_versions'] > 1) { ?> <a href="#" onClick="expand('versions_<?php echo $row['file_id']; ?> ');"> (<?php echo $row['file_versions']; ?> ) </a> <?php } ?> </td> <td width="10%" nowrap="nowrap" align="center"> <?php echo $file_types[$row['file_category']]; ?> </td> <td width="5%" align="center"> <a href="./index.php?m=tasks&a=view&task_id=<?php echo $row['file_task']; ?> "> <?php echo $row['task_name']; ?> </a> </td> <td width="15%" nowrap="nowrap"> <?php echo $row["contact_first_name"] . ' ' . $row["contact_last_name"]; ?> </td> <td width="5%" nowrap="nowrap" align="right"> <?php echo file_size(intval($row['file_size'])); ?> </td> <td width="15%" nowrap="nowrap" align="right"> <?php echo $file_date->format($df . ' ' . $tf); ?> </td> <td width="10%"><?php echo $row['file_co_reason']; ?> </td> <td nowrap="nowrap" align="center"> <?php if ($canEdit && empty($row['file_checkout'])) { ?> <a href="?m=files&a=co&file_id=<?php echo $row['file_id']; ?> "> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/up.png', '16', '16', 'checkout', 'checkout file'); ?> </a> <?php } else { if ($row['file_checkout'] == $AppUI->user_id) { ?> <a href="?m=files&a=addedit&ci=1&file_id=<?php echo $row['file_id']; ?> "> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/down.png', '16', '16', 'checkin', 'checkin file'); ?> </a> <?php } else { if ($file['file_checkout'] == 'final') { echo ' ' . $AppUI->_('final'); } else { echo ' ' . $row['checkout_first_name'] . ' ' . $row['checkout_last_name'] . '<br />(' . $row['co_user'] . ')'; } } } ?> </td> <td nowrap="nowrap" align="right" width="48"> <?php if (empty($row['file_checkout']) || $row['file_checkout'] == 'final') { // Edit File if ($canEdit || $row['project_owner'] == $AppUI->user_id) { ?> <a href="./index.php?m=files&a=addedit&file_id=<?php echo $row['file_id']; ?> "> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/kedit.png', '16', '16', 'edit file', 'edit file'); ?> </a> <?php } // Duplicate File if ($canAuthor || $row['project_owner'] == $AppUI->user_id) { ?> <a href="#" onclick="document.frm_duplicate_file_<?php echo $row['file_id']; ?> .submit()"> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/duplicate.png', '16', '16', 'duplicate file', 'duplicate file'); ?> </a> <?php } // Delete File if ($canDelete || $row['project_owner'] == $AppUI->user_id) { ?> <a href="#" onclick="if (confirm('Are you sure you want to delete this file?')) {document.frm_remove_file_<?php echo $row['file_id']; ?> .submit()}"> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/remove.png', '16', '16', 'delete file', 'delete file'); ?> </a> <?php } } ?> </td> <td nowrap="nowrap" align="center" width="1"> <?php if ((empty($row['file_checkout']) || $row['file_checkout'] == 'final') && ($canEdit || $row['project_owner'] == $AppUI->user_id)) { $bulk_op = 'onchange="(this.checked) ? addBulkComponent(' . $row['file_id'] . ') : removeBulkComponent(' . $row['file_id'] . ')"'; ?> <input type="checkbox" <?php echo $bulk_op; ?> name="chk_sub_sel_file_<?php echo $file_row['file_id']; ?> " /> <?php } ?> </td> </tr> <?php if ($row['file_versions'] > 1) { ?> <tr><td colspan="20"> <table style="display: none" id="versions_<?php echo $row['file_id']; ?> " width="100%" border="0" cellpadding="2" cellspacing="1" class="tbl"> <tr> <th nowrap="nowrap"><?php echo $AppUI->_('File Name'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Description'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Versions'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Category'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Task Name'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Owner'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Size'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Type'); ?> </th> <th nowrap="nowrap"><?php echo $AppUI->_('Date'); ?> </th> <th nowrap="nowrap"width="1"> </th> <th nowrap="nowrap"width="1"> </th> </tr> <?php foreach ($file_versions as $file) { if ($file['file_version_id'] == $row['file_version_id']) { $file_icon = getIcon($file['file_type']); $file_version_date = new Date($file['file_date']); ?> <form name="frm_delete_sub_file_<?php echo $file['file_id']; ?> " action="?m=files" method="post"> <input type="hidden" name="dosql" value="do_file_aed" /> <input type="hidden" name="del" value="1" /> <input type="hidden" name="file_id" value="<?php echo $file['file_id']; ?> " /> <input type="hidden" name="redirect" value="<?php echo $current_uri; ?> " /> </form> <form name="frm_duplicate_sub_file_<?php echo $file['file_id']; ?> " action="?m=files" method="post"> <input type="hidden" name="dosql" value="do_file_aed" /> <input type="hidden" name="duplicate" value="1" /> <input type="hidden" name="file_id" value="<?php echo $file['file_id']; ?> " /> <input type="hidden" name="redirect" value="<?php echo $current_uri; ?> " /> </form> <tr> <td nowrap="8%"> <a href="./fileviewer.php?file_id=<?php echo $file['file_id']; ?> " title="<?php echo $file['file_description']; ?> "> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/' . $file_icon, '16', '16'); ?> <?php echo $file['file_name']; ?> </a> </td> <td width="20%"><?php echo $file['file_description']; ?> </td> <td width="5%" nowrap="nowrap" align="center"><?php echo $file['file_version']; ?> </td> <td width="10%" nowrap="nowrap" align="center"> <?php echo $file_types[$file['file_category']]; ?> </td> <td width="5%" align="center"> <a href="./index.php?m=tasks&a=view&task_id=<?php echo $file['file_task']; ?> "> <?php echo $file['task_name']; ?> </a> </td> <td width="15%" nowrap="nowrap"> <?php echo $file["contact_first_name"] . ' ' . $file["contact_last_name"]; ?> </td> <td width="5%" nowrap="nowrap" align="right"> <?php echo file_size(intval($file['file_size'])); ?> </td> <td nowrap="nowrap"> <?php echo $row['file_type']; ?> </td> <td width="15%" nowrap="nowrap" align="right"> <?php echo $file_version_date->format($df . ' ' . $tf); ?> </td> <td nowrap="nowrap" align="right" width="48"> <?php if (empty($file['file_checkout']) || $file['file_checkout'] == 'final') { // Edit File if ($canEdit || $row['project_owner'] == $AppUI->user_id) { ?> <a href="./index.php?m=files&a=addedit&file_id=<?php echo $row['file_id']; ?> "> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/kedit.png', '16', '16', 'edit file', 'edit file'); ?> </a> <?php } // Duplicate File if ($canAuthor) { ?> <a href="#" onclick="document.frm_duplicate_file_<?php echo $row['file_id']; ?> .submit()"> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/duplicate.png', '16', '16', 'duplicate file', 'duplicate file'); ?> </a> <?php } // Delete File if ($canDelete) { ?> <a href="#" onclick="if (confirm('<?php echo $AppUI->_('Are you sure you want to delete this file?'); ?> ')) {document.frm_remove_file_<?php echo $row['file_id']; ?> .submit()}"> <?php echo dPshowImage(DP_BASE_URL . '/modules/files/images/remove.png', '16', '16', 'delete file', $AppUI->_('delete file')); ?> </a> <?php } } ?> </td> <td nowrap="nowrap" align="center" width="1"> <?php if ((empty($row['file_checkout']) || $row['file_checkout'] == 'final') && ($canEdit || $row['project_owner'] == $AppUI->user_id)) { $bulk_op = 'onchange="(this.checked) ? addBulkComponent(' . $row['file_id'] . ') : removeBulkComponent(' . $row['file_id'] . ')"'; ?> <input type="checkbox" <?php echo $bulk_op; ?> name="chk_sub_sel_file_<?php echo $file_row['file_id']; ?> " /> <?php } ?> </td> </tr> <?php } } ?> </table> </td></tr> <?php } } ?> </table> <?php shownavbar($xpg_totalrecs, $xpg_pagesize, $xpg_total_pages, $page, $folder_id); echo "<br />"; }
function getFolders($parent, $level = 0) { global $AppUI, $allowed_folders_ary, $denied_folders_ary, $tab, $m, $a, $company_id, $allowed_companies, $project_id, $task_id, $current_uri, $file_types; // retrieve all children of $parent $file_folder = new CFileFolder(); $folders = $file_folder->getFoldersByParent($parent); $s = ''; // display each child foreach ($folders as $row) { if (array_key_exists($row['file_folder_id'], $allowed_folders_ary) or array_key_exists($parent, $allowed_folders_ary)) { $file_count = countFiles($row['file_folder_id']); $s .= '<tr><td colspan="20">'; if ($m == 'files') { $s .= '<a href="./index.php?m=' . $m . '&a=' . $a . '&tab=' . $tab . '&folder=' . $row['file_folder_id'] . '" name="ff' . $row['file_folder_id'] . '">'; } $s .= '<img src="' . w2PfindImage('folder5_small.png', 'files') . '" width="16" height="16" style="float: left; border: 0px;" />'; $s .= $row['file_folder_name']; if ($m == 'files') { $s .= '</a>'; } if ($file_count > 0) { $s .= ' <a href="javascript: void(0);" onClick="expand(\'files_' . $row['file_folder_id'] . '\')" class="has-files">(' . $file_count . ' files) +</a>'; } $s .= '<form name="frm_remove_folder_' . $row['file_folder_id'] . '" action="?m=files" method="post" accept-charset="utf-8"> <input type="hidden" name="dosql" value="do_folder_aed" /> <input type="hidden" name="del" value="1" /> <input type="hidden" name="file_folder_id" value="' . $row['file_folder_id'] . '" /> </form>'; $s .= '<a style="float:left;" href="./index.php?m=files&a=addedit_folder&folder=' . $row['file_folder_id'] . '">' . w2PshowImage('filesaveas.png', '16', '16', 'edit icon', 'edit this folder', 'files') . '</a>' . '<a style="float:left;" href="./index.php?m=files&a=addedit_folder&file_folder_parent=' . $row['file_folder_id'] . '&file_folder_id=0">' . w2PshowImage('edit_add.png', '', '', 'new folder', 'add a new subfolder', 'files') . '</a>' . '<a style="float:right;" href="javascript: void(0);" onclick="if (confirm(\'Are you sure you want to delete this folder?\')) {document.frm_remove_folder_' . $row['file_folder_id'] . '.submit()}">' . w2PshowImage('remove.png', '', '', 'delete icon', 'delete this folder', 'files') . '</a>' . '<a style="float:left;" href="./index.php?m=files&a=addedit&folder=' . $row['file_folder_id'] . '&project_id=' . $project_id . '&file_id=0">' . w2PshowImage('folder_new.png', '', '', 'new file', 'add new file to this folder', 'files') . '</a>'; $s .= '</td></tr>'; if ($file_count > 0) { $s .= '<div class="files-list" id="files_' . $row['file_folder_id'] . '" style="display: none;">'; $s .= displayFiles($AppUI, $row['file_folder_id'], $task_id, $project_id, $company_id); $s .= "</div>"; } } } return $s; }
?> Selecciona el directorio destino:<br> <form action='upload.php' name='n' method=post> Nueva carpeta: <input type="text" value="" name="folder"><input type="submit" value="Crear"> </form> <hr> <form action='upload.php' name='f' method=post enctype='multipart/form-data'> <?php foreach ($files as $file) { echo "<input type='radio' name='id' value='{$file}' checked='checked'> " . $file . " "; echo "(" . countFiles($file) . " files) <a href='upload.php?v={$file}'>Vaciar</a><br>"; } $directory = "Gallery/"; $files = glob($directory . "*", GLOB_ONLYDIR); foreach ($files as $file) { echo "<input type='radio' name='id' value='{$file}'> " . $file . " "; echo "(" . countFiles($file) . " files) <a href='upload.php?n={$file}'>Eliminar</a> | <a href='upload.php?v={$file}'>Vaciar</a><br>"; } ?> <hr> <fieldset> <legend>Subir Foto.</legend> <table> <tr><td>Archivo:</td><td> <input name="archivo" type="file" /></td><td style="font-size:x-small">Solo se aceptan archivos de tipo: JPG, GIF o PNG.</td></tr> <tr bgcolor="#CCCCCC"><td>Avanzado:</td><td> width o height MAX: <input name="width" type="text" style="width: 44px; height: 16px;" />Px </td><td style="font-size:x-small"> Solo si sabe para que funciona use este campo. <br>Predeterminado: 230px <br>Usar signo de <b>=</b> para no hacer redimension a la imagen. </td></tr> <tr><td></td><td align='right'> <input name='Submit1' type='submit' value="Cargar..." /></td><td></td></tr>
<?php if (isset($cfObj) && $cfObj->file_folder_description != '') { ?> <li class="info-text"><?php echo w2p_textarea($cfObj->file_folder_description); ?> </li> <?php } ?> </ul> </td> </tr> </tr> <?php if (countFiles($folder) > 0) { echo displayFiles($AppUI, $folder_id, $task_id, $project_id, $company_id); } elseif (!empty($limited) && !$limited or $folder_id != 0) { echo '<tr><td colspan="20">' . $AppUI->_('no files') . '</td></tr>'; } echo getFolders($folder_id); //Lets add our bulk form $folders_avail = getFolderSelectList(); //used O (uppercase 0)instead of 0 (zero) to keep things in place $folders = array('-1' => array(0 => 'O', 1 => '(Move to Folder)', 2 => -1)) + array('0' => array(0 => 0, 1 => 'Root', 2 => -1)) + $folders_avail; $project = new CProject(); $sprojects = $project->getAllowedProjects($AppUI->user_id, false); foreach ($sprojects as $prj_id => $proj_info) { $sprojects[$prj_id] = $idx_companies[$prj_id] . ': ' . $proj_info['project_name']; } asort($sprojects);
function returnBackups($dir, &$w) { global $data; $backupDirs = getFiles("{$data}/backups"); foreach ($backupDirs as $b) { if (is_dir("{$data}/backups/{$b}")) { $backups[$b] = countFiles("{$data}/backups/{$b}"); } } if (count($backups) > 0) { ksort($backups); foreach ($backups as $name => $count) { $w->result('', '', $name, "{$count} backups.", '', 'no', ''); } } }
function getFolders($parent, $level = 0) { global $AppUI, $allowed_folders_ary, $denied_folders_ary, $tab, $m, $a, $company_id, $allowed_companies, $project_id, $task_id, $current_uri, $file_types; // retrieve all children of $parent $folder_where = 'file_folder_parent = \'' . $parent . '\''; // $folder_where .= (count($denied_folders_ary) > 0) ? "\nAND file_folder_id NOT IN (" . implode(',', $denied_folders_ary) . ")" : ""; $q = new DBQuery(); $q->addTable('file_folders'); $q->addQuery('*'); $q->addWhere($folder_where); $q->addOrder('file_folder_name'); $folders = $q->loadList(); $q->clear(); $s = ''; // display each child foreach ($folders as $row) { if (array_key_exists($row['file_folder_id'], $allowed_folders_ary) or array_key_exists($parent, $allowed_folders_ary)) { // indent and display the title of this child $file_count = countFiles($row['file_folder_id']); $s .= '<ul><li><table width="100%"><tr><td><span class="folder-name">'; if ($m == 'files') { $s .= '<a href="./index.php?m=' . $m . '&a=' . $a . '&tab=' . $tab . '&folder=' . $row['file_folder_id'] . '" name="ff' . $row['file_folder_id'] . '">'; } $s .= w2PshowImage('folder5_small.png', '16', '16', 'folder icon', 'show only this folder', 'files'); if ($m == 'files') { '</a>' . '<a href="./index.php?m=' . $m . '&a=' . $a . '&tab=' . $tab . '&folder=' . $row['file_folder_id'] . '" name="ff' . $row['file_folder_id'] . '">'; } $s .= $row['file_folder_name']; if ($m == 'files') { '</a>'; } if ($file_count > 0) { $s .= ' <a href="javascript: void(0);" onClick="expand(\'files_' . $row['file_folder_id'] . '\')" class="has-files">(' . $file_count . ' files) +</a>'; } $s .= '</td><form name="frm_remove_folder_' . $row['file_folder_id'] . '" action="?m=files" method="post" accept-charset="utf-8"> <input type="hidden" name="dosql" value="do_folder_aed" /> <input type="hidden" name="del" value="1" /> <input type="hidden" name="file_folder_id" value="' . $row['file_folder_id'] . '" /> <input type="hidden" name="redirect" value="' . $current_uri . '" /> </form>'; $s .= '<td align="right" width="64" nowrap="nowrap">'; $s .= '<a href="./index.php?m=files&a=addedit_folder&folder=' . $row['file_folder_id'] . '">' . w2PshowImage('filesaveas.png', '16', '16', 'edit icon', 'edit this folder', 'files') . '</a>' . '<a href="./index.php?m=files&a=addedit_folder&file_folder_parent=' . $row['file_folder_id'] . '&file_folder_id=0">' . w2PshowImage('edit_add.png', '', '', 'new folder', 'add a new subfolder', 'files') . '</a>' . '<a href="javascript: void(0);" onclick="if (confirm(\'Are you sure you want to delete this folder?\')) {document.frm_remove_folder_' . $row['file_folder_id'] . '.submit()}">' . w2PshowImage('remove.png', '', '', 'delete icon', 'delete this folder', 'files') . '</a>' . '<a href="./index.php?m=files&a=addedit&folder=' . $row['file_folder_id'] . '&project_id=' . $project_id . '&file_id=0">' . w2PshowImage('folder_new.png', '', '', 'new file', 'add new file to this folder', 'files') . '</a>'; $s .= '</td></tr></table></span>'; if ($file_count > 0) { $s .= '<div class="files-list" id="files_' . $row['file_folder_id'] . '" style="display: none;">'; $s .= displayFiles($row['file_folder_id']); $s .= "</div>"; } } // call this function again to display this // child's children // getFolders *always* returns true, so there's no point in checking it $s .= getFolders($row['file_folder_id'], $level + 1) . '</li></ul>'; /* if (!getFolders($row['file_folder_id'], $level + 1)) { $s .= '</li>'; } else { $s .= '</li></ul>'; } */ } /* * getFolders would *alway* return true and would echo the results. It * makes more sense to simply return the results. Then the calling code can * echo it, capture it for parsing, or whatever else needs to be done. There * should be less inadvertent actions as a result. */ return $s; }
function getFolders($parent, $level = 0) { global $AppUI, $allowed_folders_ary, $denied_folders_ary, $tab, $m, $a, $company_id, $allowed_companies, $project_id, $task_id, $current_uri, $file_types; // retrieve all children of $parent $file_folder = new CFileFolder(); $folders = $file_folder->getFoldersByParent($parent); $s = ''; // display each child foreach ($folders as $row) { if (array_key_exists($row['file_folder_id'], $allowed_folders_ary) or array_key_exists($parent, $allowed_folders_ary)) { $file_count = countFiles($row['file_folder_id']); $s .= '<tr><td colspan="20">'; if ($m == 'files') { $s .= '<a href="./index.php?m=' . $m . '&a=' . $a . '&tab=' . $tab . '&folder=' . $row['file_folder_id'] . '" name="ff' . $row['file_folder_id'] . '">'; } $s .= '<img src="' . w2PfindImage('folder5_small.png', 'files') . '" width="16" height="16" style="float: left; border: 0px;" />'; $s .= $row['file_folder_name']; if ($m == 'files') { $s .= '</a>'; } if ($file_count > 0) { $s .= ' <a href="javascript: void(0);" onClick="expand(\'files_' . $row['file_folder_id'] . '\')" class="has-files">(' . $file_count . ' files) +</a>'; } $s .= '<form name="frm_remove_folder_' . $row['file_folder_id'] . '" action="?m=files" method="post" accept-charset="utf-8"> <input type="hidden" name="dosql" value="do_folder_aed" /> <input type="hidden" name="del" value="1" /> <input type="hidden" name="file_folder_id" value="' . $row['file_folder_id'] . '" /> </form>'; $s .= '<a style="float:left;" href="./index.php?m=files&a=addedit_folder&folder=' . $row['file_folder_id'] . '">' . w2PshowImage('filesaveas.png', '16', '16', 'edit icon', 'edit this folder', 'files') . '</a>' . '<a style="float:left;" href="./index.php?m=files&a=addedit_folder&file_folder_parent=' . $row['file_folder_id'] . '&file_folder_id=0">' . w2PshowImage('edit_add.png', '', '', 'new folder', 'add a new subfolder', 'files') . '</a>' . '<a style="float:right;" href="javascript: void(0);" onclick="if (confirm(\'Are you sure you want to delete this folder?\')) {document.frm_remove_folder_' . $row['file_folder_id'] . '.submit()}">' . w2PshowImage('remove.png', '', '', 'delete icon', 'delete this folder', 'files') . '</a>' . '<a style="float:left;" href="./index.php?m=files&a=addedit&folder=' . $row['file_folder_id'] . '&project_id=' . $project_id . '&file_id=0">' . w2PshowImage('folder_new.png', '', '', 'new file', 'add new file to this folder', 'files') . '</a>'; $s .= '</td></tr>'; if ($file_count > 0) { $s .= '<div class="files-list" id="files_' . $row['file_folder_id'] . '" style="display: none;">'; $s .= displayFiles($AppUI, $row['file_folder_id'], $task_id, $project_id, $company_id); $s .= "</div>"; } } // call this function again to display this // child's children // getFolders *always* returns true, so there's no point in checking it //$s .= getFolders($row['file_folder_id'], $level + 1).'</li></ul>'; } /* * getFolders would *alway* return true and would echo the results. It * makes more sense to simply return the results. Then the calling code can * echo it, capture it for parsing, or whatever else needs to be done. There * should be less inadvertent actions as a result. */ return $s; }