Commit | Line | Data |
---|---|---|
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 | ||
25 | defined('MOODLE_INTERNAL') || die(); | |
26 | ||
27 | function 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 | ||
55 | bold,italic,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,|,cleanup,removeformat,pastetext,pasteword,|,forecolor,backcolor,|,ltr,rtl | |
56 | ||
57 | bullist,numlist,outdent,indent,|,link,unlink,|,image,nonbreaking,charmap,table,|,code"; | |
58 | ||
59 | $neworder = "formatselect,bold,italic,|,bullist,numlist,|,link,unlink,|,image | |
60 | ||
61 | undo,redo,|,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,|,outdent,indent,|,forecolor,backcolor,|,ltr,rtl,|,nonbreaking,charmap,table | |
62 | ||
63 | fontselect,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 | ||
76 | undo,redo,|,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,|,outdent,indent,|,forecolor,backcolor,|,ltr,rtl,|,nonbreaking,charmap,table | |
77 | ||
78 | fontselect,fontsizeselect,code,search,replace,|,cleanup,removeformat,pastetext,pasteword,|,fullscreen"; | |
79 | ||
80 | $neworder = "formatselect,bold,italic,wrap,bullist,numlist,|,link,unlink,|,image | |
81 | ||
82 | undo,redo,|,underline,strikethrough,sub,sup,|,justifyleft,justifycenter,justifyright,wrap,outdent,indent,|,forecolor,backcolor,|,ltr,rtl,|,nonbreaking,charmap,table | |
83 | ||
84 | fontselect,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 | ||
c64f1317 PS |
125 | return true; |
126 | } |