Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  //
  17  // This file is part of BasicLTI4Moodle
  18  //
  19  // BasicLTI4Moodle is an IMS BasicLTI (Basic Learning Tools for Interoperability)
  20  // consumer for Moodle 1.9 and Moodle 2.0. BasicLTI is a IMS Standard that allows web
  21  // based learning tools to be easily integrated in LMS as native ones. The IMS BasicLTI
  22  // specification is part of the IMS standard Common Cartridge 1.1 Sakai and other main LMS
  23  // are already supporting or going to support BasicLTI. This project Implements the consumer
  24  // for Moodle. Moodle is a Free Open source Learning Management System by Martin Dougiamas.
  25  // BasicLTI4Moodle is a project iniciated and leaded by Ludo(Marc Alier) and Jordi Piguillem
  26  // at the GESSI research group at UPC.
  27  // SimpleLTI consumer for Moodle is an implementation of the early specification of LTI
  28  // by Charles Severance (Dr Chuck) htp://dr-chuck.com , developed by Jordi Piguillem in a
  29  // Google Summer of Code 2008 project co-mentored by Charles Severance and Marc Alier.
  30  //
  31  // BasicLTI4Moodle is copyright 2009 by Marc Alier Forment, Jordi Piguillem and Nikolas Galanis
  32  // of the Universitat Politecnica de Catalunya http://www.upc.edu
  33  // Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu.
  34  
  35  /**
  36   * Defines backup_lti_activity_task class
  37   *
  38   * @package     mod_lti
  39   * @category    backup
  40   * @copyright   2009 Marc Alier <marc.alier@upc.edu>, Jordi Piguillem, Nikolas Galanis
  41   * @copyright   2009 Universitat Politecnica de Catalunya http://www.upc.edu
  42   * @author      Marc Alier
  43   * @author      Jordi Piguillem
  44   * @author      Nikolas Galanis
  45   * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  46   */
  47  
  48  defined('MOODLE_INTERNAL') || die;
  49  
  50  require_once($CFG->dirroot . '/mod/lti/backup/moodle2/backup_lti_stepslib.php');
  51  
  52  /**
  53   * Provides the steps to perform one complete backup of the LTI instance
  54   */
  55  class backup_lti_activity_task extends backup_activity_task {
  56  
  57      /**
  58       * No specific settings for this activity
  59       */
  60      protected function define_my_settings() {
  61      }
  62  
  63      /**
  64       * Defines a backup step to store the instance data in the lti.xml file
  65       */
  66      protected function define_my_steps() {
  67          $this->add_step(new backup_lti_activity_structure_step('lti_structure', 'lti.xml'));
  68      }
  69  
  70      /**
  71       * Encodes URLs to the index.php and view.php scripts
  72       *
  73       * @param string $content some HTML text that eventually contains URLs to the activity instance scripts
  74       * @return string the content with the URLs encoded
  75       */
  76      static public function encode_content_links($content) {
  77          global $CFG;
  78  
  79          $base = preg_quote($CFG->wwwroot, "/");
  80  
  81          // Link to the list of basiclti tools.
  82          $search = "/(".$base."\/mod\/lti\/index.php\?id\=)([0-9]+)/";
  83          $content = preg_replace($search, '$@LTIINDEX*$2@$', $content);
  84  
  85          // Link to basiclti view by moduleid.
  86          $search = "/(".$base."\/mod\/lti\/view.php\?id\=)([0-9]+)/";
  87          $content = preg_replace($search, '$@LTIVIEWBYID*$2@$', $content);
  88  
  89          return $content;
  90      }
  91  }