Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
<?php

namespace IMSGlobal\LTI\ToolProvider\MediaType;
use IMSGlobal\LTI\ToolProvider\ToolProvider;

/**
 * Class to represent an LTI Tool Profile
 *
 * @author  Stephen P Vickers <svickers@imsglobal.org>
 * @copyright  IMS Global Learning Consortium Inc
 * @date  2016
 * @version  3.0.0
 * @license  GNU Lesser General Public License, version 3 (<http://www.gnu.org/licenses/lgpl.html>)
 */
> #[\AllowDynamicProperties]
class ToolProfile { public $product_instance; /** * Class constructor. * * @param ToolProvider $toolProvider Tool Provider object */ function __construct($toolProvider) { $this->lti_version = 'LTI-2p0'; if (!empty($toolProvider->product)) { $this->product_instance = new \stdClass; } if (!empty($toolProvider->product->id)) { $this->product_instance->guid = $toolProvider->product->id; } if (!empty($toolProvider->product->name)) { $this->product_instance->product_info = new \stdClass; $this->product_instance->product_info->product_name = new \stdClass; $this->product_instance->product_info->product_name->default_value = $toolProvider->product->name; $this->product_instance->product_info->product_name->key = 'tool.name'; } if (!empty($toolProvider->product->description)) { $this->product_instance->product_info->description = new \stdClass; $this->product_instance->product_info->description->default_value = $toolProvider->product->description; $this->product_instance->product_info->description->key = 'tool.description'; } if (!empty($toolProvider->product->url)) { $this->product_instance->guid = $toolProvider->product->url; } if (!empty($toolProvider->product->version)) { $this->product_instance->product_info->product_version = $toolProvider->product->version; } if (!empty($toolProvider->vendor)) { $this->product_instance->product_info->product_family = new \stdClass; $this->product_instance->product_info->product_family->vendor = new \stdClass; } if (!empty($toolProvider->vendor->id)) { $this->product_instance->product_info->product_family->vendor->code = $toolProvider->vendor->id; } if (!empty($toolProvider->vendor->name)) { $this->product_instance->product_info->product_family->vendor->vendor_name = new \stdClass; $this->product_instance->product_info->product_family->vendor->vendor_name->default_value = $toolProvider->vendor->name; $this->product_instance->product_info->product_family->vendor->vendor_name->key = 'tool.vendor.name'; } if (!empty($toolProvider->vendor->description)) { $this->product_instance->product_info->product_family->vendor->description = new \stdClass; $this->product_instance->product_info->product_family->vendor->description->default_value = $toolProvider->vendor->description; $this->product_instance->product_info->product_family->vendor->description->key = 'tool.vendor.description'; } if (!empty($toolProvider->vendor->url)) { $this->product_instance->product_info->product_family->vendor->website = $toolProvider->vendor->url; } if (!empty($toolProvider->vendor->timestamp)) { $this->product_instance->product_info->product_family->vendor->timestamp = date('Y-m-d\TH:i:sP', $toolProvider->vendor->timestamp); } $this->resource_handler = array(); foreach ($toolProvider->resourceHandlers as $resourceHandler) { $this->resource_handler[] = new ResourceHandler($toolProvider, $resourceHandler); } if (!empty($toolProvider->baseUrl)) { $this->base_url_choice = array(); $this->base_url_choice[] = new \stdClass; $this->base_url_choice[0]->default_base_url = $toolProvider->baseUrl; } } }