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

📄 project.class.php

📁 ProjectPier 源码 很好的项目管理程序
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php  /**  * Project class  * Generated on Sun, 26 Feb 2006 23:10:34 +0100 by DataObject generation tool  *  * @http://www.projectpier.org/  */  class Project extends BaseProject {        // ---------------------------------------------------    //  Messages    // ---------------------------------------------------        /**    * Cache of all messages    *    * @var array    */    private $all_messages;        /**    * Cached array of messages that user can access. If user is member of owner company    * $all_messages will be used (members of owner company can browse all messages)    *    * @var array    */    private $messages;        /**    * Array of all important messages (incliduing private ones)    *    * @var array    */    private $all_important_messages;        /**    * Array of important messages. If user is not member of owner company private     * messages will be skipped    *    * @var array    */    private $important_messages;        // ---------------------------------------------------    //  Milestones    // ---------------------------------------------------        /**    * Cached array of milestones. This is array of all project milestones. They are not     * filtered by is_private stamp    *    * @var array    */    private $all_milestones;        /**    * Cached array of project milestones    *    * @var array    */    private $milestones;        /**    * Array of all open milestones in this projects    *    * @var array    */    private $all_open_milestones;        /**    * Array of open milestones in this projects that user can access. If user is not member of owner    * company private milestones will be hidden    *    * @var array    */    private $open_milestones;        /**    * Cached array of late milestones. This variable is populated by splitOpenMilestones() private     * function on request    *    * @var array    */    private $late_milestones = false;        /**    * Cached array of today milestones. This variable is populated by splitOpenMilestones() private     * function on request    *    * @var array    */    private $today_milestones = false;        /**    * Cached array of upcoming milestones. This variable is populated by splitOpenMilestones() private     * function on request    *    * @var array    */    private $upcoming_milestones = false;        /**    * Cached all completed milestones    *    * @var array    */    private $all_completed_milestones;        /**    * Cached array of completed milestones - is_private check is made before retriving meaning that if    * user is no member of owner company all private data will be hiddenas    *    * @var array    */    private $completed_milestones;        // ---------------------------------------------------    //  Task lists    // ---------------------------------------------------        /**    * All task lists in this project    *    * @var array    */    private $all_task_lists;        /**    * Array of all task lists. If user is not member of owner company private task     * lists will be excluded from the list    *    * @var array    */    private $task_lists;        /**    * All open task lists in this project    *    * @var array    */    private $all_open_task_lists;        /**    * Array of open task lists. If user is not member of owner company private task     * lists will be excluded from the list    *    * @var array    */    private $open_task_lists;        /**    * Array of all completed task lists in this project    *    * @var array    */    private $all_completed_task_lists;        /**    * Array of completed task lists. If user is not member of owner company private task     * lists will be excluded from the list    *    * @var array    */    private $completed_task_lists;        // ---------------------------------------------------    //  Tags    // ---------------------------------------------------        /**    * Cached object tag names    *    * @var array    */    private $tag_names;        // ---------------------------------------------------    //  Log    // ---------------------------------------------------        /**    * Cache of all project logs    *    * @var array    */    private $all_project_logs;        /**    * Cache of all project logs that current user can access    *    * @var array    */    private $project_logs;        // ---------------------------------------------------    //  Forms    // ---------------------------------------------------        /**    * Cache of all project forms    *    * @var array    */    private $all_forms;        // ---------------------------------------------------    //  Files    // ---------------------------------------------------        /**    * Cached array of project folders    *    * @var array    */    private $folders;        /**    * Cached array of all important files    *    * @var array    */    private $all_important_files;        /**    * Important files filtered by the users access permissions    *    * @var array    */    private $important_files;        /**    * All orphened files, user permissions are not checked    *    * @var array    */    private $all_orphaned_files;        /**    * Orphaned file    *    * @var array    */    private $orphaned_files;        // ---------------------------------------------------    //  Messages    // ---------------------------------------------------        /**    * This function will return all messages in project and it will not exclude private     * messages if logged user is not member of owner company    *    * @param void    * @return array    */    function getAllMessages() {      if (is_null($this->all_messages)) {        $this->all_messages = ProjectMessages::getProjectMessages($this, true);      } // if      return $this->all_messages;    } // getAllMessages        /**    * Return only the messages that current user can see (if not member of owner company private     * messages will be excluded)    *    * @param null    * @return null    */    function getMessages() {      if (logged_user()->isMemberOfOwnerCompany()) {        return $this->getAllMessages(); // members of owner company can view all messages      } // if            if (is_null($this->messages)) {        $this->messages = ProjectMessages::getProjectMessages($this, false);      } // if      return $this->messages;    } // getMessages        /**    * Return all important messages    *    * @param void    * @return array    */    function getAllImportantMessages() {      if (is_null($this->all_important_messages)) {        $this->all_important_messages = ProjectMessages::getImportantProjectMessages($this, true);      } // if      return $this->all_important_messages;    } // getAllImportantMessages        /**    * Return array of important messages    *    * @param void    * @return array    */    function getImportantMessages() {      if (logged_user()->isMemberOfOwnerCompany()) {        return $this->getAllImportantMessages();      } // if            if (is_null($this->important_messages)) {        $this->important_messages = ProjectMessages::getImportantProjectMessages($this, false);      } // if      return $this->important_messages;    } // getImportantMessages        // ---------------------------------------------------    //  Milestones    // ---------------------------------------------------        /**    * Return all milestones, don't filter them by is_private stamp based on users permissions    *    * @param void    * @return array    */    function getAllMilestones() {      if (is_null($this->all_milestones)) {        $this->all_milestones = ProjectMilestones::findAll(array(          'conditions' => array('`project_id` = ?', $this->getId()),          'order' => 'due_date'        )); // findAll      } // if      return $this->all_milestones;    } // getAllMilestones        /**    * Return all project milestones    *    * @access public    * @param void    * @return array    */    function getMilestones() {      if (logged_user()->isMemberOfOwnerCompany()) {        return $this->getAllMilestones(); // member of owner company      }      if (is_null($this->milestones)) {        $this->milestones = ProjectMilestones::findAll(array(          'conditions' => array('`project_id` = ? AND `is_private` = ?', $this->getId(), 0),          'order' => 'due_date'        )); // findAll      } // if      return $this->milestones;    } // getMilestones        /**    * Return all opet milestones without is_private check    *    * @param void    * @return array    */    function getAllOpenMilestones() {      if (is_null($this->all_open_milestones)) {        $this->all_open_milestones = ProjectMilestones::findAll(array(          'conditions' => array('`project_id` = ? AND `completed_on` = ?', $this->getId(), EMPTY_DATETIME),          'order' => 'due_date'        )); // findAll      } // if      return $this->all_open_milestones;    } // getAllOpenMilestones        /**    * Return open milestones    *    * @access public    * @param void    * @return array    */    function getOpenMilestones() {      if (logged_user()->isMemberOfOwnerCompany()) {        return $this->getAllOpenMilestones();      }      if (is_null($this->open_milestones)) {        $this->open_milestones = ProjectMilestones::findAll(array(          'conditions' => array('`project_id` = ? AND `completed_on` = ? AND `is_private` = ?', $this->getId(), EMPTY_DATETIME, 0),          'order' => 'due_date'        )); // findAll      } // if      return $this->open_milestones;    } // getOpenMilestones        /**    * This function will return all completed milestones    *    * @param void    * @return array    */    function getAllCompletedMilestones() {      if (is_null($this->all_completed_milestones)) {        $this->all_completed_milestones = ProjectMilestones::findAll(array(          'conditions' => array('`project_id` = ? AND `completed_on` > ?', $this->getId(), EMPTY_DATETIME),          'order' => 'due_date'        )); // findAll      } // if      return $this->all_completed_milestones;    } // getAllCompletedMilestones        /**    * Return completed milestones    *    * @access public    * @param void    * @return array    */    function getCompletedMilestones() {      if (logged_user()->isMemberOfOwnerCompany()) {        return $this->getAllCompletedMilestones();      }      if (is_null($this->completed_milestones)) {        $this->completed_milestones = ProjectMilestones::findAll(array(          'conditions' => array('`project_id` = ? AND `completed_on` > ? AND `is_private` = ?', $this->getId(), EMPTY_DATETIME, 0),          'order' => 'due_date'        )); // findAll      } // if      return $this->completed_milestones;    } // getCompletedMilestones        /**    * Return array of late open milestones    *    * @param void    * @return array    */    function getLateMilestones() {      if ($this->late_milestones === false) {        $this->splitOpenMilestones();      }      return $this->late_milestones;    } // getLateMilestones        /**    * Return array of today open milestones    *    * @param void    * @return array    */    function getTodayMilestones() {      if ($this->today_milestones === false) {        $this->splitOpenMilestones();      }      return $this->today_milestones;    } // getTodayMilestones        /**    * Return array of upcoming open milestones    *    * @param void    * @return array    */    function getUpcomingMilestones() {      if ($this->upcoming_milestones === false) {        $this->splitOpenMilestones();      }      return $this->upcoming_milestones;    } // getUpcomingMilestones        /**    * This function will walk through open milestones array and splid them into late, today and upcomming    *    * @param void    * @return array    */    private function splitOpenMilestones() {      $open_milestones = $this->getOpenMilestones();            // Reset from false      $this->late_milestones = null;      $this->today_milestones = null;      $this->upcoming_milestones = null;            if (is_array($open_milestones)) {        foreach ($open_milestones as $open_milestone) {          if ($open_milestone->isLate()) {            if (!is_array($this->late_milestones)) {              $this->late_milestones = array();

⌨️ 快捷键说明

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