parent
63b61c09bb
commit
cdba8649b0
@ -0,0 +1,57 @@ |
|||||||
|
<?php |
||||||
|
/* For license terms, see /license.txt */ |
||||||
|
/** |
||||||
|
* This script allows prefill the session extra fields related with |
||||||
|
* the user creator |
||||||
|
*/ |
||||||
|
exit; |
||||||
|
if (PHP_SAPI != 'cli') { |
||||||
|
die('This script can only be launched from the command line'); |
||||||
|
} |
||||||
|
|
||||||
|
require_once __DIR__.'/../../main/inc/global.inc.php'; |
||||||
|
|
||||||
|
$fillExtraField = api_get_configuration_value('session_creation_user_course_extra_field_relation_to_prefill'); |
||||||
|
|
||||||
|
$sessions = SessionManager::get_sessions_list(); |
||||||
|
if (!empty($sessions)) { |
||||||
|
foreach ($sessions as $session) { |
||||||
|
$sessionId = $session['id']; |
||||||
|
$creatorId = getSessionCreatorId($sessionId); |
||||||
|
|
||||||
|
// Relation to prefill session extra field with user extra field |
||||||
|
if (false !== $fillExtraField && !empty($fillExtraField['fields'])) { |
||||||
|
foreach ($fillExtraField['fields'] as $sessionVariable => $userVariable) { |
||||||
|
$extraValue = UserManager::get_extra_user_data_by_field($creatorId, $userVariable); |
||||||
|
if (isset($extraValue[$userVariable])) { |
||||||
|
$saved = SessionManager::update_session_extra_field_value($sessionId, $sessionVariable, $extraValue[$userVariable]); |
||||||
|
if ($saved) { |
||||||
|
echo "Updated $sessionId with creator user_id $creatorId, user_field_variable : $userVariable , user_field_value : {$extraValue[$userVariable]}".PHP_EOL; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get the user who creates the session |
||||||
|
* |
||||||
|
* @param $sessionId |
||||||
|
* @return int |
||||||
|
*/ |
||||||
|
function getSessionCreatorId($sessionId):int |
||||||
|
{ |
||||||
|
$tblTrackDefault = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DEFAULT); |
||||||
|
|
||||||
|
$sql = "SELECT |
||||||
|
default_user_id |
||||||
|
FROM $tblTrackDefault |
||||||
|
WHERE default_value_type = 'session_id' AND |
||||||
|
default_value = '$sessionId' |
||||||
|
default_event_type = '".LOG_SESSION_CREATE."'"; |
||||||
|
$rs = Database::query($sql); |
||||||
|
$creatorId = Database::result($rs, 0, 0); |
||||||
|
|
||||||
|
return $creatorId; |
||||||
|
} |
Loading…
Reference in new issue