2 /***************************************************************************
3 * Copyright (C) 2003-2011 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
22 class SurveyModule
extends PLModule
27 'survey' => $this->make_hook('index', AUTH_COOKIE
),
28 'survey/vote' => $this->make_hook('vote', AUTH_COOKIE
),
29 'survey/edit' => $this->make_hook('edit', AUTH_COOKIE
),
31 'survey/result' => $this->make_hook('result', AUTH_COOKIE),
32 'survey/ajax' => $this->make_hook('ajax', AUTH_COOKIE),
33 'survey/admin' => $this->make_hook('admin', AUTH_MDP, 'admin'),
34 'survey/admin/edit' => $this->make_hook('adminEdit', AUTH_MDP, 'admin'),
35 'survey/admin/valid' => $this->make_hook('adminValidate', AUTH_MDP, 'admin'),
36 'survey/admin/del' => $this->make_hook('adminDelete', AUTH_MDP, 'admin'),
40 function handler_index(&$page, $action = null
)
42 $this->load('survey.inc.php');
44 XDB
::execute("DELETE FROM surveys");
46 $survey = new Survey();
48 $survey->shortname
= "blah";
49 $survey->title
= "Blah";
50 $survey->description
= "Blih blih blih blih";
51 $survey->uid
= S
::user()->id();
52 $survey->begin
= "09/09/2010";
53 $survey->end
= "30/12/2011";
55 $qpage = $survey->newQuestion("section");
56 $qpage->parameters
= array('type' => 'page');
57 $qpage->label
= 'Première page';
59 $question = $qpage->newQuestion("text");
60 $question->label
= "Super question";
61 $question->flags
= "mandatory";
62 $question->parameters
= array("type" => "text", "limit" => 256);
64 $question = $qpage->newQuestion("text");
65 $question->label
= "Super question 2";
67 $qpage = $survey->newQuestion("section");
68 $qpage->parameters
= array('type' => 'page');
69 $qpage->label
= 'Deuxième page';
71 $survey->flags
= 'validated';
72 $survey->insert(true
);
74 $page->changeTpl('survey/index.tpl');
75 $page->assign('active', Survey
::iterActive());
78 function handler_vote(PlPage
$page, $name)
80 $this->load('survey.inc.php');
81 $page->addJsLink('jquery.tmpl.js');
82 $page->addJsLink('survey.js');
83 $page->changeTpl('survey/vote.tpl');
84 $survey = Survey
::get($name);
85 if (is_null($survey)) {
88 if (!$survey->canSee(S
::user())) {
91 if (Post
::has('vote')) {
92 $answers = Post
::v('qid');
93 $vote = $survey->vote(S
::user(), $answers);
95 $page->kill("Tu n'as pas le droit de voter à ce sondage.");
96 } else if ($vote->inError()) {
97 $page->trigError("Certaines réponses sont invalides et doivent être corrigées");
100 $page->trigSuccess("Ton vote a été enregistré");
103 $page->assign('survey', $survey);
106 function handler_edit(PlPage
$page, $name = null
)
108 $this->load('survey.inc.php');
109 $page->addJsLink('jquery.ui.core.js');
110 $page->addJsLink('jquery.ui.widget.js');
111 $page->addJsLink('jquery.ui.datepicker.js');
112 $page->addJsLink('jquery.ui.datepicker-fr.js');
113 $page->addJsLink('jquery.tmpl.js');
114 $page->addJsLink('survey.js');
115 $page->changeTpl('survey/edit.tpl');
117 if (!is_null($name)) {
118 $survey = Survey
::get($name);
120 $survey = new Survey();
122 $survey->uid
= S
::user()->id();
124 if (Post
::has('save')) {
126 $page->assign('survey', $survey);
130 // vim:set et sw=4 sts=4 ts=4 foldmethod=marker enc=utf-8: