pull/4863/head
parent
29cf105944
commit
e000b17b56
@ -0,0 +1,64 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
/** |
||||||
|
* Updates course extra fields based on the value of other extra field |
||||||
|
* An array is needed to define the existing extra fields and there values (the rules) |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
use Chamilo\CoreBundle\Entity\ExtraField as EntityExtraField; |
||||||
|
|
||||||
|
exit; |
||||||
|
|
||||||
|
require __DIR__.'/../../main/inc/global.inc.php'; |
||||||
|
|
||||||
|
// Define the rules to follow for the update |
||||||
|
$rules = [ |
||||||
|
'1' => [ |
||||||
|
'SourceExtraFieldName' => 'region', |
||||||
|
'SourceExtraFieldValue' => '("NAISAUKI", "ME", "NA")', |
||||||
|
'UpdateExtraFieldName' => 'segment', |
||||||
|
'UpdateExtraFieldValue' => 'GEEMS' |
||||||
|
], |
||||||
|
'2' => [ |
||||||
|
'SourceExtraFieldName' => 'region', |
||||||
|
'SourceExtraFieldValue' => '("IBILAT", "FAB", "TR", "EE", "DE")', |
||||||
|
'UpdateExtraFieldName' => 'segment', |
||||||
|
'UpdateExtraFieldValue' => 'EASA' |
||||||
|
], |
||||||
|
'3' => [ |
||||||
|
'SourceExtraFieldName' => 'region', |
||||||
|
'SourceExtraFieldValue' => '("CN", "EA")', |
||||||
|
'UpdateExtraFieldName' => 'segment', |
||||||
|
'UpdateExtraFieldValue' => 'CEA' |
||||||
|
] |
||||||
|
]; |
||||||
|
|
||||||
|
// Internal variables |
||||||
|
$courseExtraField = EntityExtraField::COURSE_FIELD_TYPE; |
||||||
|
$ExtraFieldTable = Database::get_main_table(TABLE_EXTRA_FIELD); |
||||||
|
$ExtraFieldValueTable = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES); |
||||||
|
|
||||||
|
foreach ($rules as $rule) { |
||||||
|
$sqlCourseIds = "select item_id |
||||||
|
from " . $ExtraFieldValueTable . " |
||||||
|
where field_id in |
||||||
|
(select id from " . $ExtraFieldTable . " |
||||||
|
where variable = '". $rule['SourceExtraFieldName'] . "' |
||||||
|
and extra_field_type = '" . $courseExtraField ."') |
||||||
|
and value in " . $rule['SourceExtraFieldValue'] . ";"; |
||||||
|
$ResultCourseIds = Database::query($sqlCourseIds); |
||||||
|
while ($data = Database::fetch_array($ResultCourseIds)) { |
||||||
|
// See tests/scripts/synchronize_user_base_from_ldap.php for global entities update at once for better performance if necessary |
||||||
|
$courseInfo = api_get_course_info_by_id($data['item_id']); |
||||||
|
$courseCode = $courseInfo['code']; |
||||||
|
$saved = CourseManager::update_course_extra_field_value($courseCode, $rule['UpdateExtraFieldName'], $rule['UpdateExtraFieldValue']); |
||||||
|
if ($saved) { |
||||||
|
echo "Updating extrafield " . $rule['UpdateExtraFieldName'] . " with value " . $rule['UpdateExtraFieldValue'] . " for course with code = " . $courseCode . PHP_EOL; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
?> |
||||||
Loading…
Reference in new issue