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

📄 tags.class.php

📁 ProjectPier 源码 很好的项目管理程序
💻 PHP
字号:
<?php  /**  * Tags, generated on Wed, 05 Apr 2006 06:44:54 +0200 by   * DataObject generation tool  *  * @http://www.projectpier.org/  */  class Tags extends BaseTags {      /**    * Return tags for specific object    *    * @access public    * @param ProjectDataObject $object    * @param string $manager_class    * @return array    */    function getTagsByObject(ProjectDataObject $object, $manager_class) {      return self::findAll(array(        'conditions' => array('`rel_object_id` = ? AND `rel_object_manager` = ?', $object->getObjectId(), get_class($object->manager())),        'order' => '`tag`'      )); // findAll    } // getTagsByObject        /**    * Return tag names as array for specific object    *    * @access public    * @param ProjectDataObject $object    * @param string $manager_class    * @return array    */    function getTagNamesByObject(ProjectDataObject $object, $manager_class) {      $rows = DB::executeAll('SELECT `tag` FROM ' .  self::instance()->getTableName(true) . ' WHERE `rel_object_id` = ? AND `rel_object_manager` = ? ORDER BY `tag`', $object->getId(), $manager_class);            if (!is_array($rows)) {        return null;      }            $tags = array();      foreach ($rows as $row) {        $tags[] = $row['tag'];      }      return $tags;    } // getTagNamesByObject        /**    * Clear tags of specific object    *    * @access public    * @param ProjectDataObject $object    * @param string $manager_class    * @return boolean    */    function clearObjectTags(ProjectDataobject $object, $manager_class) {      $tags = $object->getTags(); // save the tags list      if (is_array($tags)) {        foreach ($tags as $tag) {          $tag->delete();        }      } // if    } // clearObjectTags        /**    * Set tags for specific object    *    * @access public    * @param array $tags Array of tags... Can be NULL or empty    * @param ProjectDataObject $object    * @param string $manager_class    * @param Project $project    * @return null    */    function setObjectTags($tags, ProjectDataObject $object, $manager_class, $project = null) {      self::clearObjectTags($object, $manager_class);      if (is_array($tags) && count($tags)) {        foreach ($tags as $tag_name) {                    if (trim($tag_name) <> '') {            $tag = new Tag();                        if ($project instanceof Project) {              $tag->setProjectId($project->getId());            }            $tag->setTag($tag_name);            $tag->setRelObjectId($object->getId());            $tag->setRelObjectManager($manager_class);            $tag->setIsPrivate($object->isPrivate());                        $tag->save();          } // if                  } // foreach      } // if      return true;    } // setObjectTags        /**    * Return unique tag names used on project objects    *    * @access public    * @param Project $project    * @return array    */    function getProjectTagNames(Project $project, $exclude_private = false) {      if ($exclude_private) {        $rows = DB::executeAll("SELECT DISTINCT `tag` FROM " . self::instance()->getTableName(true) . ' WHERE `project_id` = ? AND `is_private` = ? ORDER BY `tag`', $project->getId(), 0);      } else {        $rows = DB::executeAll("SELECT DISTINCT `tag` FROM " . self::instance()->getTableName(true) . ' WHERE `project_id` = ? ORDER BY `tag`', $project->getId());      } // if      if (!is_array($rows) || !count($rows)) {        return null;      }            $tags = array();      foreach ($rows as $row) {        $tags[] = $row['tag'];      } // foreach            return $tags;    } // getProjectTagNames        /**    * Return array of project objects. Optional filters are by tag and / or by object class    *    * @access public    * @param Project $project    * @param string $tag Return objects that are tagged with specific tag    * @param string $class Return only object that match specific class (manager class name)    * @param boolean $exclude_private Exclude private objects from listing    * @return array    */    function getProjectObjects(Project $project, $tag = null, $class = null, $exclude_private = false) {      $conditions = '`project_id` = ' . DB::escape($project->getId());      if (trim($tag) <> '') {        $conditions .= ' AND `tag` = ' . DB::escape($tag);      }      if (trim($class) <> '') {        $conditions .= ' AND `rel_object_manager` = ' .  DB::escape($class);      }      if ($exclude_private) {        $conditions .= ' AND `is_private` = ' . DB::escape(0);      }            $tags = self::findAll(array(        'conditions' => $conditions,        'order_by' => '`created_on`'      )); // findById            if (!is_array($tags)) {        return null;      }            $objects = array();      foreach ($tags as $tag_object) {        $object = $tag_object->getObject();        if ($object instanceof ProjectDataObject) {          $objects[] = $object;        }      } // foreach            return count($objects) ? $objects : null;          } // getProjectObjects        /**    * Returns number of objects tagged with specific tag    *    * @access public    * @param string $tag Tag name    * @param Project $project Only objects that belong to this project    * @param boolean $exclude_private Exclude private objects from listing    * @return integer    */    function countProjectObjectsByTag($tag, Project $project, $exclude_private = false) {      if ($exclude_private) {        $row = DB::executeOne("SELECT COUNT(`id`) AS 'row_count' FROM " . self::instance()->getTableName(true) . " WHERE `tag` = ? AND `project_id` = ? AND `is_private` = ?", $tag, $project->getId(), 0);      } else {        $row = DB::executeOne("SELECT COUNT(`id`) AS 'row_count' FROM " . self::instance()->getTableName(true) . " WHERE `tag` = ? AND `project_id` = ?", $tag, $project->getId());      } // if      return array_var($row, 'row_count', 0);    } // countProjectObjectsByTag      } // Tags ?>

⌨️ 快捷键说明

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