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

📄 projectfiles.class.php

📁 ProjectPier 源码 很好的项目管理程序
💻 PHP
字号:
<?php  /**  * ProjectFiles, generated on Tue, 04 Jul 2006 06:46:08 +0200 by   * DataObject generation tool  *  * @http://www.projectpier.org/  */  class ProjectFiles extends BaseProjectFiles {        const ORDER_BY_NAME = 'name';    const ORDER_BY_POSTTIME = 'created_on';        /**    * Array of types that will script treat as images (provide thumbnail, add     * it to insert image editor function etc)    *    * @var array    */    static public $image_types = array(      'image/jpg', 'image/jpeg', 'image/pjpeg',      'image/gif',      'image/png'    ); // array        /**    * Return paged project files    *    * @param Project $project    * @param ProjectFolder $folder    * @param boolean $hide_private Don't show private files    * @param string $order Order files by name or by posttime (desc)    * @param integer $page Current page    * @param integer $files_per_page Number of files that will be showed per single page    * @param boolean $group_by_order Group files by order field    * @return array    */    static function getProjectFiles(Project $project, $folder = null, $hide_private = false, $order = null, $page = null, $files_per_page = null, $group_by_order = false) {      if ($order == self::ORDER_BY_POSTTIME) {        $order_by = '`created_on` DESC';      } else {        $order_by = '`filename`';      } // if            // #PAGE# is reserved as a placeholder      //if (!($page == '#PAGE#')) {        if ((integer) $page < 1) {          $page = 1;        }        if ((integer) $files_per_page < 1) {          $files_per_page = 10;        }      //} // if            $folder_ids = array();      if (($folder instanceof ProjectFolder) && ($folder->getProjectId() == $project->getId())) {        if ($hide_private) {          $conditions = array('`project_id` = ? AND `folder_id` = ? AND `is_private` = ? AND `is_visible` = ?', $project->getId(), $folder->getId(), false, true);        } else {          $conditions = array('`project_id` = ? AND `folder_id` = ? AND `is_visible` = ?', $project->getId(), $folder->getId(), true);        } // if      } else {        if ($hide_private) {          $conditions = array('`project_id` = ? AND `is_private` = ? AND `is_visible` = ?', $project->getId(), false, true);        } else {          $conditions = array('`project_id` = ? AND `is_visible` = ?', $project->getId(), true);        } // if      } // if            list($files, $pagination) = ProjectFiles::paginate(array(        'conditions' => $conditions,        'order' => $order_by      ), $files_per_page, $page);            if ($group_by_order) {        $grouped_files = array();        if (is_array($files) && count($files)) {          $today = DateTimeValueLib::now();          foreach ($files as $file) {                        $group_by_str = '';            if ($order == self::ORDER_BY_POSTTIME) {              $created_on = $file->getCreatedOn();              if ($created_on->getYear() == $today->getYear()) {                $group_by_str = format_descriptive_date($created_on);              } else {                $group_by_str = format_date($created_on);              } // if            } else {              $group_by_str = strtoupper(substr_utf($file->getFilename(), 0, 1));            } // if                        if (!isset($grouped_files[$group_by_str]) || !is_array($grouped_files[$group_by_str])) {              $grouped_files[$group_by_str] = array();            }            $grouped_files[$group_by_str][] = $file;                      } // foreach        } // if        $files = is_array($grouped_files) ? $grouped_files : null;      } // if            return array($files, $pagination);    } // getProjectFiles        /**    * Orphened files are files that are not part of any folder, but project itself    *    * @param Project $project    * @param boolean $show_private    * @return null    */    static function getOrphanedFilesByProject(Project $project, $show_private = false) {      if ($show_private) {        $conditions = array('`project_id` =? AND `folder_id` = ?', $project->getId(), 0);      } else {        $conditions = array('`project_id` =? AND `folder_id` = ? AND `is_private` = ?', $project->getId(), 0, false);      } // if            return self::findAll(array(        'conditions' => $conditions,        'order' => '`filename`',      ));    } // getOrphanedFilesByProject        /**    * Reaturn all project files    *    * @param Project $project    * @return array    */    static function getAllFilesByProject(Project $project) {      return self::findAll(array(        'conditions' => array('`project_id` = ?', $project->getId())      )); // findAll    } // getAllFilesByProject        /**    * Return files by URL. Files will be ordered by filename    *    * @param ProjectFolder $folder    * @param boolean $show_private    * @return array    */    static function getByFolder(ProjectFolder $folder, $show_private = false) {      $project = $folder->getProject();      if (!($project instanceof Project)) {        return null;      } // if            if ($show_private) {        $conditions = array('`project_id` =? AND `folder_id` = ?', $project->getId(), $folder->getId());      } else {        $conditions = array('`project_id` =? AND `folder_id` = ? AND `is_private` = ?', $project->getId(), $this->getId(), false);      } // if            return self::findAll(array(        'conditions' => $conditions,        'order' => '`filename`',      ));    } // getByFolder        /**    * Return files index page    *    * @param string $order_by    * @param integer $page    * @return string    */    static function getIndexUrl($order_by = null, $page = null) {      if (($order_by <> ProjectFiles::ORDER_BY_NAME) && ($order_by <> ProjectFiles::ORDER_BY_POSTTIME)) {        $order_by = ProjectFiles::ORDER_BY_POSTTIME;      } // if            // #PAGE# is reserved as a placeholder      if ($page <> '#PAGE#') {        $page = (integer) $page > 0 ? (integer) $page : 1;      } // if            return get_url('files', 'index', array(        'active_project' => active_project()->getId(),        'order' => $order_by,        'page' => $page      )); // array    } // getIndexUrl        /**    * Return important project files    *    * @param Project $project    * @param boolean $include_private    * @return array    */    static function getImportantProjectFiles(Project $project, $include_private = false) {      if ($include_private) {        $conditions = array('`project_id` = ? AND `is_important` = ?', $project->getId(), true);      } else {        $conditions = array('`project_id` = ? AND `is_important` = ? AND `is_private` = ?', $project->getId(), true, false);      } // if            return self::findAll(array(        'conditions' => $conditions,        'order' => '`created_on`',      ));    } // getImportantProjectFiles        /**    * Handle files uploaded using helper forms. This function will return array of uploaded     * files when finished    *    * @param Project $project    * @param string $files_var_prefix If value of this variable is set only elements in $_FILES    *   with key starting with $files_var_prefix will be handled    * @return array    */    static function handleHelperUploads(Project $project, $files_var_prefix = null) {      if (!isset($_FILES) || !is_array($_FILES) || !count($_FILES)) {        return null; // no files to handle      } // if            $uploaded_files = array();      foreach ($_FILES as $uploaded_file_name => $uploaded_file) {        if ((trim($files_var_prefix) <> '') && !str_starts_with($uploaded_file_name, $files_var_prefix)) {          continue;        } // if                if (!isset($uploaded_file['name']) || !isset($uploaded_file['tmp_name']) || !is_file($uploaded_file['tmp_name'])) {          continue;        } // if                $uploaded_files[$uploaded_file_name] = $uploaded_file;      } // foreach            if (!count($uploaded_file)) {        return null; // no files to handle      } // if            $result = array(); // we'll put all files here      $expiration_time = DateTimeValueLib::now()->advance(1800, false);            foreach ($uploaded_files as $uploaded_file) {        $file = new ProjectFile();                $file->setProjectId($project->getId());        $file->setFilename($uploaded_file['name']);        $file->setIsVisible(false);        $file->setExpirationTime($expiration_time);        $file->save();                $file->handleUploadedFile($uploaded_file); // initial version                $result[] = $file;      } // foreach            return count($result) ? $result : null;    } // handleHelperUploads    } // ProjectFiles ?>

⌨️ 快捷键说明

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