function edit() { $registry = Registry::getInstance(); $application = Application::getInstance(); $locale = $registry->get('locale'); $locales = LocaleManager::getLocales(); $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT); $lesson = new Lesson($id); if (!$lesson->id) { $course = new Course(filter_input(INPUT_GET, 'course_id', FILTER_VALIDATE_INT)); } else { $course = new Course($lesson->courseId); } if (!$course->id) { header('Location: /cms/course/list'); exit; } if ('save' == filter_input(INPUT_POST, 'action')) { if (!$lesson->id) { $lesson->courseId = $course->id; } foreach (array_keys($locales) as $localeId) { $lesson->l10n->loadDataFromArray($localeId, ['name' => trim($_POST['name_' . $localeId]), 'meta' => trim($_POST['meta_' . $localeId]), 'description' => trim($_POST['description_' . $localeId]), 'brief' => trim($_POST['brief_' . $localeId]), 'url' => trim($_POST['url_' . $localeId]), 'title' => trim($_POST['title_' . $localeId])]); } $lesson->save(); header('Location: /cms/course/edit?id=' . $lesson->courseId); exit; } else { $i18n = new I18n($registry->get('i18n_path') . 'lesson.xml'); $data['lesson'] = $lesson; $data['exercises'] = Exercise::getList(); $data['stages'] = Stage::getList($lesson->id); $renderer = new Renderer(Page::MODE_NORMAL); $pTitle = $i18n->get($lesson->id ? 'update_mode' : 'append_mode'); $renderer->page->set('title', $pTitle)->set('h1', $pTitle)->set('content', LessonEditView::get($data)); $renderer->loadPage(); $renderer->output(); } }
function renumber() { $application = Application::getInstance(); $lessonId = intval($application->segment[3]); if ($lessonId) { Stage::renumberAll($_POST['order']); echo 'OK'; } else { echo 'No LessonID'; } exit; }
static function createStage($lessonId, $execiseId) { $stage = new Stage(); $stage->lessonId = $lessonId; $stage->exerciseId = $execiseId; $stage->name = 'unitTest-' . microtime(); $stage->l10n = self::createLocale(); $stage->save(); return $stage; }
function test_cleanUp() { $registry = Registry::getInstance(); $setup = $registry->get(self::REG_KEY); Material::delete($setup['id']); Stage::delete($setup['stageId']); Lesson::delete($setup['lessonId']); Course::delete($setup['courseId']); Admin::delete($setup['ownerId']); $db = $registry->get(Material::DB); $db->query("DELETE FROM `" . MaterialL10n::TABLE . "` WHERE `parent_id`={$setup['id']}") or die($db->lastError); # $db->query("DELETE FROM `".MaterialL10n::TABLE."` WHERE `original_file_name`='gcode.gif'") or die($db->lastError); $db->query("DELETE FROM `" . Material::TABLE . "` WHERE `name` LIKE 'unitTest%'") or die($db->lastError); $db->query("DELETE FROM `" . Stage::TABLE . "` WHERE `name` LIKE 'unitTest%'") or die($db->lastError); $db->query("DELETE FROM `" . Exercise::TABLE . "` WHERE `name` LIKE 'unitTest%'") or die($db->lastError); $db->query("DELETE FROM `" . Lesson::TABLE . "` WHERE EXISTS(SELECT * FROM `" . LessonL10n::TABLE . "` `s` WHERE `parent_id`=`" . Lesson::TABLE . "`.`id` AND `s`.`name` LIKE 'unitTest%')") or die($db->lastError); $registry->set(self::REG_KEY, null); }