📄 projectfile.class.php
字号:
/** * Return file details URL * * @param void * @return string */ function getDetailsUrl() { return get_url('files', 'file_details', array( 'id' => $this->getId(), 'active_project' => $this->getProjectId()) ); // get_url } // getDetailsUrl /** * Return revisions URL * * @param void * @return string */ function getRevisionsUrl() { return $this->getDetailsUrl() . '#revisions'; } // getRevisionsUrl /** * Return comments URL * * @param void * @return string */ function getCommentsUrl() { return $this->getDetailsUrl() . '#objectComments'; } // getCommentsUrl /** * Return file download URL * * @param void * @return string */ function getDownloadUrl() { return get_url('files', 'download_file', array( 'id' => $this->getId(), 'active_project' => $this->getProjectId()) ); // get_url } // getDownloadUrl /** * Return edit file URL * * @param void * @return string */ function getEditUrl() { return get_url('files', 'edit_file', array( 'id' => $this->getId(), 'active_project' => $this->getProjectId()) ); // get_url } // getEditUrl /** * Return delete file URL * * @param void * @return string */ function getDeleteUrl() { return get_url('files', 'delete_file', array( 'id' => $this->getId(), 'active_project' => $this->getProjectId()) ); // get_url } // getDeleteUrl // --------------------------------------------------- // Permissions // --------------------------------------------------- /** * Check CAN_MANAGE_FILES permission * * @access public * @param User $user * @return boolean */ function canManage(User $user) { if (!$user->isProjectUser($this->getProject())) { return false; } // if return $user->getProjectPermission($this->getProject(), ProjectUsers::CAN_MANAGE_FILES); } // canManage /** * Returns value of CAN_UPLOAD_FILES permission * * @param User $user * @param Project $project * @return boolean */ function canUpload(User $user, Project $project) { if (!$user->isProjectUser($project)) { return false; } // if return $user->getProjectPermission($project, ProjectUsers::CAN_UPLOAD_FILES); } // canUpload /** * Empty implementation of abstract method. Message determins if user have view access * * @param void * @return boolean */ function canView(User $user) { if ($this->isPrivate() && !$user->isMemberOfOwnerCompany()) { return false; } // if return true; } // canView /** * Returns true if user can download this file * * @param User $user * @return boolean */ function canDownload(User $user) { return $this->canView($user); } // canDownload /** * Empty implementation of abstract methods. Messages determine does user have * permissions to add comment * * @param void * @return null */ function canAdd(User $user, Project $project) { return $user->isAdministrator() || ProjectFile::canUpload($user, $project); } // canAdd /** * Check if specific user can edit this file * * @access public * @param User $user * @return boolean */ function canEdit(User $user) { if (!$user->isProjectUser($this->getProject())) { return false; } // if if (!$this->canManage(logged_user())) { return false; // user don't have access to this project or can't manage files } // if if ($user->isAdministrator()) { return true; // give access to admin } // if if ($this->isPrivate() && !$user->isMemberOfOwnerCompany()) { return false; // reserved only for members of owner company } // if return true; } // canEdit /** * Returns true if $user can update file options * * @param User $user * @return boolean */ function canUpdateOptions(User $user) { return $this->canEdit($user) && $user->isMemberOfOwnerCompany(); } // canUpdateOptions /** * Check if specific user can delete this comment * * @access public * @param User $user * @return boolean */ function canDelete(User $user) { if (!$user->isProjectUser($this->getProject())) { return false; } // if if ($user->isAdministrator()) { return true; } // if return false; } // canDelete // --------------------------------------------------- // System // --------------------------------------------------- /** * Validate before save * * @param array $error * @return null */ function validate(&$errors) { if (!$this->validatePresenceOf('filename')) { $errors[] = lang('filename required'); } // if } // validate /** * Delete this file and all of its revisions * * @param void * @return boolean */ function delete() { $this->clearRevisions(); $this->clearObjectRelations(); return parent::delete(); } // delete /** * Remove all revisions associate with this file * * @param void * @return null */ function clearRevisions() { $revisions = $this->getRevisions(); if (is_array($revisions)) { foreach ($revisions as $revision) { $revision->delete(); } // foreach } // if } // clearRevisions /** * Remove all object relations from the database * * @param void * @return boolean */ function clearObjectRelations() { return AttachedFiles::clearRelationsByFile($this); } // clearObjectRelations /** * This function will return content of specific searchable column. * * It uses inherited behaviour for all columns except for `filecontent`. In case of this column function will return * file content if file type is marked as searchable (text documents, office documents etc). * * @param string $column_name * @return string */ function getSearchableColumnContent($column_name) { if ($column_name == 'filecontent') { $file_type = $this->getFileType(); // Unknown type or type not searchable if (!($file_type instanceof FileType) || !$file_type->getIsSearchable()) { return null; } // if $content = $this->getFileContent(); if (strlen($content) < MAX_SEARCHABLE_FILE_SIZE) { return $content; } // if } else { return parent::getSearchableColumnContent($column_name); } // if } // getSearchableColumnContent // --------------------------------------------------- // ApplicationDataObject implementation // --------------------------------------------------- /** * Return object name * * @access public * @param void * @return string */ function getObjectName() { return $this->getFilename(); } // getObjectName /** * Return object type name * * @param void * @return string */ function getObjectTypeName() { return lang('file'); } // getObjectTypeName /** * Return object URl * * @access public * @param void * @return string */ function getObjectUrl() { return $this->getDetailsurl(); } // getObjectUrl } // ProjectFile ?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -