MDL-42600 EditPDF: Fix padding etc on toolbars
[moodle.git] / lib / editor / tinymce / db / upgrade.php
CommitLineData
c64f1317
PS
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 * TinyMCE editor integration upgrade.
19 *
20 * @package editor_tinymce
21 * @copyright 2012 Petr Skoda {@link http://skodak.org}
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25defined('MOODLE_INTERNAL') || die();
26
27function xmldb_editor_tinymce_upgrade($oldversion) {
28 global $CFG, $DB;
29
30 $dbman = $DB->get_manager();
31
32
33 if ($oldversion < 2012083100) {
34 // Reset redesigned editor toolbar setting.
35 unset_config('customtoolbar', 'editor_tinymce');
36 upgrade_plugin_savepoint(true, 2012083100, 'editor', 'tinymce');
37 }
38
39
6b9dfe73
EL
40 // Moodle v2.4.0 release upgrade line
41 // Put any upgrade step following this
42
43
c9e54743
EL
44 // Moodle v2.5.0 release upgrade line.
45 // Put any upgrade step following this.
46
47
3b62cd64
JF
48 // Moodle v2.6.0 release upgrade line.
49 // Put any upgrade step following this.
50
51 if ($oldversion < 2013061400) {
52 // Reset redesigned editor toolbar setting.
53 $oldorder = "fontselect,fontsizeselect,formatselect,|,undo,redo,|,search,replace,|,fullscreen
54
55bold,italic,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,|,cleanup,removeformat,pastetext,pasteword,|,forecolor,backcolor,|,ltr,rtl
56
57bullist,numlist,outdent,indent,|,link,unlink,|,image,nonbreaking,charmap,table,|,code";
58
59 $neworder = "formatselect,bold,italic,|,bullist,numlist,|,link,unlink,|,image
60
61undo,redo,|,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,|,outdent,indent,|,forecolor,backcolor,|,ltr,rtl,|,nonbreaking,charmap,table
62
63fontselect,fontsizeselect,code,search,replace,|,cleanup,removeformat,pastetext,pasteword,|,fullscreen";
64 $currentorder = get_config('editor_tinymce', 'customtoolbar');
65 if ($currentorder == $oldorder) {
66 unset_config('customtoolbar', 'editor_tinymce');
67 set_config('customtoolbar', $neworder, 'editor_tinymce');
68 }
69 upgrade_plugin_savepoint(true, 2013061400, 'editor', 'tinymce');
70 }
71
05e9c136
DW
72 if ($oldversion < 2013070500) {
73 // Insert wrap plugin to nicely wrap the toolbars on small screens.
74 $oldorder = "formatselect,bold,italic,|,bullist,numlist,|,link,unlink,|,image
75
76undo,redo,|,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,|,outdent,indent,|,forecolor,backcolor,|,ltr,rtl,|,nonbreaking,charmap,table
77
78fontselect,fontsizeselect,code,search,replace,|,cleanup,removeformat,pastetext,pasteword,|,fullscreen";
79
80 $neworder = "formatselect,bold,italic,wrap,bullist,numlist,|,link,unlink,|,image
81
82undo,redo,|,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,wrap,outdent,indent,|,forecolor,backcolor,|,ltr,rtl,|,nonbreaking,charmap,table
83
84fontselect,fontsizeselect,wrap,code,search,replace,|,cleanup,removeformat,pastetext,pasteword,|,fullscreen";
85 $currentorder = get_config('editor_tinymce', 'customtoolbar');
86 if ($currentorder == $oldorder) {
87 unset_config('customtoolbar', 'editor_tinymce');
88 set_config('customtoolbar', $neworder, 'editor_tinymce');
89 } else {
90 // Simple auto conversion algorithm.
650a44fc 91 $toolbars = explode("\n", $oldorder);
05e9c136
DW
92 $newtoolbars = array();
93 foreach ($toolbars as $toolbar) {
94 $sepcount = substr_count($toolbar, '|');
95
96 if ($sepcount > 0) {
97 // We assume the middle separator (rounding down).
650a44fc 98 $divisionindex = round($sepcount / 2, 0, PHP_ROUND_HALF_DOWN);
05e9c136 99
650a44fc 100 $buttons = explode(',', $toolbar);
05e9c136
DW
101 $index = 0;
102 foreach ($buttons as $key => $button) {
103 if ($button === "|") {
104 if ($index == $divisionindex) {
105 $buttons[$key] = 'wrap';
106 break;
650a44fc
DW
107 } else {
108 $index += 1;
05e9c136
DW
109 }
110 }
111 }
650a44fc 112 $toolbar = implode(',', $buttons);
05e9c136
DW
113 }
114 array_push($newtoolbars, $toolbar);
115 }
650a44fc 116 $neworder = implode("\n", $newtoolbars);
05e9c136
DW
117
118 // Set the new config.
119 unset_config('customtoolbar', 'editor_tinymce');
120 set_config('customtoolbar', $neworder, 'editor_tinymce');
121 }
122 upgrade_plugin_savepoint(true, 2013070500, 'editor', 'tinymce');
123 }
124
90792eff
JF
125 if ($oldversion < 2013102900) {
126 // Reset redesigned editor toolbar setting.
127 $currentorder = get_config('editor_tinymce', 'customtoolbar');
128 // Start with a wrap.
129 $neworder = "wrap,". $currentorder;
130 // Replace all separators with wraps to allow for proper display of groups.
131 $neworder = preg_replace('/\|\|*/', "wrap", $neworder);
132 // Insert a wrap between the format selector and the bold button.
133 $neworder = str_replace("formatselect,bold", "formatselect,wrap,bold", $neworder);
134 set_config('customtoolbar', $neworder, 'editor_tinymce');
135 upgrade_plugin_savepoint(true, 2013102900, 'editor', 'tinymce');
136 }
137
c64f1317
PS
138 return true;
139}