/**
  * Action for creating a new instance from an existing questionnaire
  */
 public function newInstanceAction()
 {
     $session = new Zend_Session_Namespace('login');
     $instanceID = $session->newInstanceResponsesInstanceID;
     $instanceName = $this->_getParam('instanceName');
     $importResponses = $this->_getParam('newInstanceImportResponsesRadioButton');
     if (is_numeric($instanceID)) {
         $session->newInstanceResponsesInstanceID = intVal($instanceID);
     } elseif (isset($importResponses) && $importResponses === 'newInstanceImportInstanceResponses') {
         $this->_redirector->gotoRouteAndExit(array('action' => 'index'));
     }
     $questionnaire = new QuestionnaireModel(array('questionnaireID' => $session->dataQuestionnaireID, 'depth' => 'questionnaire'));
     if ($importResponses === 'newInstanceImportInstanceResponses') {
         $importResponsesInstanceID = $this->_getParam('newInstanceResponsesInstanceSelect');
         InstanceModel::importXML($questionnaire->fetchQuestionnaireDefinition(), $instanceName, array('instanceID' => $importResponsesInstanceID));
     } else {
         InstanceModel::importXML($questionnaire->fetchQuestionnaireDefinition(), $instanceName);
     }
     $this->flash('notice', 'New Instance Created');
     $this->_redirector->gotoRoute(array('action' => 'index'));
 }
 /**
  * Export actions
  */
 public function QuestionnaireDefinitionXMLDownloadAction()
 {
     $session = new Zend_Session_Namespace('login');
     $questionnaire = new QuestionnaireModel(array('questionnaireID' => $session->dataQuestionnaireID, 'depth' => 'questionnaire'));
     $cryptoID = $this->_hasParam('cryptoID') ? $this->_getParam('cryptoID') : null;
     if (isset($cryptoID) && $cryptoID != 0) {
         $crypto = new CryptoModel(array('cryptoID' => $cryptoID));
         $this->view->xml = $crypto->encrypt($questionnaire->fetchQuestionnaireDefinition());
         $this->view->cryptoID = $cryptoID;
     } else {
         $this->view->xml = $questionnaire->fetchQuestionnaireDefinition();
     }
     $this->view->setRenderLayout(false);
 }