<input type = "button" value = "##STARTUNIT##" class = "flatButton" onclick = \'window.open("' . $scormValue . '", "scormFrameName", "' . $values['popup_parameters'] . '")\' > </div>'; } elseif ($values['embed_type'] == 'popup' && strpos($currentUnit['data'], 'window.open') !== false) { //in case changing only popup parameters field preg_match("/\"scormFrameName\".*\"\\)'/U", $currentUnit['data'], $matches); $currentUnit['data'] = preg_replace("/\"scormFrameName\".*\"\\)'/U", '"scormFrameName", "' . $values['popup_parameters'] . '")\'', $currentUnit['data']); } $currentUnit['data'] = preg_replace("/eF_js_setCorrectIframeSize\\(.*\\)/", "eF_js_setCorrectIframeSize(" . $values['scorm_size'] . ")", $currentUnit['data']); } $values['ctg_type'] ? $currentUnit['ctg_type'] = $values['ctg_type'] : null; $values['name'] ? $currentUnit['name'] = $values['name'] : null; $currentUnit['options'] = $options; $currentUnit->persist(); $currentUnit->setSearchKeywords(); } else { $fields = array('name' => $values['name'], 'data' => applyEditorOffset($values['data']), 'parent_content_ID' => $values['parent_content_ID'], 'lessons_ID' => $_SESSION['s_lessons_ID'], 'ctg_type' => $values['ctg_type'], 'active' => 1, 'options' => $options); $currentUnit = $currentContent->insertNode($fields); } EfrontCache::getInstance()->deleteCache("content_tree:{$_SESSION['s_lessons_ID']}"); $message = _OPERATIONCOMPLETEDSUCCESSFULLY; $message_type = 'success'; eF_redirect(basename($_SERVER['PHP_SELF']) . '?ctg=content&view_unit=' . $currentUnit['id'] . '&message=' . urlencode($message) . '&message_type=success'); } catch (Exception $e) { handleNormalFlowExceptions($e); } } $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR); $form->setRequiredNote(_REQUIREDNOTE); $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $renderer->setRequiredTemplate('{$html}{if $required} <span class = "formRequired">*</span>
if (isset($_GET['edit_block'])) { $customBlocks[$_GET['edit_block']]['content'] = file_get_contents($basedir . $customBlocks[$_GET['edit_block']]['name'] . '.tpl'); $layout_form->setDefaults($customBlocks[$_GET['edit_block']]); $layout_form->freeze(array('name')); } if ($layout_form->isSubmitted() && $layout_form->validate()) { $values = $layout_form->exportValues(); if (isset($_GET['edit_block'])) { // not rename blocks by editing. It created many unused files $values['name'] = $customBlocks[$_GET['edit_block']]['name']; } else { $values['name'] = time(); //Use the timestamp as name } $block = array('name' => $values['name'], 'title' => $values['title']); file_put_contents($basedir . $values['name'] . '.tpl', applyEditorOffset($values['content'])); if (isset($_GET['edit_block'])) { $customBlocks[$_GET['edit_block']] = $block; } else { sizeof($customBlocks) > 0 ? $customBlocks[] = $block : ($customBlocks = array($block)); } $layoutTheme->layout['custom_blocks'] = $customBlocks; $layoutTheme->persist(); EfrontCache::getInstance()->deleteCache(G_DBNAME . ':themes'); eF_redirect(basename($_SERVER['PHP_SELF']) . "?ctg=themes&theme=" . $layoutTheme->{$layoutTheme->entity}['id'] . (isset($_GET['theme_layout']) ? '&theme_layout=' . $_GET['theme_layout'] : '')); } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $layout_form->accept($renderer); $smarty->assign('T_ADD_BLOCK_FORM', $renderer->toArray()); } else { $form = new HTML_QuickForm("import_settings_form", "post", basename($_SERVER['PHP_SELF']) . '?ctg=themes&theme=' . $layoutTheme->{$layoutTheme->entity}['id'] . (isset($_GET['theme_layout']) ? '&theme_layout=' . $_GET['theme_layout'] : ''), "", null, true);
$question_values = array('type' => 'true_false', 'options' => '', 'answer' => serialize($values['correct_true_false'])); } } break; default: if (class_exists($_GET['question_type'])) { list($form, $question_values) = call_user_func(array($_GET['question_type'], 'getForm'), $form, $currentQuestion); //for module-based questions } break; } //Common fields and actions for all question types if ($form->isSubmitted() && $form->validate()) { $form_values = $form->exportValues(); //$question_values['code'] = $form_values['code']; $question_values['text'] = applyEditorOffset($form_values['question_text']); $question_values['content_ID'] = $form_values['content_ID'] ? $form_values['content_ID'] : 0; $question_values['difficulty'] = $form_values['difficulty']; $question_values['explanation'] = $form_values['explanation']; $question_values['lessons_ID'] = $currentLesson->lesson['id'] ? $currentLesson->lesson['id'] : 0; $question_values['answers_explanation'] = serialize($form_values['answers_explanation']); if ($form_values['estimate_min'] || $form_values['estimate_sec']) { $estimate = $form_values['estimate_min'] * 60 + $form_values['estimate_sec']; $question_values['estimate'] = $estimate; } else { $question_values['estimate'] = null; } isset($_GET['from_test']) ? $location = '&edit_test=' . $_GET['from_test'] : ($location = ''); if (isset($currentQuestion)) { //If we are changing an existing question if (isset($form_values['submit_new_question'])) {
$form->addElement('submit', 'submit_add_project', _SUBMIT, 'class=flatButton'); if ($form->isSubmitted() && $form->validate()) { $deadline = mktime($_POST['deadline_Hour'], $_POST['deadline_Minute'], 0, $_POST['deadline_Month'], $_POST['deadline_Day'], $_POST['deadline_Year']); if ($deadline > time()) { $values = $form->exportValues(); try { if (isset($_GET['add_project'])) { $fields = array('title' => $values['title'], 'data' => applyEditorOffset($values['data']), 'deadline' => $deadline, 'creator_LOGIN' => $currentUser->user['login'], 'lessons_ID' => $currentLesson->lesson['id'], 'auto_assign' => $values['auto_assign'] ? 1 : 0); $newProject = EfrontProject::createProject($fields); EfrontEvent::triggerEvent(array("type" => EfrontEvent::PROJECT_EXPIRY, "timestamp" => $deadline, "lessons_ID" => $currentLesson->lesson['id'], "lessons_name" => $currentLesson->lesson['name'], "entity_ID" => $newProject->project['id'], "entity_name" => $newProject->project['title'])); $message = _PROJECTCREATEDSUCCESSFULLY; $message_type = 'success'; eF_redirect("" . basename($_SERVER['PHP_SELF']) . "?ctg=projects&edit_project=" . $newProject->project['id'] . "&tab=project_users&message=" . urlencode($message) . "&message_type={$message_type}"); } else { $currentProject->project['title'] = $values['title']; $currentProject->project['data'] = applyEditorOffset($values['data']); $currentProject->project['deadline'] = $deadline; $currentProject->project['auto_assign'] = $values['auto_assign'] ? 1 : 0; $currentProject->persist(); $type_entity = EfrontEvent::PROJECT_EXPIRY . "_" . $_GET['edit_project']; eF_updateTableData('notifications', array('timestamp' => $deadline), "id_type_entity LIKE '%_" . $type_entity . "'"); //EfrontEvent::triggerEvent(array("type" => EfrontEvent::PROJECT_EXPIRY, "timestamp" => $deadline, "lessons_ID" => $currentLesson -> lesson['id'], "lessons_name" => $currentLesson -> lesson['name'], "entity_ID" => $_GET['edit_project'], "entity_name" => $values['title'])); $message = _PROJECTUPDATEDSUCCESSFULLY; eF_redirect("" . basename($_SERVER['PHP_SELF']) . "?ctg=projects&message=" . urlencode($message) . "&message_type=success"); } } catch (Exception $e) { handleNormalFlowExceptions($e); } } else { $message = _DEADLINEDATEMUSTBEINFUTURE; $message_type = 'failure';
$currentTest->persist(); if (!$skillgap_tests) { $testUnit['name'] = $values['name']; $testUnit['parent_content_ID'] = $values['parent_content']; $testUnit->persist(); } if ($_GET['ctg'] != 'feedback') { $messageString = _SUCCESFULLYMODIFIEDTEST; } else { $messageString = _SUCCESFULLYMODIFIEDFEEDBACK; } EfrontCache::getInstance()->deleteCache("content_tree:{$_SESSION['s_lessons_ID']}"); eF_redirect("" . ltrim(basename($_SERVER['PHP_SELF']), "/") . "?ctg=" . $_GET['ctg'] . "&from_unit=" . $_GET['from_unit'] . "&message=" . urlencode($messageString) . "&message_type=success"); } else { $contentFields = array('data' => '', 'name' => $values['name'], 'lessons_ID' => $currentLesson->lesson['id'], 'ctg_type' => $_GET['ctg'], 'active' => 1, 'timestamp' => time(), 'parent_content_ID' => $values['parent_content']); $testFields = array('active' => 1, 'lessons_ID' => isset($currentLesson->lesson['id']) ? $currentLesson->lesson['id'] : 0, 'content_ID' => $test_content_ID, 'description' => applyEditorOffset($values['description']), 'options' => serialize($testOptions), 'name' => $values['name'], 'publish' => $values['publish'], 'keep_best' => $values['keep_best'], 'mastery_score' => $values['mastery_score'] ? $values['mastery_score'] : 0); if (!$skillgap_tests) { $newUnit = $currentContent->insertNode($contentFields); $newTest = EfrontTest::createTest($newUnit, $testFields); } else { $newTest = EfrontTest::createTest(false, $testFields); } // If the new test comes from an existing one we should also copy its questions... if ($_GET['edit_test']) { $testQuestions = $currentTest->getQuestions(); $newTest->addQuestions($testQuestions); // ... and its users if it is a skillgap test if ($skillgap_tests) { $testUsers = eF_getTableDataFlat("users_to_skillgap_tests", "users_LOGIN", "tests_ID = '" . $_GET['edit_test'] . "'"); $fields = array(); foreach ($testUsers as $entry) {