/** * Adds or Edits a Quiz * * @return void * @author Ben Evans */ public function addeditAction() { // The Form $form = new Form_AddQuiz(); $this->view->form = $form; // Editing? Or new Quiz? $editing = null; $editing = $this->_getParam("id"); if (!is_null($editing)) { $editing = Model_Quiz_Quiz::fromID($editing); $this->view->editing = $editing; // Populate Form $id = new Zend_Form_Element_Hidden('id'); $id->setValue($editing->getID()); $form->addElement($id); $form->getElement("name")->setValue($editing->getName()); $form->getElement("permissions")->setValue($editing->getPermissions_group()); $form->getElement("opendate")->setValue(date("Y-m-d", $editing->getOpen_date())); $form->getElement("closedate")->setValue(date("Y-m-d", $editing->getClose_date())); $form->getElement("attempts")->setValue($editing->getMax_attempts()); $form->getElement("percentage")->setValue($editing->getPercentage_pass()); } // Submitting? if ($this->getRequest()->isPost()) { $formData = $_POST; //My_Logger::log(var_export($formData, true)); if (!$form->isValid($_POST)) { // Failed validation; redisplay form $this->view->form = $form; return; } else { if (is_null($editing)) { // New Quiz $vQuiz = Model_Quiz_Quiz::fromScratch($formData['name'], $formData['permissions'], $formData['opendate'], $formData['closedate'], $formData['attempts'], $formData['percentage']); } else { // Editing Quiz $editing->setQuiz_name($formData['name']); $editing->setPermissions_group($formData['permissions']); $editing->setOpen_date(strtotime($formData['opendate'])); $editing->setClose_date(strtotime($formData['closedate'])); $editing->setMax_attempts($formData['attempts']); $editing->setPercentage_pass($formData['percentage']); } // Redirect to the Manage Quiz Pages $this->_helper->redirector("manage", "admin"); } } }
function createQuiz($name, $permissions, $starts = false, $ends = false, $attempts = 50, $percentage = 100) { return Model_Quiz_Quiz::fromScratch($name, $permissions, $starts ?: date('Y-m-d', strtotime("-1 month")), $ends ?: date('Y-m-d', strtotime("+5 month")), $attempts, $percentage); }