Example #1
0
     $fields_insert['options'] = serialize($copyPropertiesLesson->options);
 }
 //Create the new lesson
 $newLesson = EfrontLesson::createLesson($fields_insert);
 //If a recurring payment is set, set this up to the lesson properties
 if ($values['price'] && $values['recurring'] && in_array($values['recurring'], array_keys($recurringOptions))) {
     $newLesson->options['recurring'] = $values['recurring'];
     if ($newLesson->options['recurring']) {
         $newLesson->options['recurring_duration'] = $form->exportValue($newLesson->options['recurring'] . '_duration');
     }
     $newLesson->persist();
 }
 //Import file, if any specified
 if ($values['clone_lesson']) {
     $cloneLesson = new EfrontLesson($values['clone_lesson']);
     $file = $cloneLesson->export();
     $exportedFile = $file->copy($newLesson->getDirectory() . '/' . $exportedFile['name']);
 }
 if (isset($exportedFile)) {
     $newLesson->import($exportedFile);
 } else {
     //There was no file imported, then it's safe to add a default completion condition
     $fields = array('lessons_ID' => $newLesson->lesson['id'], 'type' => 'all_units', 'relation' => 'and');
     eF_insertTableData('lesson_conditions', $fields);
 }
 if ($newLesson->lesson['course_only']) {
     //For course-only lessons, redirect to lessons list, not to "edit lesson" page
     eF_redirect(basename($_SERVER['PHP_SELF']) . "?ctg=lessons&message=" . urlencode(_SUCCESSFULLYCREATEDLESSON) . "&message_type=success");
 } else {
     eF_redirect(basename($_SERVER['PHP_SELF']) . "?ctg=lessons&edit_lesson=" . $newLesson->lesson['id'] . "&tab=users&message=" . urlencode(_SUCCESSFULLYCREATEDLESSON) . "&message_type=success");
 }
 /**
  * Create lesson instance
  *
  * This function is used to create a lesson instance.
  * <br/>Example:
  * <code>
  * $instance = EfrontLesson :: createInstance(43);
  * </code>
  *
  * @param mixed $instanceSource Either a lesson id or an EfrontLesson object.
  * @return EfrontLesson The new lesson instance
  * @since 3.6.1
  * @access public
  * @static
  */
 public static function createInstance($instanceSource, $originateCourse)
 {
     if (!$instanceSource instanceof EfrontLesson) {
         $instanceSource = new EfrontLesson($instanceSource);
     }
     if (!$originateCourse instanceof EfrontCourse) {
         $originateCourse = new EfrontCourse($originateCourse);
     }
     $result = eF_getTableData("lessons", "*", "id=" . $instanceSource->lesson['id']);
     unset($result[0]['id']);
     //unset($result[0]['directions_ID']);			//Instances don't belong to a category
     if (!$result[0]['share_folder']) {
         $result[0]['share_folder'] = $instanceSource->lesson['id'];
     }
     //$result[0]['name'] .= ' ('._INSTANCE.')';
     $result[0]['originating_course'] = $originateCourse->course['id'];
     $result[0]['instance_source'] = $instanceSource->lesson['id'];
     $file = $instanceSource->export(false, true, false);
     $instance = EfrontLesson::createLesson($result[0]);
     $instance->import($file, true, true, true);
     $instance->course['originating_course'] = $originateCourse->course['id'];
     $instance->course['instance_source'] = $instanceSource->lesson['id'];
     $instance->persist();
     $modules = eF_loadAllModules();
     foreach ($modules as $module) {
         $module->onCreateInstance($instance->lesson['id'], $instanceSource->lesson['id']);
     }
     return $instance;
 }