X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fsurvey.php;h=5a6069ffe6747c1dc50c8e90cacc76d2fb18d5ae;hb=f28684feb06bef0d1d00f52db84d160ec557c458;hp=1d0c01433b5b30d4068251fc3d79c6483169e8ec;hpb=31d63ae190dacb5f9d7b5914065877e43491d615;p=platal.git diff --git a/modules/survey.php b/modules/survey.php index 1d0c014..5a6069f 100644 --- a/modules/survey.php +++ b/modules/survey.php @@ -37,39 +37,16 @@ class SurveyModule extends PLModule */ ); } - function handler_index(&$page, $action = null) + private function setup_page(PlPage $page) { $this->load('survey.inc.php'); + $page->addJsLink('jquery.ui.xorg.js'); + $page->addJsLink('survey.js'); + } - XDB::execute("DELETE FROM surveys"); - - $survey = new Survey(); - $survey->id = null; - $survey->shortname = "blah"; - $survey->title = "Blah"; - $survey->description = "Blih blih blih blih"; - $survey->uid = S::user()->id(); - $survey->begin = "09/09/2010"; - $survey->end = "30/12/2011"; - - $qpage = $survey->newQuestion("section"); - $qpage->parameters = array('type' => 'page'); - $qpage->label = 'Première page'; - - $question = $qpage->newQuestion("text"); - $question->label = "Super question"; - $question->flags = "mandatory"; - $question->parameters = array("type" => "text", "limit" => 256); - - $question = $qpage->newQuestion("text"); - $question->label = "Super question 2"; - - $qpage = $survey->newQuestion("section"); - $qpage->parameters = array('type' => 'page'); - $qpage->label = 'Deuxième page'; - - $survey->flags = 'validated'; - $survey->insert(true); + function handler_index(&$page, $action = null) + { + $this->setup_page($page); $page->changeTpl('survey/index.tpl'); $page->assign('active', Survey::iterActive()); @@ -77,10 +54,9 @@ class SurveyModule extends PLModule function handler_vote(PlPage $page, $name) { - $this->load('survey.inc.php'); - $page->addJsLink('jquery.tmpl.js'); - $page->addJsLink('survey.js'); + $this->setup_page($page); $page->changeTpl('survey/vote.tpl'); + $survey = Survey::get($name); if (is_null($survey)) { return PL_NOT_FOUND; @@ -105,13 +81,7 @@ class SurveyModule extends PLModule function handler_edit(PlPage $page, $name = null) { - $this->load('survey.inc.php'); - $page->addJsLink('jquery.ui.core.js'); - $page->addJsLink('jquery.ui.widget.js'); - $page->addJsLink('jquery.ui.datepicker.js'); - $page->addJsLink('jquery.ui.datepicker-fr.js'); - $page->addJsLink('jquery.tmpl.js'); - $page->addJsLink('survey.js'); + $this->setup_page($page); $page->changeTpl('survey/edit.tpl'); if (!is_null($name)) { @@ -121,7 +91,33 @@ class SurveyModule extends PLModule $survey->id = null; $survey->uid = S::user()->id(); } - if (Post::has('save')) { + if (Post::has('valid')) { + $survey->title = Post::t('title'); + $survey->shortname = Post::t('shortname'); + $survey->description = Post::t('description'); + $survey->begin = Post::t('begin'); + $survey->end = Post::t('end'); + $survey->flags = 'validated'; + $survey->flags->addFlag('anonymous', Post::b('anonymous')); + + $q_edit = Post::v('q_edit'); + $qs = array(); + $survey->clearQuestions(); + foreach ($q_edit as $qid => $q_desc) { + if (isset($q_desc['parent'])) { + $parent = $qs[$q_desc['parent']]; + } else { + $parent = $survey; + } + $question = $parent->newQuestion($q_desc['type']); + $question->label = $q_desc['label']; + unset($q_desc['type']); + unset($q_desc['parent']); + unset($q_desc['label']); + $question->parameters = $q_desc; + $qs[$qid] = $question; + } + $survey->insert('true'); } $page->assign('survey', $survey); }