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 Moodle emoticons. 21 * 22 * @package tinymce_moodleemoticon 23 * @copyright 2012 The Open University 24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 */ 26 class tinymce_moodleemoticon extends editor_tinymce_plugin { 27 /** @var array list of buttons defined by this plugin */ 28 protected $buttons = array('moodleemoticon'); 29 30 protected function update_init_params(array &$params, context $context, 31 array $options = null) { 32 global $OUTPUT; 33 34 if ($this->get_config('requireemoticon', 1)) { 35 // If emoticon filter is disabled, do not add button. 36 $filters = filter_get_active_in_context($context); 37 if (!array_key_exists('emoticon', $filters)) { 38 return; 39 } 40 } 41 42 if ($row = $this->find_button($params, 'image')) { 43 // Add button after 'image'. 44 $this->add_button_after($params, $row, 'moodleemoticon', 'image'); 45 } else { 46 // If 'image' is not found, add button in the end of the last row. 47 $this->add_button_after($params, $this->count_button_rows($params), 'moodleemoticon'); 48 } 49 50 // Add JS file, which uses default name. 51 $this->add_js_plugin($params); 52 53 // Extra params specifically for emoticon plugin. 54 $manager = get_emoticon_manager(); 55 $emoticons = $manager->get_emoticons(true); 56 $imgs = array(); 57 // See the TinyMCE plugin moodleemoticon for how the emoticon index is (ab)used. 58 $index = 0; 59 foreach ($emoticons as $emoticon) { 60 $imgs[$emoticon->text] = $OUTPUT->render($manager->prepare_renderable_emoticon( 61 $emoticon, array('class' => 'emoticon emoticon-index-'.$index++))); 62 } 63 $params['moodleemoticon_emoticons'] = json_encode($imgs); 64 } 65 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body