⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 project.class.php

📁 ProjectPier 源码 很好的项目管理程序
💻 PHP
📖 第 1 页 / 共 3 页
字号:
    * @return array    */    function getOrphanedFiles() {      if (is_null($this->orphaned_files)) {        $this->orphaned_files = ProjectFiles::getOrphanedFilesByProject($this, logged_user()->isMemberOfOwnerCompany());      } // if      return $this->orphaned_files;    } // getOrphanedFiles        // ---------------------------------------------------    //  Status    // ---------------------------------------------------        /**    * Check if this project is active    *    * @access public    * @param void    * @return boolean    */    function isActive() {      return !$this->isCompleted();    } // isActive        /**    * Check if this project is completed    *    * @access public    * @param void    * @return boolean    */    function isCompleted() {      return (boolean) $this->getCompletedOn();    } // isCompleted        // ---------------------------------------------------    //  Permissions    // ---------------------------------------------------        /**    * Check if user can add project    *    * @access public    * @param void    * @return null    */    function canAdd(User $user) {      return $user->isAccountOwner() || $user->isAdministrator(owner_company());    } // canAdd        /**    * Returns true if user can update speicific project    *    * @access public    * @param User $user    * @return boolean    */    function canEdit(User $user) {      return $user->isAccountOwner() || $user->isAdministrator(owner_company());    } // canEdit        /**    * Returns true if user can delete specific project    *    * @access public    * @param User $user    * @return boolean    */    function canDelete(User $user) {      return $user->isAccountOwner() || $user->isAdministrator(owner_company());    } // canDelete        /**    * Returns true if user can change status of this project    *    * @access public    * @param User $user    * @return boolean    */    function canChangeStatus(User $user) {      return $this->canEdit($user);    } // canChangeStatus        /**    * Returns true if user can access permissions page and can update permissions    *    * @access public    * @param User $user    * @return boolean    */    function canChangePermissions(User $user) {      return $user->isAccountOwner() || $user->isAdministrator(owner_company());    } // canChangePermissions        /**    * Check if specific user can remove company from project    *    * @access public    * @param User $user    * @param Company $remove_company Remove this company    * @return boolean    */    function canRemoveCompanyFromProject(User $user, Company $remove_company) {      if ($remove_company->isOwner()) {        return false;      }      return $user->isAccountOwner() || $user->isAdministrator();    } // canRemoveCompanyFromProject        /**    * Check if this user can remove other user from project    *    * @access public    * @param User $user    * @param User $remove_user User that need to be removed    * @return boolean    */    function canRemoveUserFromProject(User $user, User $remove_user) {      if ($remove_user->isAccountOwner()) {        return false;      }      return $user->isAccountOwner() || $user->isAdministrator();    } // canRemoveUserFromProject        // ---------------------------------------------------    //  URLS    // ---------------------------------------------------        /**    * Link to project overview page    *    * @access public    * @param void    * @return stirng    */    function getOverviewUrl() {      return get_url('project', 'overview', array('active_project' => $this->getId()));    } // getOverviewUrl        /**    * Return project messages index page URL    *    * @param void    * @return string    */    function getMessagesUrl() {      return get_url('message', 'index', array('active_project' => $this->getId()));    } // getMessagesUrl        /**    * Return project tasks index page URL    *    * @param void    * @return string    */    function getTasksUrl() {      return get_url('task', 'index', array('active_project' => $this->getId()));    } // getTasksUrl        /**    * Return project milestones index page URL    *    * @param void    * @return string    */    function getMilestonesUrl() {      return get_url('milestone', 'index', array('active_project' => $this->getId()));    } // getMilestonesUrl        /**    * Return project forms index page URL    *    * @param void    * @return string    */    function getFormsUrl() {      return get_url('form', 'index', array('active_project' => $this->getId()));    } // getFormsUrl        /**    * Return project people index page URL    *    * @param void    * @return string    */    function getPeopleUrl() {      return get_url('project', 'people', array('active_project' => $this->getId()));    } // getPeopleUrl        /**    * Return project permissions page URL    *    * @param void    * @return string    */    function getPermissionsUrl() {      return get_url('project', 'permissions', array('active_project' => $this->getId()));    } // getPermissionsUrl        /**    * Return search URL    *    * @param string $search_for    * @param integer $page    * @return string    */    function getSearchUrl($search_for = null, $page = null) {      if (trim($search_for) <> '') {        $params = array(          'active_project' => $this->getId(),          'search_for' => $search_for,          'page' => (integer) $page > 0 ? (integer) $page : 1        ); // array        return get_url('project', 'search', $params);      } else {        return ROOT_URL . '/index.php';      } // if    } // getSearchUrl        /**    * Return edit project URL    *    * @access public    * @param void    * @return string    */    function getEditUrl() {      return get_url('project', 'edit', array(        'id' => $this->getId(),        'active_project' => $this->getId(),      ));    } // getEditUrl        /**    * Return delete project URL    *    * @access public    * @param void    * @return string    */    function getDeleteUrl() {      return get_url('project', 'delete', array(        'id' => $this->getId(),        'active_project' => $this->getId(),      ));    } // getDeleteUrl        /**    * Return complete project url    *    * @access public    * @param void    * @return string    */    function getCompleteUrl() {      return get_url('project', 'complete', $this->getId());    } // getCompleteUrl        /**    * Return open project URL    *    * @access public    * @param void    * @return string    */    function getOpenUrl() {      return get_url('project', 'open', $this->getId());    } // getOpenUrl        /**    * Return remove user from project URL    *    * @access public    * @param User $user    * @return string    */    function getRemoveUserUrl(User $user) {      return get_url('project', 'remove_user', array('user_id' => $user->getId(), 'project_id' => $this->getId()));    } // getRemoveUserUrl        /**    * Return remove company from project URL    *    * @access public    * @param Company $company    * @return string    */    function getRemoveCompanyUrl(Company $company) {      return get_url('project', 'remove_company', array('company_id' => $company->getId(), 'project_id' => $this->getId()));    } // getRemoveCompanyUrl        /**    * Return tag URL    *    * @access public    * @param string $tag_name    * @return string    */    function getTagUrl($tag_name) {      return get_url('tag', 'project_tag', array('tag' => $tag_name, 'active_project' => $this->getId()));    } // getTagUrl        // ---------------------------------------------------    //  System functions    // ---------------------------------------------------      /**    * Validate object before save    *    * @access public    * @param array $errors    * @return null    */    function validate(&$errors) {      if (!$this->validatePresenceOf('name')) {        $errors[] = lang('project name required');      } // if      if (!$this->validateUniquenessOf('name')) {        $errors[] = lang('project name unique');      } // if    } // validate        /**    * Delete project    *    * @param void    * @return boolean    */    function delete() {      $this->clearMessages();      $this->clearTaskLists();      $this->clearMilestones();      $this->clearFiles();      $this->clearFolders();      $this->clearForms();      $this->clearPermissions();      $this->clearLogs();      return parent::delete();    } // delete        /**    * Clear all project messages    *    * @param void    * @return null    */    private function clearMessages() {      $messages = $this->getAllMessages();      if (is_array($messages)) {        foreach ($messages as $message) {          $message->delete();        } // foreach      } // if    } // clearMessages        /**    * Clear all task lists    *    * @param void    * @return null    */    private function clearTaskLists() {      $task_lists = $this->getAllTaskLists();      if (is_array($task_lists)) {        foreach ($task_lists as $task_list) {          $task_list->delete();        } // foreach      } // if    } // clearTaskLists        /**    * Clear all milestones    *    * @param void    * @return null    */    private function clearMilestones() {      $milestones = $this->getAllMilestones();      if (is_array($milestones)) {        foreach ($milestones as $milestone) {          $milestone->delete();        } // foreach      } // if    } // clearMilestones        /**    * Clear forms    *    * @param void    * @return null    */    private function clearForms() {      $forms = $this->getAllForms();      if (is_array($forms)) {        foreach ($forms as $form) {          $form->delete();        } // foreach      } // if    } // clearForms        /**    * Clear all files and folders    *    * @param void    * @return null    */    private function clearFiles() {      $files = ProjectFiles::getAllFilesByProject($this);      if (is_array($files)) {        foreach ($files as $file) {          $file->delete();        } // foreach      } // if    } // clearFiles        /**    * Clear all folders    *    * @param void    * @return null    */    private function clearFolders() {      $folders = $this->getFolders();      if (is_array($folders)) {        foreach ($folders as $folder) {          $folder->delete();        } // foreach      } // if    } // clearFolders        /**    * Clear project level permissions    *    * @param void    * @return null    */    function clearPermissions() {      ProjectCompanies::clearByProject($this);      ProjectUsers::clearByProject($this);    } // clearPermissions        /**    * Clear application logs for this project    *    * @param void    * @return null    */    function clearLogs() {      ApplicationLogs::clearByProject($this);    } // clearLogs        // ---------------------------------------------------    //  ApplicationDataObject implementation    // ---------------------------------------------------        /**    * Return object type name    *    * @param void    * @return string    */    function getObjectTypeName() {      return lang('project');    } // getObjectTypeName        /**    * Return object URl    *    * @access public    * @param void    * @return string    */    function getObjectUrl() {      return $this->getOverviewUrl();    } // getObjectUrl      } // Project ?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -