$this->make_hook('index', AUTH_COOKIE), 'survey/vote' => $this->make_hook('vote', AUTH_COOKIE), 'survey/edit' => $this->make_hook('edit', AUTH_COOKIE), /* 'survey/result' => $this->make_hook('result', AUTH_COOKIE), 'survey/ajax' => $this->make_hook('ajax', AUTH_COOKIE), 'survey/admin' => $this->make_hook('admin', AUTH_MDP, 'admin'), 'survey/admin/edit' => $this->make_hook('adminEdit', AUTH_MDP, 'admin'), 'survey/admin/valid' => $this->make_hook('adminValidate', AUTH_MDP, 'admin'), 'survey/admin/del' => $this->make_hook('adminDelete', AUTH_MDP, 'admin'), */ ); } function handler_index(&$page, $action = null) { $this->load('survey.inc.php'); $page->changeTpl('survey/index.tpl'); $page->assign('active', Survey::iterActive()); } function handler_vote(PlPage $page, $name) { $this->load('survey.inc.php'); $page->addJsLink('jquery.tmpl.js'); $page->addJsLink('survey.js'); $page->changeTpl('survey/vote.tpl'); $survey = Survey::get($name); if (is_null($survey)) { return PL_NOT_FOUND; } if (!$survey->canSee(S::user())) { return PL_FORBIDDEN; } if (Post::has('vote')) { $answers = Post::v('qid'); $vote = $survey->vote(S::user(), $answers); if (is_null($vote)) { $page->kill("Tu n'as pas le droit de voter à ce sondage."); } else if ($vote->inError()) { $page->trigError("Certaines réponses sont invalides et doivent être corrigées"); } else { $vote->insert(true); $page->trigSuccess("Ton vote a été enregistré"); } } $page->assign('survey', $survey); } 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'); $page->changeTpl('survey/edit.tpl'); if (!is_null($name)) { $survey = Survey::get($name); } else { $survey = new Survey(); $survey->id = null; $survey->uid = S::user()->id(); } 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'; if (Post::b('anonymous')) { $survey->flags->addFlag('anonymous'); } $q_edit = Post::v('q_edit'); $qs = array(); 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); } } // vim:set et sw=4 sts=4 ts=4 foldmethod=marker enc=utf-8: ?>