<?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; } } }