MigrationMoodle: Set option to load course when some one exists - refs BT#15992

pull/3159/head
Angel Fernando Quiroz Campos 6 years ago
parent 657a6d5342
commit e42e823d31
  1. 37
      plugin/migrationmoodle/src/Loader/CoursesLoader.php

@ -12,30 +12,37 @@ use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface;
*/
class CoursesLoader implements LoaderInterface
{
const LOAD_MODE_REUSE = 'reuse';
const LOAD_MODE_DUPLICATE = 'duplicate';
/**
* @var string Load mode: "reuse" or "duplicate". Default is "duplicate".
*/
private $loadMode = self::LOAD_MODE_DUPLICATE;
/**
* @param array $incomingData
*
* @return int
*/
public function load(array $incomingData)
{
$courseInfo = api_get_course_info($incomingData['wanted_code']);
if (!empty($courseInfo)) {
if ($this->loadMode === self::LOAD_MODE_REUSE) {
return $courseInfo['real_id'];
}
if ($this->loadMode === self::LOAD_MODE_DUPLICATE) {
$incomingData['wanted_code'] = $incomingData['wanted_code'].substr(md5(uniqid(rand())), 0, 10);
}
}
$incomingData['subscribe'] = false;
$incomingData['unsubscribe'] = false;
$incomingData['disk_quota'] = 500 * 1024 * 1024;
$result = \Database::select(
'COUNT(1) AS c',
\Database::get_main_table(TABLE_MAIN_COURSE),
[
'where' => [
'code = ?' => $incomingData['wanted_code'],
],
],
'first'
);
if (!empty($result['c'])) {
$incomingData['wanted_code'] = $incomingData['wanted_code'].substr(md5(uniqid(rand())), 0, 10);
}
$accessUrlId = \MigrationMoodlePlugin::create()->getAccessUrlId();
$courseInfo = \CourseManager::create_course($incomingData, 1, $accessUrlId);

Loading…
Cancel
Save