private function getProjectIdForSystemReference($keyword, $value) { $ref_gid = null; $nature = $this->getSystemReferenceNatureByKeyword($keyword); switch ($nature) { case self::REFERENCE_NATURE_RELEASE: $release_factory = new FRSReleaseFactory(); $release = $release_factory->getFRSReleaseFromDb($value); if ($release) { $ref_gid = $release->getProject()->getID(); } break; case self::REFERENCE_NATURE_FILE: $file_factory = new FRSFileFactory(); $file = $file_factory->getFRSFileFromDb($value); if ($file) { $ref_gid = $file->getGroup()->getID(); } break; case self::REFERENCE_NATURE_FORUM: $forum_dao = new ForumDao(); $forum_group_id_row = $forum_dao->searchByGroupForumId($value)->getRow(); if ($forum_group_id_row) { $ref_gid = $forum_group_id_row['group_id']; } break; case self::REFERENCE_NATURE_FORUMMESSAGE: $forum_dao = new ForumDao(); $message_group_id_row = $forum_dao->getMessageProjectId($value); if ($message_group_id_row) { $ref_gid = $message_group_id_row['group_id']; } break; case self::REFERENCE_NATURE_NEWS: $news_dao = new NewsBytesDao(); $news_group_id_row = $news_dao->searchByForumId($value)->getRow(); if ($news_group_id_row) { $ref_gid = $news_group_id_row['group_id']; } break; } return $ref_gid; }