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 defined('MOODLE_INTERNAL') || die(); 18 19 /** 20 * Plugin for managing files embedded in the text editor 21 * 22 * @package tinymce_managefiles 23 * @copyright 2013 Marina Glancy 24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 */ 26 class tinymce_managefiles extends editor_tinymce_plugin { 27 /** @var array list of buttons defined by this plugin */ 28 protected $buttons = array('managefiles'); 29 30 /** 31 * Adjusts TinyMCE init parameters for tinymce_managefiles 32 * 33 * Adds file area restrictions parameters and actual 'managefiles' button 34 * 35 * @param array $params TinyMCE init parameters array 36 * @param context $context Context where editor is being shown 37 * @param array $options Options for this editor 38 */ 39 protected function update_init_params(array &$params, context $context, 40 array $options = null) { 41 global $USER; 42 43 if (!isloggedin() or isguestuser()) { 44 // Must be a real user to manage any files. 45 return; 46 } 47 if (!isset($options['maxfiles']) or $options['maxfiles'] == 0) { 48 // No files allowed - easy, do not load anything. 49 return; 50 } 51 52 // Add parameters for filemanager 53 $params['managefiles'] = array('usercontext' => context_user::instance($USER->id)->id); 54 foreach (array('itemid', 'context', 'areamaxbytes', 'maxbytes', 'subdirs', 'return_types') as $key) { 55 if (isset($options[$key])) { 56 if ($key === 'context' && is_object($options[$key])) { 57 // Just context id is enough 58 $params['managefiles'][$key] = $options[$key]->id; 59 } else { 60 $params['managefiles'][$key] = $options[$key]; 61 } 62 } 63 } 64 65 if ($row = $this->find_button($params, 'moodlemedia')) { 66 // Add button after 'moodlemedia' button. 67 $this->add_button_after($params, $row, 'managefiles', 'moodlemedia'); 68 } else if ($row = $this->find_button($params, 'image')) { 69 // If 'moodlemedia' is not found add after 'image'. 70 $this->add_button_after($params, $row, 'managefiles', 'image'); 71 } else { 72 // OTherwise add button in the end of the last row. 73 $this->add_button_after($params, $this->count_button_rows($params), 'managefiles'); 74 } 75 76 // Add JS file, which uses default name. 77 $this->add_js_plugin($params); 78 } 79 80 protected function get_sort_order() { 81 return 310; 82 } 83 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body