/** * Returns the last modification time, as a unix timestamp * * @return int */ public function getLastModified() { //checks the folders and returns build time return \GO\Files\Model\SharedRootFolder::model()->rebuildCache(\GO::user()->id, false); }
protected function actionTree($params) { //refresh forces sync with db if (!empty($params['sync_folder_id'])) { if ($params['sync_folder_id'] == "shared") { \GO\Files\Model\SharedRootFolder::model()->rebuildCache(\GO::user()->id, true); } else { if (empty(GO::config()->files_disable_filesystem_sync)) { $syncFolder = \GO\Files\Model\Folder::model()->findByPk($params['sync_folder_id']); if ($syncFolder) { $syncFolder->syncFilesystem(); } } } } $response = array(); $expandFolderIds = $this->_getExpandFolderIds($params); $showFiles = isset($params['showFiles']); switch ($params['node']) { case 'shared': $response = $this->_buildSharedTree($expandFolderIds); break; case 'root': if (!empty($params['root_folder_id'])) { $folder = \GO\Files\Model\Folder::model()->findByPk($params['root_folder_id']); // $folder->checkFsSync(); $node = $this->_folderToNode($folder, $expandFolderIds, true, $showFiles); $response[] = $node; } else { $folder = \GO\Files\Model\Folder::model()->findHomeFolder(\GO::user()); // $folder->checkFsSync(); $node = $this->_folderToNode($folder, $expandFolderIds, true, $showFiles); $node['text'] = \GO::t('personal', 'files'); $node['iconCls'] = 'folder-home'; $node['path'] = $folder->path; $response[] = $node; $node = array('text' => \GO::t('shared', 'files'), 'id' => 'shared', 'readonly' => true, 'draggable' => false, 'allowDrop' => false, 'parent_id' => 0, 'iconCls' => 'folder-shares', 'path' => "shared"); //expand shares for non admins only. Admin may see too many folders. if (!\GO::user()->isAdmin()) { $node['expanded'] = true; $node['children'] = $this->_buildSharedTree($expandFolderIds); } $response[] = $node; if (GO::config()->files_show_addressbooks && GO::modules()->addressbook) { $contactsFolder = \GO\Files\Model\Folder::model()->findByPath('addressbook'); if ($contactsFolder) { $node = $this->_folderToNode($contactsFolder, $expandFolderIds, false, $showFiles); $node['text'] = \GO::t('addressbook', 'addressbook'); $response[] = $node; } } if (GO::config()->files_show_projects && GO::modules()->projects) { $projectsFolder = \GO\Files\Model\Folder::model()->findByPath('projects'); if ($projectsFolder) { $node = $this->_folderToNode($projectsFolder, $expandFolderIds, false, $showFiles); $node['text'] = \GO::t('projects', 'projects'); $response[] = $node; } } if (GO::config()->files_show_projects && GO::modules()->projects2) { $projectsFolder = \GO\Files\Model\Folder::model()->findByPath('projects2'); if ($projectsFolder) { $node = $this->_folderToNode($projectsFolder, $expandFolderIds, false, $showFiles); $node['text'] = \GO::t('projects', 'projects2'); $response[] = $node; } } if (\GO::user()->isAdmin()) { $logFolder = \GO\Files\Model\Folder::model()->findByPath('log', true); // $logFolder->syncFilesystem(); $node = $this->_folderToNode($logFolder, $expandFolderIds, false, $showFiles); $node['text'] = \GO::t('logFiles'); $response[] = $node; } } break; default: $folder = \GO\Files\Model\Folder::model()->findByPk($params['node']); if (!$folder) { return false; } // $folder->checkFsSync(); $stmt = $folder->getSubFolders(\GO\Base\Db\FindParams::newInstance()->limit(200)->order('name', 'ASC')); while ($subfolder = $stmt->fetch()) { $response[] = $this->_folderToNode($subfolder, $expandFolderIds, false, $showFiles); if ($showFiles) { $response = array_merge($response, $this->_addFileNodes($subfolder->parent)); } } break; } return $response; }