本文整理汇总了PHP中lti_build_sourcedid函数的典型用法代码示例。如果您正苦于以下问题:PHP lti_build_sourcedid函数的具体用法?PHP lti_build_sourcedid怎么用?PHP lti_build_sourcedid使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了lti_build_sourcedid函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: lti_build_request
/**
* This function builds the request that must be sent to the tool producer
*
* @param object $instance Basic LTI instance object
* @param object $typeconfig Basic LTI tool configuration
* @param object $course Course object
*
* @return array $request Request details
*/
function lti_build_request($instance, $typeconfig, $course) {
global $USER, $CFG;
if (empty($instance->cmid)) {
$instance->cmid = 0;
}
$role = lti_get_ims_role($USER, $instance->cmid, $instance->course);
$locale = $course->lang;
if ( strlen($locale) < 1 ) {
$locale = $CFG->lang;
}
$requestparams = array(
'resource_link_id' => $instance->id,
'resource_link_title' => $instance->name,
'resource_link_description' => $instance->intro,
'user_id' => $USER->id,
'roles' => $role,
'context_id' => $course->id,
'context_label' => $course->shortname,
'context_title' => $course->fullname,
'launch_presentation_locale' => $locale,
);
$placementsecret = $instance->servicesalt;
if ( isset($placementsecret) ) {
$sourcedid = json_encode(lti_build_sourcedid($instance->id, $USER->id, null, $placementsecret));
}
if ( isset($placementsecret) &&
( $typeconfig['acceptgrades'] == LTI_SETTING_ALWAYS ||
( $typeconfig['acceptgrades'] == LTI_SETTING_DELEGATE && $instance->instructorchoiceacceptgrades == LTI_SETTING_ALWAYS ) ) ) {
$requestparams['lis_result_sourcedid'] = $sourcedid;
//Add outcome service URL
$serviceurl = new moodle_url('/mod/lti/service.php');
$serviceurl = $serviceurl->out();
if ($typeconfig['forcessl'] == '1') {
$serviceurl = lti_ensure_url_is_https($serviceurl);
}
$requestparams['lis_outcome_service_url'] = $serviceurl;
}
// Send user's name and email data if appropriate
if ( $typeconfig['sendname'] == LTI_SETTING_ALWAYS ||
( $typeconfig['sendname'] == LTI_SETTING_DELEGATE && $instance->instructorchoicesendname == LTI_SETTING_ALWAYS ) ) {
$requestparams['lis_person_name_given'] = $USER->firstname;
$requestparams['lis_person_name_family'] = $USER->lastname;
$requestparams['lis_person_name_full'] = $USER->firstname." ".$USER->lastname;
}
if ( $typeconfig['sendemailaddr'] == LTI_SETTING_ALWAYS ||
( $typeconfig['sendemailaddr'] == LTI_SETTING_DELEGATE && $instance->instructorchoicesendemailaddr == LTI_SETTING_ALWAYS ) ) {
$requestparams['lis_person_contact_email_primary'] = $USER->email;
}
// Concatenate the custom parameters from the administrator and the instructor
// Instructor parameters are only taken into consideration if the administrator
// has giver permission
$customstr = $typeconfig['customparameters'];
$instructorcustomstr = $instance->instructorcustomparameters;
$custom = array();
$instructorcustom = array();
if ($customstr) {
$custom = lti_split_custom_parameters($customstr);
}
if (!isset($typeconfig['allowinstructorcustom']) || $typeconfig['allowinstructorcustom'] == LTI_SETTING_NEVER) {
$requestparams = array_merge($custom, $requestparams);
} else {
if ($instructorcustomstr) {
$instructorcustom = lti_split_custom_parameters($instructorcustomstr);
}
foreach ($instructorcustom as $key => $val) {
// Ignore the instructor's parameter
if (!array_key_exists($key, $custom)) {
$custom[$key] = $val;
}
}
$requestparams = array_merge($custom, $requestparams);
}
// Make sure we let the tool know what LMS they are being called from
$requestparams["ext_lms"] = "moodle-2";
$requestparams['tool_consumer_info_product_family_code'] = 'moodle';
$requestparams['tool_consumer_info_version'] = strval($CFG->version);
//.........这里部分代码省略.........
示例2: lti_build_request
/**
* This function builds the request that must be sent to the tool producer
*
* @param object $instance Basic LTI instance object
* @param array $typeconfig Basic LTI tool configuration
* @param object $course Course object
* @param int|null $typeid Basic LTI tool ID
* @param boolean $islti2 True if an LTI 2 tool is being launched
*
* @return array Request details
*/
function lti_build_request($instance, $typeconfig, $course, $typeid = null, $islti2 = false)
{
global $USER, $CFG;
if (empty($instance->cmid)) {
$instance->cmid = 0;
}
$role = lti_get_ims_role($USER, $instance->cmid, $instance->course, $islti2);
$intro = '';
if (!empty($instance->cmid)) {
$intro = format_module_intro('lti', $instance, $instance->cmid);
$intro = html_to_text($intro, 0, false);
// This may look weird, but this is required for new lines
// so we generate the same OAuth signature as the tool provider.
$intro = str_replace("\n", "\r\n", $intro);
}
$requestparams = array('resource_link_title' => $instance->name, 'resource_link_description' => $intro, 'user_id' => $USER->id, 'lis_person_sourcedid' => $USER->idnumber, 'roles' => $role, 'context_id' => $course->id, 'context_label' => $course->shortname, 'context_title' => $course->fullname);
if (!empty($instance->id)) {
$requestparams['resource_link_id'] = $instance->id;
}
if (!empty($instance->resource_link_id)) {
$requestparams['resource_link_id'] = $instance->resource_link_id;
}
if ($course->format == 'site') {
$requestparams['context_type'] = 'Group';
} else {
$requestparams['context_type'] = 'CourseSection';
$requestparams['lis_course_section_sourcedid'] = $course->idnumber;
}
$placementsecret = $instance->servicesalt;
if (!empty($instance->id) && isset($placementsecret) && ($islti2 || $typeconfig['acceptgrades'] == LTI_SETTING_ALWAYS || $typeconfig['acceptgrades'] == LTI_SETTING_DELEGATE && $instance->instructorchoiceacceptgrades == LTI_SETTING_ALWAYS)) {
$sourcedid = json_encode(lti_build_sourcedid($instance->id, $USER->id, $placementsecret, $typeid));
$requestparams['lis_result_sourcedid'] = $sourcedid;
// Add outcome service URL.
$serviceurl = new \moodle_url('/mod/lti/service.php');
$serviceurl = $serviceurl->out();
$forcessl = false;
if (!empty($CFG->mod_lti_forcessl)) {
$forcessl = true;
}
if (isset($typeconfig['forcessl']) && $typeconfig['forcessl'] == '1' or $forcessl) {
$serviceurl = lti_ensure_url_is_https($serviceurl);
}
$requestparams['lis_outcome_service_url'] = $serviceurl;
}
// Send user's name and email data if appropriate.
if ($islti2 || $typeconfig['sendname'] == LTI_SETTING_ALWAYS || $typeconfig['sendname'] == LTI_SETTING_DELEGATE && $instance->instructorchoicesendname == LTI_SETTING_ALWAYS) {
$requestparams['lis_person_name_given'] = $USER->firstname;
$requestparams['lis_person_name_family'] = $USER->lastname;
$requestparams['lis_person_name_full'] = $USER->firstname . ' ' . $USER->lastname;
$requestparams['ext_user_username'] = $USER->username;
}
if ($islti2 || $typeconfig['sendemailaddr'] == LTI_SETTING_ALWAYS || $typeconfig['sendemailaddr'] == LTI_SETTING_DELEGATE && $instance->instructorchoicesendemailaddr == LTI_SETTING_ALWAYS) {
$requestparams['lis_person_contact_email_primary'] = $USER->email;
}
return $requestparams;
}
示例3: lti_verify_sourcedid
function lti_verify_sourcedid($ltiinstance, $parsed)
{
$sourceid = lti_build_sourcedid($parsed->instanceid, $parsed->userid, $parsed->launchid, $ltiinstance->servicesalt);
if ($sourceid->hash != $parsed->sourcedidhash) {
throw new Exception('SourcedId hash not valid');
}
}
示例4: users_to_json
/**
* Get the JSON representation of the users.
*
* Note that when a limit is set and the exclude array is not empty, then the number of memberships
* returned may be less than the limit.
*
* @param \mod_lti\local\ltiservice\resource_base $resource Resource handling the request
* @param array $users Array of user records
* @param string $id Course ID
* @param object $tool Tool instance object
* @param array $exclude Array of user records to be excluded from the response
* @param int $limitfrom Position of first record to be returned
* @param int $limitnum Maximum number of records to be returned
* @param object $lti LTI instance record
* @param \core_availability\info_module $info Conditional availability information for LTI instance
*
* @return string
*/
private static function users_to_json($resource, $users, $id, $tool, $exclude, $limitfrom, $limitnum, $lti, $info)
{
$nextpage = 'null';
if ($limitnum > 0) {
$limitfrom += $limitnum;
$nextpage = "\"{$resource->get_endpoint()}?limit={$limitnum}&from={$limitfrom}\"";
}
$json = <<<EOD
{
"@context" : "http://purl.imsglobal.org/ctx/lis/v2/MembershipContainer",
"@type" : "Page",
"@id" : "{$resource->get_endpoint()}",
"nextPage" : {$nextpage},
"pageOf" : {
"@type" : "LISMembershipContainer",
"membershipSubject" : {
"@type" : "Context",
"contextId" : "{$id}",
"membership" : [
EOD;
$enabledcapabilities = lti_get_enabled_capabilities($tool);
$sep = ' ';
foreach ($users as $user) {
$include = !in_array($user->id, $exclude);
if ($include && !empty($info)) {
$include = $info->is_user_visible($info->get_course_module(), $user->id);
}
if ($include) {
$member = new \stdClass();
if (in_array('User.id', $enabledcapabilities)) {
$member->userId = $user->id;
}
if (in_array('Person.sourcedId', $enabledcapabilities)) {
$member->sourcedId = format_string($user->idnumber);
}
if (in_array('Person.name.full', $enabledcapabilities)) {
$member->name = format_string("{$user->firstname} {$user->lastname}");
}
if (in_array('Person.name.given', $enabledcapabilities)) {
$member->givenName = format_string($user->firstname);
}
if (in_array('Person.name.family', $enabledcapabilities)) {
$member->familyName = format_string($user->lastname);
}
if (in_array('Person.email.primary', $enabledcapabilities)) {
$member->email = format_string($user->email);
}
if (in_array('Result.sourcedId', $enabledcapabilities) && !empty($lti) && !empty($lti->servicesalt)) {
$member->resultSourcedId = json_encode(lti_build_sourcedid($lti->id, $user->id, $lti->servicesalt, $lti->typeid));
}
$roles = explode(',', lti_get_ims_role($user->id, null, $id, true));
$membership = new \stdClass();
$membership->status = 'Active';
$membership->member = $member;
$membership->role = $roles;
$json .= $sep . json_encode($membership);
$sep = ",\n ";
}
}
$json .= <<<EOD
]
}
}
}
EOD;
return $json;
}