Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.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  /**
  18   * Atto text editor manage files plugin lib.
  19   *
  20   * @package    atto_managefiles
  21   * @copyright  2014 Frédéric Massart
  22   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  23   */
  24  
  25  defined('MOODLE_INTERNAL') || die();
  26  
  27  /**
  28   * Initialise the strings required for JS.
  29   *
  30   * @return void
  31   */
  32  function atto_managefiles_strings_for_js() {
  33      global $PAGE;
  34      $PAGE->requires->strings_for_js(array('managefiles'), 'atto_managefiles');
  35  }
  36  
  37  /**
  38   * Sends the parameters to JS module.
  39   *
  40   * @return array
  41   */
  42  function atto_managefiles_params_for_js($elementid, $options, $fpoptions) {
  43      global $CFG, $USER;
  44      require_once($CFG->dirroot . '/repository/lib.php');  // Load constants.
  45  
  46      // Disabled if:
  47      // - Not logged in or guest.
  48      // - Files are not allowed.
  49      // - Only URL are supported.
  50      $disabled = !isloggedin() || isguestuser() ||
  51              (!isset($options['maxfiles']) || $options['maxfiles'] == 0) ||
  52              (isset($options['return_types']) && !($options['return_types'] & ~FILE_EXTERNAL));
  53  
  54      $params = array('disabled' => $disabled, 'area' => array(), 'usercontext' => null);
  55  
  56      if (!$disabled) {
  57          $params['usercontext'] = context_user::instance($USER->id)->id;
  58          foreach (array('itemid', 'context', 'areamaxbytes', 'maxbytes', 'subdirs', 'return_types',
  59                         'removeorphaneddrafts') as $key) {
  60              if (isset($options[$key])) {
  61                  if ($key === 'context' && is_object($options[$key])) {
  62                      // Just context id is enough.
  63                      $params['area'][$key] = $options[$key]->id;
  64                  } else {
  65                      $params['area'][$key] = $options[$key];
  66                  }
  67              }
  68          }
  69      }
  70  
  71      return $params;
  72  }