<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}
		            &nbsp;<span class = "formRequired">*</span>
Example #2
0
     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'])) {
Example #4
0
 $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) {