MDL-75940 editor_tiny: Allow administrators to disable Tiny branding

Part of MDL-75966
This commit is contained in:
Andrew Nicols 2022-10-11 14:47:57 +08:00
parent a809f82862
commit 07b9f384a2
6 changed files with 65 additions and 2 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -216,6 +216,7 @@ const getStandardConfig = (target, tinyMCE, options, plugins) => {
// Disable quickbars entirely.
// The UI is not ideal and we'll wait for it to improve in future before we enable it in Moodle.
// eslint-disable-next-line camelcase
quickbars_insert_toolbar: '',
// The list of plugins to include in the instance.
@ -236,6 +237,10 @@ const getStandardConfig = (target, tinyMCE, options, plugins) => {
// https://www.tiny.cloud/docs/tinymce/6/editor-premium-upgrade-promotion/
promotion: false,
// Allow the administrator to disable branding.
// https://www.tiny.cloud/docs/tinymce/6/statusbar-configuration-options/#branding
branding: options.branding,
setup: (editor) => {
Options.register(editor, options);
},

View File

@ -161,6 +161,7 @@ class editor extends \texteditor {
}
// Generate the configuration for this editor.
$siteconfig = get_config('editor_tiny');
$config = (object) [
// The URL to the CSS file for the editor.
'css' => $PAGE->theme->editor_css_url()->out(false),
@ -173,6 +174,8 @@ class editor extends \texteditor {
'currentLanguage' => current_language(),
'branding' => property_exists($siteconfig, 'branding') ? !empty($siteconfig->branding) : true,
// Language options.
'language' => [
'currentlang' => current_language(),

View File

@ -23,7 +23,10 @@
*/
$string['pluginname'] = 'TinyMCE editor';
$string['settings'] = 'General settings';
$string['privacy:reason'] = 'The TinyMCE Editor does not store any preferences or user data.';
$string['branding'] = 'Tiny Branding';
$string['branding_desc'] = 'Display TinyMCE Branding. We do encourage you to support TinyMCE by leaving this enabled.';
$string['tiny:hash'] = '#';
$string['tiny:accessibility'] = 'Accessibility';
$string['tiny:action'] = 'Action';

View File

@ -0,0 +1,52 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Tiny admin settings.
*
* @package editor_tiny
* @copyright 2022 Huong Nguyen <huongnv13@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
$ADMIN->add('editorsettings', new admin_category('editortiny', $editor->displayname, $editor->is_enabled() === false));
$settings = new admin_settingpage('editorsettingstiny', new lang_string('settings', 'editor_tiny'));
if ($ADMIN->fulltree) {
$setting = new admin_setting_configcheckbox(
'editor_tiny/branding',
new lang_string('branding', 'editor_tiny'),
new lang_string('branding_desc', 'editor_tiny'),
1
);
$settings->add($setting);
}
foreach (core_plugin_manager::instance()->get_plugins_of_type('tiny') as $plugin) {
/** @var \editor_tiny\plugininfo\tiny $plugin */
$plugin->load_settings($ADMIN, 'editortiny', $hassiteconfig);
}
// Note: We add editortiny to the settings page here manually rather than deferring to the plugininfo class.
// This ensures that it shows in the category list too.
$ADMIN->add('editortiny', $settings);
// Required or the editor plugininfo will add this section twice.
unset($settings);
$settings = null;