Kill is_IE.
[platal.git] / modules / survey.php
index 1d0c014..5a6069f 100644 (file)
@@ -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);
     }