Пример #1
0
 * You should have received a copy of the GNU General Public License
 * along with GForge; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
require_once '../env.inc.php';
require_once $gfwww . 'include/pre.php';
require_once $gfcommon . 'survey/SurveyFactory.class.php';
require_once $gfwww . 'survey/include/SurveyHTML.class.php';
$group_id = getIntFromRequest('group_id');
$survey_id = getIntFromRequest('survey_id');
/* We need a group_id */
if (!$group_id) {
    exit_no_group();
}
$g =& group_get_object($group_id);
if (!$g || !is_object($g) || $g->isError()) {
    exit_no_group();
}
$user_id = user_getid();
/* Show header */
$sh = new SurveyHtml();
$sh->header(array('title' => _('Survey')));
/* Show list of Servey */
$sf = new SurveyFactory($g);
$ss =& $sf->getSurveys();
if (!$ss) {
    echo '<h2>' . _('No Survey is found') . '</h2>';
} else {
    echo $sh->showSurveys($ss, 0, 0, 1, 1, 1, 0);
}
$sh->footer(array());
Пример #2
0
 function delete($sure, $really_sure, $really_really_sure)
 {
     if (!$sure || !$really_sure || !$really_really_sure) {
         $this->setMissingParamsError();
         return false;
     }
     if ($this->getID() == $GLOBALS['sys_news_group'] || $this->getID() == 1 || $this->getID() == $GLOBALS['sys_stats_group'] || $this->getID() == $GLOBALS['sys_peer_rating_group']) {
         $this->setError(_('Cannot Delete System Group'));
         return false;
     }
     $perm =& $this->getPermission(session_get_user());
     if (!$perm || !is_object($perm)) {
         $this->setPermissionDeniedError();
         return false;
     } elseif ($perm->isError()) {
         $this->setPermissionDeniedError();
         return false;
     } elseif (!$perm->isSuperUser()) {
         $this->setPermissionDeniedError();
         return false;
     }
     db_begin();
     //
     //	Remove all the members
     //
     $members =& $this->getMembers();
     for ($i = 0; $i < count($members); $i++) {
         $this->removeUser($members[$i]->getID());
     }
     //
     //	Delete Trackers
     //
     $atf = new ArtifactTypeFactory($this);
     $at_arr =& $atf->getArtifactTypes();
     for ($i = 0; $i < count($at_arr); $i++) {
         if (!is_object($at_arr[$i])) {
             printf(_("Not Object: ArtifactType: %d"), $i);
             continue;
         }
         $at_arr[$i]->delete(1, 1);
     }
     //
     //	Delete Forums
     //
     $ff = new ForumFactory($this);
     $f_arr =& $ff->getForums();
     for ($i = 0; $i < count($f_arr); $i++) {
         if (!is_object($f_arr[$i])) {
             printf(_("Not Object: Forum: %d"), $i);
             continue;
         }
         $f_arr[$i]->delete(1, 1);
         //echo 'ForumFactory'.db_error();
     }
     //
     //	Delete Subprojects
     //
     $pgf = new ProjectGroupFactory($this);
     $pg_arr =& $pgf->getProjectGroups();
     for ($i = 0; $i < count($pg_arr); $i++) {
         if (!is_object($pg_arr[$i])) {
             printf(_("Not Object: ProjectGroup: %d"), $i);
             continue;
         }
         $pg_arr[$i]->delete(1, 1);
         //echo 'ProjectGroupFactory'.db_error();
     }
     //
     //	Delete FRS Packages
     //
     //$frspf = new FRSPackageFactory($this);
     $res = db_query("SELECT * FROM frs_package WHERE group_id='" . $this->getID() . "'");
     //echo 'frs_package'.db_error();
     //$frsp_arr =& $frspf->getPackages();
     while ($arr = db_fetch_array($res)) {
         //if (!is_object($pg_arr[$i])) {
         //	echo "Not Object: ProjectGroup: ".$i;
         //	continue;
         //}
         $frsp = new FRSPackage($this, $arr['package_id'], $arr);
         $frsp->delete(1, 1);
     }
     //
     //	Delete news
     //
     $news_group =& group_get_object($GLOBALS['sys_news_group']);
     $res = db_query("SELECT forum_id FROM news_bytes WHERE group_id='" . $this->getID() . "'");
     for ($i = 0; $i < db_numrows($res); $i++) {
         $Forum = new Forum($news_group, db_result($res, $i, 'forum_id'));
         if (!$Forum->delete(1, 1)) {
             printf(_("Could Not Delete News Forum: %d"), $Forum->getID());
         }
     }
     $res = db_query("DELETE FROM news_bytes WHERE group_id='" . $this->getID() . "'");
     //
     //	Delete docs
     //
     $res = db_query("DELETE FROM doc_data WHERE group_id='" . $this->getID() . "'");
     //echo 'doc_data'.db_error();
     $res = db_query("DELETE FROM doc_groups WHERE group_id='" . $this->getID() . "'");
     //echo 'doc_groups'.db_error();
     //
     //	Delete group history
     //
     $res = db_query("DELETE FROM group_history WHERE group_id='" . $this->getID() . "'");
     //echo 'group_history'.db_error();
     //
     //	Delete group plugins
     //
     $res = db_query("DELETE FROM group_plugin WHERE group_id='" . $this->getID() . "'");
     //echo 'group_plugin'.db_error();
     //
     //	Delete group cvs stats
     //
     $res = db_query("DELETE FROM stats_cvs_group WHERE group_id='" . $this->getID() . "'");
     //echo 'stats_cvs_group'.db_error();
     //
     //	Delete Surveys
     //
     $sf = new SurveyFactory($this);
     $s_arr =& $sf->getSurveys();
     for ($i = 0; $i < count($s_arr); $i++) {
         if (!is_object($s_arr[$i])) {
             printf(_("Not Object: Survey: %d"), $i);
             continue;
         }
         $s_arr[$i]->delete();
         //echo 'SurveyFactory'.db_error();
     }
     //
     //	Delete SurveyQuestions
     //
     $sqf = new SurveyQuestionFactory($this);
     $sq_arr =& $sqf->getSurveyQuestions();
     for ($i = 0; $i < count($sq_arr); $i++) {
         if (!is_object($sq_arr[$i])) {
             printf(_("Not Object: SurveyQuestion: %d"), $i);
             continue;
         }
         $sq_arr[$i]->delete();
         //echo 'SurveyQuestionFactory'.db_error();
     }
     //
     //	Delete Mailing List Factory
     //
     $mlf = new MailingListFactory($this);
     $ml_arr =& $mlf->getMailingLists();
     for ($i = 0; $i < count($ml_arr); $i++) {
         if (!is_object($ml_arr[$i])) {
             printf(_("Not Object: MailingList: %d"), $i);
             continue;
         }
         if (!$ml_arr[$i]->delete(1, 1)) {
             $this->setError(_('Could not properly delete the mailing list'));
         }
         //echo 'MailingListFactory'.db_error();
     }
     //
     //	Delete trove
     //
     $res = db_query("DELETE FROM trove_group_link WHERE group_id='" . $this->getID() . "'");
     $res = db_query("DELETE FROM trove_agg WHERE group_id='" . $this->getID() . "'");
     //
     //	Delete counters
     //
     $res = db_query("DELETE FROM project_sums_agg WHERE group_id='" . $this->getID() . "'");
     //echo 'project_sums_agg'.db_error();
     $res = db_query("INSERT INTO deleted_groups (\n\t\tunix_group_name,delete_date,isdeleted) VALUES \n\t\t('" . $this->getUnixName() . "','" . time() . "','0')");
     //echo 'InsertIntoDeleteQueue'.db_error();
     $res = db_query("DELETE FROM groups WHERE group_id='" . $this->getID() . "'");
     //echo 'DeleteGroup'.db_error();
     db_commit();
     if (!$res) {
         return false;
     }
     $hook_params = array();
     $hook_params['group'] = $this;
     $hook_params['group_id'] = $this->getID();
     plugin_hook("group_delete", $hook_params);
     if (isset($GLOBALS['sys_upload_dir']) && $this->getUnixName()) {
         exec('/bin/rm -rf ' . $GLOBALS['sys_upload_dir'] . '/' . $this->getUnixName() . '/');
     }
     if (isset($GLOBALS['sys_ftp_upload_dir']) && $this->getUnixName()) {
         exec('/bin/rm -rf ' . $GLOBALS['sys_ftp_upload_dir'] . '/' . $this->getUnixName() . '/');
     }
     //
     //	Delete reporting
     //
     $res = db_query("DELETE FROM rep_group_act_weekly WHERE group_id='" . $this->getID() . "'");
     //echo 'rep_group_act_weekly'.db_error();
     $res = db_query("DELETE FROM rep_group_act_monthly WHERE group_id='" . $this->getID() . "'");
     //echo 'rep_group_act_monthly'.db_error();
     $res = db_query("DELETE FROM rep_group_act_daily WHERE group_id='" . $this->getID() . "'");
     //echo 'rep_group_act_daily'.db_error();
     unset($this->data_array);
     return true;
 }