TinyMCE Advanced - Version 4.3.8

Version Description

  • Updated for WordPress 4.5 and TinyMCE 4.3.8.
  • Separated standard options and admin options.
  • Added settings that can disable the plugin for the main editor, other editors in wp-admin or editors on the front-end.
  • Korean translation by Josh Kim and Greek translation by Stathis Mellios.
Download this release

Release Info

Developer azaozz
Plugin Icon 128x128 TinyMCE Advanced
Version 4.3.8
Comparing to
See all releases

Code changes from version 4.2.8 to 4.3.8

css/tadv-styles.css CHANGED
@@ -9,7 +9,7 @@
9
  }
10
 
11
  .advanced-options {
12
- margin-bottom: 20px;
13
  border: 1px solid #ccc;
14
  padding: 0 15px;
15
  }
9
  }
10
 
11
  .advanced-options {
12
+ margin: 20px 0;
13
  border: 1px solid #ccc;
14
  padding: 0 15px;
15
  }
langs/tinymce-advanced-ar.mo CHANGED
Binary file
langs/tinymce-advanced-ar.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
- "POT-Creation-Date: 2015-09-15 10:42-0800\n"
5
- "PO-Revision-Date: 2015-09-15 10:44-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -18,45 +18,45 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
- #: ../tadv_admin.php:125
22
  msgid "Default settings restored."
23
  msgstr "تمت استعادة الاعدادات الافتراضية."
24
 
25
- #: ../tadv_admin.php:137
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "TinyMCE Advanced تصدير اعدادات"
28
 
29
- #: ../tadv_admin.php:141
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "الاعدادات قد تم تصديرها JSON كسلسلة مشفرة."
32
 
33
- #: ../tadv_admin.php:142
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
37
  msgstr ""
38
  "الرجاء انسخ المحتوى وواحفظه في ملف<b>.txt</b> , استخدم محرر بسيط مثل نوتباد."
39
 
40
- #: ../tadv_admin.php:143
41
  msgid ""
42
  "It is important that the export is not changed in any way, no spaces, line "
43
  "breaks, etc."
44
  msgstr ""
45
  "من المهم ان لايتم تعديل التصدير بأي طريقة , لامسافات , خطوط فارغة , الخ"
46
 
47
- #: ../tadv_admin.php:148
48
  msgid "Select All"
49
  msgstr "تحديد الكل"
50
 
51
- #: ../tadv_admin.php:150 ../tadv_admin.php:176
52
  msgid "Back to Editor Settings"
53
  msgstr "العودة الى اعدادات الحرر"
54
 
55
- #: ../tadv_admin.php:162
56
  msgid "TinyMCE Advanced Settings Import"
57
  msgstr "TinyMCE Advanced إستيراد إعدادات"
58
 
59
- #: ../tadv_admin.php:165
60
  msgid ""
61
  "The settings are imported from a JSON encoded string. Please paste the "
62
  "exported string in the text area below."
@@ -64,47 +64,39 @@ msgstr ""
64
  "الاعدادات مستوردة من JSON سلسلة مشفرة ,الرجاء الصاق السلسلة المصدرة في "
65
  "منطقة النص ادناه."
66
 
67
- #: ../tadv_admin.php:170
68
  msgid "Verify"
69
  msgstr "تحقق"
70
 
71
- #: ../tadv_admin.php:171
72
  msgid "Import"
73
  msgstr "إستيراد"
74
 
75
- #: ../tadv_admin.php:201
76
  msgid "Importing of settings failed."
77
  msgstr "إستيراد الاعدادات فشل."
78
 
79
- #: ../tadv_admin.php:227
80
  msgid "ERROR: All toolbars are empty. Default settings loaded."
81
  msgstr "خطأ: جميع الاشرطة فارغة. الاعدادات الافتراضية ارجعت."
82
 
83
- #: ../tadv_admin.php:239
84
  msgid "Editor Settings"
85
  msgstr "إعدادات المحرر"
86
 
87
- #: ../tadv_admin.php:246
88
  msgid "Settings saved."
89
  msgstr "الاعدادات حفظت."
90
 
91
- #: ../tadv_admin.php:255 ../tadv_admin.php:509
92
  msgid "Save Changes"
93
  msgstr "حفظ التغييرات"
94
 
95
- #: ../tadv_admin.php:260
96
- msgid ""
97
- "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
98
- "most buttons are also available as menu items."
99
- msgstr ""
100
- "جديد قائمة المحرر في TinyMCE 4.0/WordPress 3.9 , عند تفعيلها , اغلب الازرار "
101
- "متاحة في القائمة."
102
-
103
- #: ../tadv_admin.php:264
104
  msgid "Enable the editor menu."
105
  msgstr "تفعيل قائمة المحرر."
106
 
107
- #: ../tadv_admin.php:376
108
  msgid ""
109
  "Drag buttons from the unused buttons below and drop them in the toolbars "
110
  "above, or drag the buttons in the toolbars to rearrange them."
@@ -112,51 +104,64 @@ msgstr ""
112
  "اسحب الازرار من منطقة الازرار الغير مستخدمة في الاسفل وافلتها في الشريط "
113
  "العلوي , او اسحب الازرار من الشريط لاعادة ترتيبهم."
114
 
115
- #: ../tadv_admin.php:379
116
  msgid "Unused Buttons"
117
  msgstr "الازرار الغير مستخدمة"
118
 
119
- #: ../tadv_admin.php:420
120
- msgid "Also enable:"
121
- msgstr "فعل ايضا:"
 
122
 
123
- #: ../tadv_admin.php:423
124
  msgid "List Style Options"
125
  msgstr "قائمة خيارات الشكل"
126
 
127
- #: ../tadv_admin.php:428
 
 
 
 
 
 
128
  msgid "Context Menu"
129
  msgstr "حالة القائمة"
130
 
131
- #: ../tadv_admin.php:433
132
- msgid "Link (replaces the Insert/Edit Link dialog)"
133
- msgstr "رابط (استبدال المدرج/تعديل رابط الحوار)"
134
-
135
- #: ../tadv_admin.php:443
136
- msgid "Advanced Options"
137
- msgstr "خيارات متقدمة"
138
 
139
  #: ../tadv_admin.php:451
140
- msgid "Import editor-style.css."
141
- msgstr "استيراد ملفeditor-style.css."
142
 
143
  #: ../tadv_admin.php:453
144
- msgid "It seems your theme does not support customised styles for the editor."
145
- msgstr "يبدو ان قالبك لايدعم الستايل المخصص للمحرر."
 
 
 
 
 
 
146
 
147
- #: ../tadv_admin.php:454
 
148
  msgid ""
149
- "You can create a CSS file named <code>editor-style.css</code> and upload it "
150
- "to your theme's directory."
151
  msgstr ""
152
- "تستطيع انشاء ملف CSS بأسم <code>editor-style.css</code> ورفعه الى مسار الثيم "
153
- "الخاص بك."
 
 
 
154
 
155
- #: ../tadv_admin.php:455
156
- msgid "After that, enable this setting."
157
- msgstr "بعد ذلك, فعل هذا"
158
 
159
- #: ../tadv_admin.php:464
160
  msgid ""
161
  "Load the CSS classes used in editor-style.css and replace the Formats button "
162
  "and sub-menu."
@@ -164,21 +169,26 @@ msgstr ""
164
  "استخدم كلاسات css المستخدمة في ملف editor-style.css , و استبدل زر الصيغ "
165
  "والقائمة الفرعية."
166
 
167
- #: ../tadv_admin.php:469
 
 
 
 
 
168
  msgid ""
169
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
170
- "in the Text editor"
171
  msgstr "ايقاف حذف وسم &lt;p&gt; و &lt;br /&gt; عند الحفظ وعرضهم في محرر النصوص"
172
 
173
  # تحتاج مراجعة
174
- #: ../tadv_admin.php:471
175
  msgid ""
176
  "This will make it possible to use more advanced coding in the HTML editor "
177
  "without the back-end filtering affecting it much."
178
  msgstr ""
179
  "هذه سوف تتيح لك استخدام HTML اكثر تقدما بدون فلاتر ومؤثرات برمجية كثيرة."
180
 
181
- #: ../tadv_admin.php:472
182
  msgid ""
183
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
184
  "before enabling it permanently."
@@ -186,7 +196,7 @@ msgstr ""
186
  "على اية حال انه تصرف مفاجئ في حالات نادرة , لذا قم بتجربته بشكل كامل قبل "
187
  "تضمينه."
188
 
189
- #: ../tadv_admin.php:473
190
  msgid ""
191
  "Line breaks in the HTML editor would still affect the output, in particular "
192
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
@@ -195,22 +205,11 @@ msgstr ""
195
  "الخطوط الفارغة في محرر HTML سوف تؤثر في الاخراج . لذا لاتستخدم خطوط فارغة "
196
  "داخل وسوم HTML او تعدد وسوم &lt;br /&gt; ."
197
 
198
- #: ../tadv_admin.php:479
199
- msgid "Replace font size settings"
200
- msgstr " استبداال خيارات حجم الخط"
201
-
202
- #: ../tadv_admin.php:480
203
- msgid ""
204
- "Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px "
205
- "20px 24px 28px 32px 36px."
206
- msgstr ""
207
- "استبدل خيار حجم الخطوط مع :8px 10px 12px 14px 16px 20px 24px 28px 32px 36px."
208
-
209
- #: ../tadv_admin.php:485
210
  msgid "Enable pasting of image source"
211
  msgstr "تفعيل اللصق بمصدر الصورة"
212
 
213
- #: ../tadv_admin.php:487
214
  msgid ""
215
  "Works only in Firefox and Safari. These browsers support pasting of images "
216
  "directly in the editor and convert them to base64 encoded text."
@@ -218,7 +217,7 @@ msgstr ""
218
  "تعمل فقط على فايرفوكس و سفاري. هؤلاء المتصفحات يدعمون لصق الصور مباشرة في "
219
  "المحرر و تحويلها الى base64 نص مشفر."
220
 
221
- #: ../tadv_admin.php:488
222
  msgid ""
223
  "This is not acceptable for larger images like photos or graphics, but may be "
224
  "useful in some cases for very small images like icons, not larger than 2-3KB."
@@ -226,27 +225,48 @@ msgstr ""
226
  "هذه غير متوافقة للصور الكبير مثل الصور الفوتوغرافية , ولكنها مفيدة لالصور "
227
  "الصغيرة كالايقونات , ليست اكبر من 2-3 كيلوبايت"
228
 
229
- #: ../tadv_admin.php:489
230
  msgid "These images will not be available in the Media Library."
231
  msgstr "لن تكون هذه الصور متاحة في مكتبة الوسائط."
232
 
233
- #: ../tadv_admin.php:495
234
  msgid "Administration"
235
  msgstr "الادارة"
236
 
237
- #: ../tadv_admin.php:497
 
 
 
 
238
  msgid "Export Settings"
239
  msgstr "تصدير الاعدادات"
240
 
241
- #: ../tadv_admin.php:498
242
  msgid "Import Settings"
243
  msgstr "استيراد الاعدادات"
244
 
245
- #: ../tadv_admin.php:508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
246
  msgid "Restore Default Settings"
247
  msgstr "استعادة الاعدادات الافتراضية"
248
 
249
- #: ../tadv_admin.php:514
250
  msgid ""
251
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
252
  "button rows. It will only work when it is in the first row and there are "
@@ -255,7 +275,7 @@ msgstr ""
255
  "زر شريط التبديل يعرض او يخفي صف الازرار الثاني ,الثالث وصاعدا. سيعمل فقط "
256
  "عندما يكون في اول صف و الازرار في ثاني صف."
257
 
258
- #: ../tinymce-advanced.php:180
259
  #, php-format
260
  msgid ""
261
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
@@ -264,7 +284,7 @@ msgstr ""
264
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
265
  "you are running %2$s. This can make the editor unstable."
266
 
267
- #: ../tinymce-advanced.php:187
268
  #, php-format
269
  msgid ""
270
  "Please upgrade your WordPress installation or download an <a href=\"%s"
@@ -273,6 +293,44 @@ msgstr ""
273
  "Please upgrade your WordPress installation or download an <a href=\"%s"
274
  "\">older version of the plugin</a>."
275
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
276
  #~ msgid "Markdown typing support (text pattern plugin)"
277
  #~ msgstr "دعم تنسيق الكتابة ( اضافة اسلوب النص )"
278
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
5
+ "PO-Revision-Date: 2016-03-17 12:22-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
+ #: ../tadv_admin.php:140
22
  msgid "Default settings restored."
23
  msgstr "تمت استعادة الاعدادات الافتراضية."
24
 
25
+ #: ../tadv_admin.php:152
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "TinyMCE Advanced تصدير اعدادات"
28
 
29
+ #: ../tadv_admin.php:156
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "الاعدادات قد تم تصديرها JSON كسلسلة مشفرة."
32
 
33
+ #: ../tadv_admin.php:157
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
37
  msgstr ""
38
  "الرجاء انسخ المحتوى وواحفظه في ملف<b>.txt</b> , استخدم محرر بسيط مثل نوتباد."
39
 
40
+ #: ../tadv_admin.php:158
41
  msgid ""
42
  "It is important that the export is not changed in any way, no spaces, line "
43
  "breaks, etc."
44
  msgstr ""
45
  "من المهم ان لايتم تعديل التصدير بأي طريقة , لامسافات , خطوط فارغة , الخ"
46
 
47
+ #: ../tadv_admin.php:163
48
  msgid "Select All"
49
  msgstr "تحديد الكل"
50
 
51
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
52
  msgid "Back to Editor Settings"
53
  msgstr "العودة الى اعدادات الحرر"
54
 
55
+ #: ../tadv_admin.php:177
56
  msgid "TinyMCE Advanced Settings Import"
57
  msgstr "TinyMCE Advanced إستيراد إعدادات"
58
 
59
+ #: ../tadv_admin.php:180
60
  msgid ""
61
  "The settings are imported from a JSON encoded string. Please paste the "
62
  "exported string in the text area below."
64
  "الاعدادات مستوردة من JSON سلسلة مشفرة ,الرجاء الصاق السلسلة المصدرة في "
65
  "منطقة النص ادناه."
66
 
67
+ #: ../tadv_admin.php:185
68
  msgid "Verify"
69
  msgstr "تحقق"
70
 
71
+ #: ../tadv_admin.php:186
72
  msgid "Import"
73
  msgstr "إستيراد"
74
 
75
+ #: ../tadv_admin.php:216
76
  msgid "Importing of settings failed."
77
  msgstr "إستيراد الاعدادات فشل."
78
 
79
+ #: ../tadv_admin.php:242
80
  msgid "ERROR: All toolbars are empty. Default settings loaded."
81
  msgstr "خطأ: جميع الاشرطة فارغة. الاعدادات الافتراضية ارجعت."
82
 
83
+ #: ../tadv_admin.php:254
84
  msgid "Editor Settings"
85
  msgstr "إعدادات المحرر"
86
 
87
+ #: ../tadv_admin.php:261
88
  msgid "Settings saved."
89
  msgstr "الاعدادات حفظت."
90
 
91
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
92
  msgid "Save Changes"
93
  msgstr "حفظ التغييرات"
94
 
95
+ #: ../tadv_admin.php:277
 
 
 
 
 
 
 
 
96
  msgid "Enable the editor menu."
97
  msgstr "تفعيل قائمة المحرر."
98
 
99
+ #: ../tadv_admin.php:389
100
  msgid ""
101
  "Drag buttons from the unused buttons below and drop them in the toolbars "
102
  "above, or drag the buttons in the toolbars to rearrange them."
104
  "اسحب الازرار من منطقة الازرار الغير مستخدمة في الاسفل وافلتها في الشريط "
105
  "العلوي , او اسحب الازرار من الشريط لاعادة ترتيبهم."
106
 
107
+ #: ../tadv_admin.php:392
108
  msgid "Unused Buttons"
109
  msgstr "الازرار الغير مستخدمة"
110
 
111
+ #: ../tadv_admin.php:434
112
+ #, fuzzy
113
+ msgid "Options"
114
+ msgstr "خيارات متقدمة"
115
 
116
+ #: ../tadv_admin.php:437
117
  msgid "List Style Options"
118
  msgstr "قائمة خيارات الشكل"
119
 
120
+ #: ../tadv_admin.php:439
121
+ msgid ""
122
+ "Enable more list options: upper or lower case letters for ordered lists, "
123
+ "disk or square for unordered lists, etc."
124
+ msgstr ""
125
+
126
+ #: ../tadv_admin.php:444
127
  msgid "Context Menu"
128
  msgstr "حالة القائمة"
129
 
130
+ #: ../tadv_admin.php:446
131
+ msgid "Replace the browser context (right-click) menu."
132
+ msgstr ""
 
 
 
 
133
 
134
  #: ../tadv_admin.php:451
135
+ msgid "Alternative link dialog"
136
+ msgstr ""
137
 
138
  #: ../tadv_admin.php:453
139
+ msgid ""
140
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
141
+ "the link menu item."
142
+ msgstr ""
143
+
144
+ #: ../tadv_admin.php:458
145
+ msgid "Font sizes"
146
+ msgstr ""
147
 
148
+ #: ../tadv_admin.php:459
149
+ #, fuzzy
150
  msgid ""
151
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
152
+ "20px 24px 28px 32px 36px 48px 60px."
153
  msgstr ""
154
+ "استبدل خيار حجم الخطوط مع :8px 10px 12px 14px 16px 20px 24px 28px 32px 36px."
155
+
156
+ #: ../tadv_admin.php:467
157
+ msgid "Advanced Options"
158
+ msgstr "خيارات متقدمة"
159
 
160
+ #: ../tadv_admin.php:476
161
+ msgid "Create CSS classes menu"
162
+ msgstr ""
163
 
164
+ #: ../tadv_admin.php:478
165
  msgid ""
166
  "Load the CSS classes used in editor-style.css and replace the Formats button "
167
  "and sub-menu."
169
  "استخدم كلاسات css المستخدمة في ملف editor-style.css , و استبدل زر الصيغ "
170
  "والقائمة الفرعية."
171
 
172
+ #: ../tadv_admin.php:488
173
+ msgid "Keep paragraph tags"
174
+ msgstr ""
175
+
176
+ #: ../tadv_admin.php:490
177
+ #, fuzzy
178
  msgid ""
179
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
180
+ "in the Text editor."
181
  msgstr "ايقاف حذف وسم &lt;p&gt; و &lt;br /&gt; عند الحفظ وعرضهم في محرر النصوص"
182
 
183
  # تحتاج مراجعة
184
+ #: ../tadv_admin.php:491
185
  msgid ""
186
  "This will make it possible to use more advanced coding in the HTML editor "
187
  "without the back-end filtering affecting it much."
188
  msgstr ""
189
  "هذه سوف تتيح لك استخدام HTML اكثر تقدما بدون فلاتر ومؤثرات برمجية كثيرة."
190
 
191
+ #: ../tadv_admin.php:492
192
  msgid ""
193
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
194
  "before enabling it permanently."
196
  "على اية حال انه تصرف مفاجئ في حالات نادرة , لذا قم بتجربته بشكل كامل قبل "
197
  "تضمينه."
198
 
199
+ #: ../tadv_admin.php:493
200
  msgid ""
201
  "Line breaks in the HTML editor would still affect the output, in particular "
202
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
205
  "الخطوط الفارغة في محرر HTML سوف تؤثر في الاخراج . لذا لاتستخدم خطوط فارغة "
206
  "داخل وسوم HTML او تعدد وسوم &lt;br /&gt; ."
207
 
208
+ #: ../tadv_admin.php:498
 
 
 
 
 
 
 
 
 
 
 
209
  msgid "Enable pasting of image source"
210
  msgstr "تفعيل اللصق بمصدر الصورة"
211
 
212
+ #: ../tadv_admin.php:500
213
  msgid ""
214
  "Works only in Firefox and Safari. These browsers support pasting of images "
215
  "directly in the editor and convert them to base64 encoded text."
217
  "تعمل فقط على فايرفوكس و سفاري. هؤلاء المتصفحات يدعمون لصق الصور مباشرة في "
218
  "المحرر و تحويلها الى base64 نص مشفر."
219
 
220
+ #: ../tadv_admin.php:501
221
  msgid ""
222
  "This is not acceptable for larger images like photos or graphics, but may be "
223
  "useful in some cases for very small images like icons, not larger than 2-3KB."
225
  "هذه غير متوافقة للصور الكبير مثل الصور الفوتوغرافية , ولكنها مفيدة لالصور "
226
  "الصغيرة كالايقونات , ليست اكبر من 2-3 كيلوبايت"
227
 
228
+ #: ../tadv_admin.php:502
229
  msgid "These images will not be available in the Media Library."
230
  msgstr "لن تكون هذه الصور متاحة في مكتبة الوسائط."
231
 
232
+ #: ../tadv_admin.php:508
233
  msgid "Administration"
234
  msgstr "الادارة"
235
 
236
+ #: ../tadv_admin.php:510
237
+ msgid "Settings import and export"
238
+ msgstr ""
239
+
240
+ #: ../tadv_admin.php:512
241
  msgid "Export Settings"
242
  msgstr "تصدير الاعدادات"
243
 
244
+ #: ../tadv_admin.php:513
245
  msgid "Import Settings"
246
  msgstr "استيراد الاعدادات"
247
 
248
+ #: ../tadv_admin.php:517
249
+ #, fuzzy
250
+ msgid "Enable the editor enhancements for:"
251
+ msgstr "تفعيل قائمة المحرر."
252
+
253
+ #: ../tadv_admin.php:520
254
+ msgid "The main editor (Add New and Edit posts and pages)"
255
+ msgstr ""
256
+
257
+ #: ../tadv_admin.php:524
258
+ msgid "Other editors in wp-admin"
259
+ msgstr ""
260
+
261
+ #: ../tadv_admin.php:528
262
+ msgid "Editors on the front end of the site"
263
+ msgstr ""
264
+
265
+ #: ../tadv_admin.php:539
266
  msgid "Restore Default Settings"
267
  msgstr "استعادة الاعدادات الافتراضية"
268
 
269
+ #: ../tadv_admin.php:545
270
  msgid ""
271
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
272
  "button rows. It will only work when it is in the first row and there are "
275
  "زر شريط التبديل يعرض او يخفي صف الازرار الثاني ,الثالث وصاعدا. سيعمل فقط "
276
  "عندما يكون في اول صف و الازرار في ثاني صف."
277
 
278
+ #: ../tinymce-advanced.php:221
279
  #, php-format
280
  msgid ""
281
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
284
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
285
  "you are running %2$s. This can make the editor unstable."
286
 
287
+ #: ../tinymce-advanced.php:228
288
  #, php-format
289
  msgid ""
290
  "Please upgrade your WordPress installation or download an <a href=\"%s"
293
  "Please upgrade your WordPress installation or download an <a href=\"%s"
294
  "\">older version of the plugin</a>."
295
 
296
+ #: ../tinymce-advanced.php:703
297
+ #, fuzzy
298
+ msgid "Settings"
299
+ msgstr "إعدادات المحرر"
300
+
301
+ #~ msgid ""
302
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
303
+ #~ "most buttons are also available as menu items."
304
+ #~ msgstr ""
305
+ #~ "جديد قائمة المحرر في TinyMCE 4.0/WordPress 3.9 , عند تفعيلها , اغلب "
306
+ #~ "الازرار متاحة في القائمة."
307
+
308
+ #~ msgid "Also enable:"
309
+ #~ msgstr "فعل ايضا:"
310
+
311
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
312
+ #~ msgstr "رابط (استبدال المدرج/تعديل رابط الحوار)"
313
+
314
+ #~ msgid "Import editor-style.css."
315
+ #~ msgstr "استيراد ملفeditor-style.css."
316
+
317
+ #~ msgid ""
318
+ #~ "It seems your theme does not support customised styles for the editor."
319
+ #~ msgstr "يبدو ان قالبك لايدعم الستايل المخصص للمحرر."
320
+
321
+ #~ msgid ""
322
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
323
+ #~ "it to your theme's directory."
324
+ #~ msgstr ""
325
+ #~ "تستطيع انشاء ملف CSS بأسم <code>editor-style.css</code> ورفعه الى مسار "
326
+ #~ "الثيم الخاص بك."
327
+
328
+ #~ msgid "After that, enable this setting."
329
+ #~ msgstr "بعد ذلك, فعل هذا"
330
+
331
+ #~ msgid "Replace font size settings"
332
+ #~ msgstr " استبداال خيارات حجم الخط"
333
+
334
  #~ msgid "Markdown typing support (text pattern plugin)"
335
  #~ msgstr "دعم تنسيق الكتابة ( اضافة اسلوب النص )"
336
 
langs/tinymce-advanced-de_DE.mo CHANGED
Binary file
langs/tinymce-advanced-de_DE.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced 4.1.7\n"
4
- "POT-Creation-Date: 2015-09-15 10:42-0800\n"
5
- "PO-Revision-Date: 2015-09-15 10:44-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: Fluchtsportler.de <kniebremser@fluchtsportler.de>\n"
8
  "Language: de_DE\n"
@@ -18,19 +18,19 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
- #: ../tadv_admin.php:125
22
  msgid "Default settings restored."
23
  msgstr "Standardeinstellungen wiederhergestellt."
24
 
25
- #: ../tadv_admin.php:137
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "TinyMCE Advanced Einstellungen exportieren"
28
 
29
- #: ../tadv_admin.php:141
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "Die Einstellungen werden in einen JSON codierten String exportiert."
32
 
33
- #: ../tadv_admin.php:142
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
@@ -38,7 +38,7 @@ msgstr ""
38
  "Bitte kopiere den Inhalt und speichere ihn in einer <b>Text</b> (.txt) "
39
  "Datei, verwende einen einfachen Text-Editor wie Notepad."
40
 
41
- #: ../tadv_admin.php:143
42
  msgid ""
43
  "It is important that the export is not changed in any way, no spaces, line "
44
  "breaks, etc."
@@ -46,19 +46,19 @@ msgstr ""
46
  "Es ist wichtig, dass der Export nicht in irgendeiner Weise geändert wird, "
47
  "keine Leerzeichen, Zeilenumbrüche, etc."
48
 
49
- #: ../tadv_admin.php:148
50
  msgid "Select All"
51
  msgstr "Alles auswählen"
52
 
53
- #: ../tadv_admin.php:150 ../tadv_admin.php:176
54
  msgid "Back to Editor Settings"
55
  msgstr "Zurück zu Editor Einstellungen"
56
 
57
- #: ../tadv_admin.php:162
58
  msgid "TinyMCE Advanced Settings Import"
59
  msgstr "TinyMCE Advanced Einstellungen importieren"
60
 
61
- #: ../tadv_admin.php:165
62
  msgid ""
63
  "The settings are imported from a JSON encoded string. Please paste the "
64
  "exported string in the text area below."
@@ -66,47 +66,39 @@ msgstr ""
66
  "Die Einstellungen werden von einem JSON codierten String importiert. Bitte "
67
  "füge den exportierten String in den folgenden Textbereich ein."
68
 
69
- #: ../tadv_admin.php:170
70
  msgid "Verify"
71
  msgstr "Verifizieren"
72
 
73
- #: ../tadv_admin.php:171
74
  msgid "Import"
75
  msgstr "Importieren"
76
 
77
- #: ../tadv_admin.php:201
78
  msgid "Importing of settings failed."
79
  msgstr "Importieren von Einstellungen fehlgeschlagen."
80
 
81
- #: ../tadv_admin.php:227
82
  msgid "ERROR: All toolbars are empty. Default settings loaded."
83
  msgstr "FEHLER: Alle Symbolleisten sind leer. Standardeinstellungen geladen."
84
 
85
- #: ../tadv_admin.php:239
86
  msgid "Editor Settings"
87
  msgstr "Editor Einstellungen"
88
 
89
- #: ../tadv_admin.php:246
90
  msgid "Settings saved."
91
  msgstr "Einstellungen gespeichert."
92
 
93
- #: ../tadv_admin.php:255 ../tadv_admin.php:509
94
  msgid "Save Changes"
95
  msgstr "Änderungen speichern"
96
 
97
- #: ../tadv_admin.php:260
98
- msgid ""
99
- "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
100
- "most buttons are also available as menu items."
101
- msgstr ""
102
- "Neu in TinyMCE 4.0/WordPress 3.9 ist das Editor-Menü. Wenn es aktiviert ist, "
103
- "sind die meisten Buttons auch als Menüeinträge verfügbar."
104
-
105
- #: ../tadv_admin.php:264
106
  msgid "Enable the editor menu."
107
  msgstr "Aktiviere das Editor-Menü."
108
 
109
- #: ../tadv_admin.php:376
110
  msgid ""
111
  "Drag buttons from the unused buttons below and drop them in the toolbars "
112
  "above, or drag the buttons in the toolbars to rearrange them."
@@ -115,53 +107,64 @@ msgstr ""
115
  "in die Symbolleiste oberhalb ab, oder ziehe den Button in den Symbolleisten, "
116
  "um sie neu anzuordnen."
117
 
118
- #: ../tadv_admin.php:379
119
  msgid "Unused Buttons"
120
  msgstr "Unbenutzte Buttons"
121
 
122
- #: ../tadv_admin.php:420
123
- msgid "Also enable:"
124
- msgstr "Auch aktivierbar:"
 
125
 
126
- #: ../tadv_admin.php:423
127
  msgid "List Style Options"
128
  msgstr "Listenstil Optionen"
129
 
130
- #: ../tadv_admin.php:428
 
 
 
 
 
 
131
  msgid "Context Menu"
132
  msgstr "Kontextmenu"
133
 
134
- #: ../tadv_admin.php:433
135
- msgid "Link (replaces the Insert/Edit Link dialog)"
136
- msgstr "Link (ersetzt den Einfügen/Bearbeiten Link Dialog)"
137
-
138
- #: ../tadv_admin.php:443
139
- msgid "Advanced Options"
140
- msgstr "Erweiterte Optionen"
141
 
142
  #: ../tadv_admin.php:451
143
- msgid "Import editor-style.css."
144
- msgstr "Importiere editor-style.css."
145
 
146
  #: ../tadv_admin.php:453
147
- msgid "It seems your theme does not support customised styles for the editor."
 
 
 
 
 
 
148
  msgstr ""
149
- "Es scheint, dass dein Theme individuelle Stile für den Editor nicht "
150
- "unterstützt."
151
 
152
- #: ../tadv_admin.php:454
153
  msgid ""
154
- "You can create a CSS file named <code>editor-style.css</code> and upload it "
155
- "to your theme's directory."
156
  msgstr ""
157
- "Du kannst eine CSS-Datei namens <code>editor-style.css</code> erstellen und "
158
- "in dein Theme Verzeichnis hochladen."
 
 
 
 
159
 
160
- #: ../tadv_admin.php:455
161
- msgid "After that, enable this setting."
162
- msgstr "Danach aktiviere diese Einstellung."
163
 
164
- #: ../tadv_admin.php:464
165
  msgid ""
166
  "Load the CSS classes used in editor-style.css and replace the Formats button "
167
  "and sub-menu."
@@ -169,15 +172,20 @@ msgstr ""
169
  "Lade die verwendeten CSS Klassen aus editor-style.css und ersetze die "
170
  "Formate von Buttons und Untermenü."
171
 
172
- #: ../tadv_admin.php:469
 
 
 
 
 
173
  msgid ""
174
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
175
- "in the Text editor"
176
  msgstr ""
177
  "Stoppe das Entfernen der &lt;p&gt; and &lt;br /&gt; Tags beim Speichern und "
178
  "zeige diese in dem Texteditor."
179
 
180
- #: ../tadv_admin.php:471
181
  msgid ""
182
  "This will make it possible to use more advanced coding in the HTML editor "
183
  "without the back-end filtering affecting it much."
@@ -185,7 +193,7 @@ msgstr ""
185
  "Dadurch wird es möglich, erweiterte Codierung im HTML-Editor zu verwenden "
186
  "ohne das die Backend-Filterung viel beeinflusst."
187
 
188
- #: ../tadv_admin.php:472
189
  msgid ""
190
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
191
  "before enabling it permanently."
@@ -193,7 +201,7 @@ msgstr ""
193
  "Aber es kann in seltenen Fällen unerwartet reagieren, also teste es "
194
  "gründlich bevor Du es dauerhaft aktivierst."
195
 
196
- #: ../tadv_admin.php:473
197
  msgid ""
198
  "Line breaks in the HTML editor would still affect the output, in particular "
199
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
@@ -203,23 +211,11 @@ msgstr ""
203
  "beeinflussen, insbesondere verwende keine Leerzeilen, Zeilenumbrüche "
204
  "innerhalb von HTML Tags oder mehrere &lt;br /&gt; Tags."
205
 
206
- #: ../tadv_admin.php:479
207
- msgid "Replace font size settings"
208
- msgstr "Ersetze Schriftgrößen Einstellungen"
209
-
210
- #: ../tadv_admin.php:480
211
- msgid ""
212
- "Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px "
213
- "20px 24px 28px 32px 36px."
214
- msgstr ""
215
- "Ersetzt die Größeneinstellung für verfügbare Schriften mit: 8px 10px 12px "
216
- "14px 16px 20px 24px 28px 32px 36px."
217
-
218
- #: ../tadv_admin.php:485
219
  msgid "Enable pasting of image source"
220
  msgstr "Aktiviere Einfügen von Bildquelle"
221
 
222
- #: ../tadv_admin.php:487
223
  msgid ""
224
  "Works only in Firefox and Safari. These browsers support pasting of images "
225
  "directly in the editor and convert them to base64 encoded text."
@@ -227,7 +223,7 @@ msgstr ""
227
  "Funktioniert nur in Firefox und Safari. Diese Browser unterstützen Einfügen "
228
  "von Bildern direkt im Editor und konvertieren dies zu base64 codierten Text."
229
 
230
- #: ../tadv_admin.php:488
231
  msgid ""
232
  "This is not acceptable for larger images like photos or graphics, but may be "
233
  "useful in some cases for very small images like icons, not larger than 2-3KB."
@@ -236,27 +232,48 @@ msgstr ""
236
  "kann in einigen Fällen für sehr kleine Bilder wie Icons nützlich sein, nicht "
237
  "größer als 2-3KB."
238
 
239
- #: ../tadv_admin.php:489
240
  msgid "These images will not be available in the Media Library."
241
  msgstr "Diese Bilder werden nicht in der Medienbibliothek verfügbar sein."
242
 
243
- #: ../tadv_admin.php:495
244
  msgid "Administration"
245
  msgstr "Administration"
246
 
247
- #: ../tadv_admin.php:497
 
 
 
 
248
  msgid "Export Settings"
249
  msgstr "Einstellungen exportieren"
250
 
251
- #: ../tadv_admin.php:498
252
  msgid "Import Settings"
253
  msgstr "Einstellungen importieren"
254
 
255
- #: ../tadv_admin.php:508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
256
  msgid "Restore Default Settings"
257
  msgstr "Standardeinstellungen wiederherstellen"
258
 
259
- #: ../tadv_admin.php:514
260
  msgid ""
261
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
262
  "button rows. It will only work when it is in the first row and there are "
@@ -266,7 +283,7 @@ msgstr ""
266
  "vierte Button Reihe. Er wird nur funktionieren, wenn er in der ersten Reihe "
267
  "ist und Buttons sich in der zweiten Reihe befinden."
268
 
269
- #: ../tinymce-advanced.php:180
270
  #, php-format
271
  msgid ""
272
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
@@ -275,7 +292,7 @@ msgstr ""
275
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
276
  "you are running %2$s. This can make the editor unstable."
277
 
278
- #: ../tinymce-advanced.php:187
279
  #, php-format
280
  msgid ""
281
  "Please upgrade your WordPress installation or download an <a href=\"%s"
@@ -284,6 +301,46 @@ msgstr ""
284
  "Bitte aktualisiere deine WordPress Installation oder lade eine <a href=\"%s"
285
  "\"> ältere Version des Plugins</a> herunter."
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  #~ msgid "Markdown typing support (text pattern plugin)"
288
  #~ msgstr "Markdown Eingabe Unterstützung (Textmuster Plugin)"
289
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced 4.1.7\n"
4
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
5
+ "PO-Revision-Date: 2016-03-17 12:23-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: Fluchtsportler.de <kniebremser@fluchtsportler.de>\n"
8
  "Language: de_DE\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
+ #: ../tadv_admin.php:140
22
  msgid "Default settings restored."
23
  msgstr "Standardeinstellungen wiederhergestellt."
24
 
25
+ #: ../tadv_admin.php:152
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "TinyMCE Advanced Einstellungen exportieren"
28
 
29
+ #: ../tadv_admin.php:156
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "Die Einstellungen werden in einen JSON codierten String exportiert."
32
 
33
+ #: ../tadv_admin.php:157
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
38
  "Bitte kopiere den Inhalt und speichere ihn in einer <b>Text</b> (.txt) "
39
  "Datei, verwende einen einfachen Text-Editor wie Notepad."
40
 
41
+ #: ../tadv_admin.php:158
42
  msgid ""
43
  "It is important that the export is not changed in any way, no spaces, line "
44
  "breaks, etc."
46
  "Es ist wichtig, dass der Export nicht in irgendeiner Weise geändert wird, "
47
  "keine Leerzeichen, Zeilenumbrüche, etc."
48
 
49
+ #: ../tadv_admin.php:163
50
  msgid "Select All"
51
  msgstr "Alles auswählen"
52
 
53
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
54
  msgid "Back to Editor Settings"
55
  msgstr "Zurück zu Editor Einstellungen"
56
 
57
+ #: ../tadv_admin.php:177
58
  msgid "TinyMCE Advanced Settings Import"
59
  msgstr "TinyMCE Advanced Einstellungen importieren"
60
 
61
+ #: ../tadv_admin.php:180
62
  msgid ""
63
  "The settings are imported from a JSON encoded string. Please paste the "
64
  "exported string in the text area below."
66
  "Die Einstellungen werden von einem JSON codierten String importiert. Bitte "
67
  "füge den exportierten String in den folgenden Textbereich ein."
68
 
69
+ #: ../tadv_admin.php:185
70
  msgid "Verify"
71
  msgstr "Verifizieren"
72
 
73
+ #: ../tadv_admin.php:186
74
  msgid "Import"
75
  msgstr "Importieren"
76
 
77
+ #: ../tadv_admin.php:216
78
  msgid "Importing of settings failed."
79
  msgstr "Importieren von Einstellungen fehlgeschlagen."
80
 
81
+ #: ../tadv_admin.php:242
82
  msgid "ERROR: All toolbars are empty. Default settings loaded."
83
  msgstr "FEHLER: Alle Symbolleisten sind leer. Standardeinstellungen geladen."
84
 
85
+ #: ../tadv_admin.php:254
86
  msgid "Editor Settings"
87
  msgstr "Editor Einstellungen"
88
 
89
+ #: ../tadv_admin.php:261
90
  msgid "Settings saved."
91
  msgstr "Einstellungen gespeichert."
92
 
93
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
94
  msgid "Save Changes"
95
  msgstr "Änderungen speichern"
96
 
97
+ #: ../tadv_admin.php:277
 
 
 
 
 
 
 
 
98
  msgid "Enable the editor menu."
99
  msgstr "Aktiviere das Editor-Menü."
100
 
101
+ #: ../tadv_admin.php:389
102
  msgid ""
103
  "Drag buttons from the unused buttons below and drop them in the toolbars "
104
  "above, or drag the buttons in the toolbars to rearrange them."
107
  "in die Symbolleiste oberhalb ab, oder ziehe den Button in den Symbolleisten, "
108
  "um sie neu anzuordnen."
109
 
110
+ #: ../tadv_admin.php:392
111
  msgid "Unused Buttons"
112
  msgstr "Unbenutzte Buttons"
113
 
114
+ #: ../tadv_admin.php:434
115
+ #, fuzzy
116
+ msgid "Options"
117
+ msgstr "Erweiterte Optionen"
118
 
119
+ #: ../tadv_admin.php:437
120
  msgid "List Style Options"
121
  msgstr "Listenstil Optionen"
122
 
123
+ #: ../tadv_admin.php:439
124
+ msgid ""
125
+ "Enable more list options: upper or lower case letters for ordered lists, "
126
+ "disk or square for unordered lists, etc."
127
+ msgstr ""
128
+
129
+ #: ../tadv_admin.php:444
130
  msgid "Context Menu"
131
  msgstr "Kontextmenu"
132
 
133
+ #: ../tadv_admin.php:446
134
+ msgid "Replace the browser context (right-click) menu."
135
+ msgstr ""
 
 
 
 
136
 
137
  #: ../tadv_admin.php:451
138
+ msgid "Alternative link dialog"
139
+ msgstr ""
140
 
141
  #: ../tadv_admin.php:453
142
+ msgid ""
143
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
144
+ "the link menu item."
145
+ msgstr ""
146
+
147
+ #: ../tadv_admin.php:458
148
+ msgid "Font sizes"
149
  msgstr ""
 
 
150
 
151
+ #: ../tadv_admin.php:459
152
  msgid ""
153
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
154
+ "20px 24px 28px 32px 36px 48px 60px."
155
  msgstr ""
156
+ "Ersetzt die Größeneinstellung für verfügbare Schriften mit: 8px 10px 12px "
157
+ "14px 16px 20px 24px 28px 32px 36px 48px 60px."
158
+
159
+ #: ../tadv_admin.php:467
160
+ msgid "Advanced Options"
161
+ msgstr "Erweiterte Optionen"
162
 
163
+ #: ../tadv_admin.php:476
164
+ msgid "Create CSS classes menu"
165
+ msgstr ""
166
 
167
+ #: ../tadv_admin.php:478
168
  msgid ""
169
  "Load the CSS classes used in editor-style.css and replace the Formats button "
170
  "and sub-menu."
172
  "Lade die verwendeten CSS Klassen aus editor-style.css und ersetze die "
173
  "Formate von Buttons und Untermenü."
174
 
175
+ #: ../tadv_admin.php:488
176
+ msgid "Keep paragraph tags"
177
+ msgstr ""
178
+
179
+ #: ../tadv_admin.php:490
180
+ #, fuzzy
181
  msgid ""
182
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
183
+ "in the Text editor."
184
  msgstr ""
185
  "Stoppe das Entfernen der &lt;p&gt; and &lt;br /&gt; Tags beim Speichern und "
186
  "zeige diese in dem Texteditor."
187
 
188
+ #: ../tadv_admin.php:491
189
  msgid ""
190
  "This will make it possible to use more advanced coding in the HTML editor "
191
  "without the back-end filtering affecting it much."
193
  "Dadurch wird es möglich, erweiterte Codierung im HTML-Editor zu verwenden "
194
  "ohne das die Backend-Filterung viel beeinflusst."
195
 
196
+ #: ../tadv_admin.php:492
197
  msgid ""
198
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
199
  "before enabling it permanently."
201
  "Aber es kann in seltenen Fällen unerwartet reagieren, also teste es "
202
  "gründlich bevor Du es dauerhaft aktivierst."
203
 
204
+ #: ../tadv_admin.php:493
205
  msgid ""
206
  "Line breaks in the HTML editor would still affect the output, in particular "
207
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
211
  "beeinflussen, insbesondere verwende keine Leerzeilen, Zeilenumbrüche "
212
  "innerhalb von HTML Tags oder mehrere &lt;br /&gt; Tags."
213
 
214
+ #: ../tadv_admin.php:498
 
 
 
 
 
 
 
 
 
 
 
 
215
  msgid "Enable pasting of image source"
216
  msgstr "Aktiviere Einfügen von Bildquelle"
217
 
218
+ #: ../tadv_admin.php:500
219
  msgid ""
220
  "Works only in Firefox and Safari. These browsers support pasting of images "
221
  "directly in the editor and convert them to base64 encoded text."
223
  "Funktioniert nur in Firefox und Safari. Diese Browser unterstützen Einfügen "
224
  "von Bildern direkt im Editor und konvertieren dies zu base64 codierten Text."
225
 
226
+ #: ../tadv_admin.php:501
227
  msgid ""
228
  "This is not acceptable for larger images like photos or graphics, but may be "
229
  "useful in some cases for very small images like icons, not larger than 2-3KB."
232
  "kann in einigen Fällen für sehr kleine Bilder wie Icons nützlich sein, nicht "
233
  "größer als 2-3KB."
234
 
235
+ #: ../tadv_admin.php:502
236
  msgid "These images will not be available in the Media Library."
237
  msgstr "Diese Bilder werden nicht in der Medienbibliothek verfügbar sein."
238
 
239
+ #: ../tadv_admin.php:508
240
  msgid "Administration"
241
  msgstr "Administration"
242
 
243
+ #: ../tadv_admin.php:510
244
+ msgid "Settings import and export"
245
+ msgstr ""
246
+
247
+ #: ../tadv_admin.php:512
248
  msgid "Export Settings"
249
  msgstr "Einstellungen exportieren"
250
 
251
+ #: ../tadv_admin.php:513
252
  msgid "Import Settings"
253
  msgstr "Einstellungen importieren"
254
 
255
+ #: ../tadv_admin.php:517
256
+ #, fuzzy
257
+ msgid "Enable the editor enhancements for:"
258
+ msgstr "Aktiviere das Editor-Menü."
259
+
260
+ #: ../tadv_admin.php:520
261
+ msgid "The main editor (Add New and Edit posts and pages)"
262
+ msgstr ""
263
+
264
+ #: ../tadv_admin.php:524
265
+ msgid "Other editors in wp-admin"
266
+ msgstr ""
267
+
268
+ #: ../tadv_admin.php:528
269
+ msgid "Editors on the front end of the site"
270
+ msgstr ""
271
+
272
+ #: ../tadv_admin.php:539
273
  msgid "Restore Default Settings"
274
  msgstr "Standardeinstellungen wiederherstellen"
275
 
276
+ #: ../tadv_admin.php:545
277
  msgid ""
278
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
279
  "button rows. It will only work when it is in the first row and there are "
283
  "vierte Button Reihe. Er wird nur funktionieren, wenn er in der ersten Reihe "
284
  "ist und Buttons sich in der zweiten Reihe befinden."
285
 
286
+ #: ../tinymce-advanced.php:221
287
  #, php-format
288
  msgid ""
289
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
292
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
293
  "you are running %2$s. This can make the editor unstable."
294
 
295
+ #: ../tinymce-advanced.php:228
296
  #, php-format
297
  msgid ""
298
  "Please upgrade your WordPress installation or download an <a href=\"%s"
301
  "Bitte aktualisiere deine WordPress Installation oder lade eine <a href=\"%s"
302
  "\"> ältere Version des Plugins</a> herunter."
303
 
304
+ #: ../tinymce-advanced.php:703
305
+ #, fuzzy
306
+ msgid "Settings"
307
+ msgstr "Editor Einstellungen"
308
+
309
+ #~ msgid ""
310
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
311
+ #~ "most buttons are also available as menu items."
312
+ #~ msgstr ""
313
+ #~ "Neu in TinyMCE 4.0/WordPress 3.9 ist das Editor-Menü. Wenn es aktiviert "
314
+ #~ "ist, sind die meisten Buttons auch als Menüeinträge verfügbar."
315
+
316
+ #~ msgid "Also enable:"
317
+ #~ msgstr "Auch aktivierbar:"
318
+
319
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
320
+ #~ msgstr "Link (ersetzt den Einfügen/Bearbeiten Link Dialog)"
321
+
322
+ #~ msgid "Import editor-style.css."
323
+ #~ msgstr "Importiere editor-style.css."
324
+
325
+ #~ msgid ""
326
+ #~ "It seems your theme does not support customised styles for the editor."
327
+ #~ msgstr ""
328
+ #~ "Es scheint, dass dein Theme individuelle Stile für den Editor nicht "
329
+ #~ "unterstützt."
330
+
331
+ #~ msgid ""
332
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
333
+ #~ "it to your theme's directory."
334
+ #~ msgstr ""
335
+ #~ "Du kannst eine CSS-Datei namens <code>editor-style.css</code> erstellen "
336
+ #~ "und in dein Theme Verzeichnis hochladen."
337
+
338
+ #~ msgid "After that, enable this setting."
339
+ #~ msgstr "Danach aktiviere diese Einstellung."
340
+
341
+ #~ msgid "Replace font size settings"
342
+ #~ msgstr "Ersetze Schriftgrößen Einstellungen"
343
+
344
  #~ msgid "Markdown typing support (text pattern plugin)"
345
  #~ msgstr "Markdown Eingabe Unterstützung (Textmuster Plugin)"
346
 
langs/tinymce-advanced-el.mo ADDED
Binary file
langs/tinymce-advanced-el.po ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: TinyMCE Advanced\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
6
+ "PO-Revision-Date: 2016-03-17 12:23-0800\n"
7
+ "Last-Translator: root <mellios@live.com>\n"
8
+ "Language-Team: \n"
9
+ "Language: el\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Generator: Poedit 1.6.9\n"
16
+ "X-Poedit-Basepath: .\n"
17
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
18
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
19
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
20
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
21
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
22
+ "X-Loco-Target-Locale: el_GR\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-SearchPath-1: ..\n"
25
+
26
+ #: ../tadv_admin.php:140
27
+ msgid "Default settings restored."
28
+ msgstr "Έγινε επαναφορά των προκαθορισμένων ρυθμίσεων."
29
+
30
+ #: ../tadv_admin.php:152
31
+ msgid "TinyMCE Advanced Settings Export"
32
+ msgstr "Εξαγωγή ρυθμίσεων του TinyMCE Advanced"
33
+
34
+ #: ../tadv_admin.php:156
35
+ msgid "The settings are exported as a JSON encoded string."
36
+ msgstr "Οι ρυθμίσεις εξάγονται με κωδικοποίηση JSON."
37
+
38
+ #: ../tadv_admin.php:157
39
+ msgid ""
40
+ "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
41
+ "plain text editor like Notepad."
42
+ msgstr ""
43
+ "Παρακαλώ αντιγράψτε το περιεχόμενο και αποθηκεύστε το σε ένα αρχείο "
44
+ "<b>κειμένου</b> (.txt), χρησιμοποιώντας έναν επεξεργαστή κειμένου όπως το "
45
+ "Notepad."
46
+
47
+ #: ../tadv_admin.php:158
48
+ msgid ""
49
+ "It is important that the export is not changed in any way, no spaces, line "
50
+ "breaks, etc."
51
+ msgstr ""
52
+ "Είναι σημαντικό να μην αλλαχτεί η εξαγωγή με οποιδήποτε τρόπο, ούτε με κενά, "
53
+ "ούτε με αλλαγές γραμμών, κ.α.."
54
+
55
+ #: ../tadv_admin.php:163
56
+ msgid "Select All"
57
+ msgstr "Επιλογή Όλων"
58
+
59
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
60
+ msgid "Back to Editor Settings"
61
+ msgstr "Πίσω στις Ρυθμίσεις του Επεξεργαστή"
62
+
63
+ #: ../tadv_admin.php:177
64
+ msgid "TinyMCE Advanced Settings Import"
65
+ msgstr "Εισαγωγή ρυθμίσεων του TinyMCE Advanced"
66
+
67
+ #: ../tadv_admin.php:180
68
+ msgid ""
69
+ "The settings are imported from a JSON encoded string. Please paste the "
70
+ "exported string in the text area below."
71
+ msgstr ""
72
+ "Οι ρυθμίσεις εισάγονται με κωδικοποίηση JSON. Παρακαλώ επικολλήστε το "
73
+ "εξαγώμενο κείμενο στο παρακάτω πλαίσιο κειμένου."
74
+
75
+ #: ../tadv_admin.php:185
76
+ msgid "Verify"
77
+ msgstr "Επαλήθευση"
78
+
79
+ #: ../tadv_admin.php:186
80
+ msgid "Import"
81
+ msgstr "Εισαγωγή"
82
+
83
+ #: ../tadv_admin.php:216
84
+ msgid "Importing of settings failed."
85
+ msgstr "Η εισαγωγή των ρυθμίσεων απέτυχε."
86
+
87
+ #: ../tadv_admin.php:242
88
+ msgid "ERROR: All toolbars are empty. Default settings loaded."
89
+ msgstr ""
90
+ "Λάθος: Όλες οι γραμμές εργαλείων είναι κενές. Φορτώθηκαν οι προκαθορισμένες "
91
+ "ρυθμίσεις."
92
+
93
+ #: ../tadv_admin.php:254
94
+ msgid "Editor Settings"
95
+ msgstr "Ρυθμίσεις Επεξεργαστή"
96
+
97
+ #: ../tadv_admin.php:261
98
+ msgid "Settings saved."
99
+ msgstr "Οι ρυθμίσεις αποθηκεύτηκαν."
100
+
101
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
102
+ msgid "Save Changes"
103
+ msgstr "Αποθήκευση αλλαγών"
104
+
105
+ #: ../tadv_admin.php:277
106
+ msgid "Enable the editor menu."
107
+ msgstr "Ενεργοποίηση του μενού του επεξεργαστή."
108
+
109
+ #: ../tadv_admin.php:389
110
+ msgid ""
111
+ "Drag buttons from the unused buttons below and drop them in the toolbars "
112
+ "above, or drag the buttons in the toolbars to rearrange them."
113
+ msgstr ""
114
+ "Σύρετε τα κουμπιά από τα παρακάτω μη χρησιμοποιημένα κουμπιά και αφήστε τα "
115
+ "στις παραπάνω γραμμές εργαλειών, ή σύρετε τα κουμπιά μέσα στις γραμμές "
116
+ "εργαλειών για να τα αναδιατάξετε."
117
+
118
+ #: ../tadv_admin.php:392
119
+ msgid "Unused Buttons"
120
+ msgstr "Μη χρησιμοποιημένα Κουμπιά"
121
+
122
+ #: ../tadv_admin.php:434
123
+ #, fuzzy
124
+ msgid "Options"
125
+ msgstr "Προχωρημένες Ρυθμίσεις"
126
+
127
+ #: ../tadv_admin.php:437
128
+ msgid "List Style Options"
129
+ msgstr "Ρυθμίσεις Στυλ Λίστας"
130
+
131
+ #: ../tadv_admin.php:439
132
+ msgid ""
133
+ "Enable more list options: upper or lower case letters for ordered lists, "
134
+ "disk or square for unordered lists, etc."
135
+ msgstr ""
136
+
137
+ #: ../tadv_admin.php:444
138
+ msgid "Context Menu"
139
+ msgstr "Μενού περιεχομένου"
140
+
141
+ #: ../tadv_admin.php:446
142
+ msgid "Replace the browser context (right-click) menu."
143
+ msgstr ""
144
+
145
+ #: ../tadv_admin.php:451
146
+ msgid "Alternative link dialog"
147
+ msgstr ""
148
+
149
+ #: ../tadv_admin.php:453
150
+ msgid ""
151
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
152
+ "the link menu item."
153
+ msgstr ""
154
+
155
+ #: ../tadv_admin.php:458
156
+ msgid "Font sizes"
157
+ msgstr ""
158
+
159
+ #: ../tadv_admin.php:459
160
+ msgid ""
161
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
162
+ "20px 24px 28px 32px 36px 48px 60px."
163
+ msgstr ""
164
+ "Αντικαθιστά τις διαθέσιμες ρυθμίσεις μεγέθους για γραμματοσειρές με: 8px "
165
+ "10px 12px 14px 16px 20px 24px 28px 32px 36px 48px 60px."
166
+
167
+ #: ../tadv_admin.php:467
168
+ msgid "Advanced Options"
169
+ msgstr "Προχωρημένες Ρυθμίσεις"
170
+
171
+ #: ../tadv_admin.php:476
172
+ msgid "Create CSS classes menu"
173
+ msgstr ""
174
+
175
+ #: ../tadv_admin.php:478
176
+ msgid ""
177
+ "Load the CSS classes used in editor-style.css and replace the Formats button "
178
+ "and sub-menu."
179
+ msgstr ""
180
+ "Φορτώστε τις κλάσεις CSS που χρησιμοποιούνται στο editor-style.css και "
181
+ "αντικαταστήστε το κουμπί Μορφές και το υπο-μενού."
182
+
183
+ #: ../tadv_admin.php:488
184
+ msgid "Keep paragraph tags"
185
+ msgstr ""
186
+
187
+ #: ../tadv_admin.php:490
188
+ #, fuzzy
189
+ msgid ""
190
+ "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
191
+ "in the Text editor."
192
+ msgstr ""
193
+ "Να μην αφαιρούνται οι ετικέτες &lt;p&gt; και &lt;br /&gt; όταν γίνεται "
194
+ "αποθήκευση και να εμφανίζονται στον επεξεργαστή κειμένου"
195
+
196
+ #: ../tadv_admin.php:491
197
+ msgid ""
198
+ "This will make it possible to use more advanced coding in the HTML editor "
199
+ "without the back-end filtering affecting it much."
200
+ msgstr ""
201
+ "Αυτό θα σας επιτρέψει να χρησιμοποιήσετε πιο προχωρημένο κώδικα στον "
202
+ "επεξεργαστή HTML χωρίς να τον επηρεάζει πολύ το ενσωματωμένο φιλτράρισμα."
203
+
204
+ #: ../tadv_admin.php:492
205
+ msgid ""
206
+ "However it may behave unexpectedly in rare cases, so test it thoroughly "
207
+ "before enabling it permanently."
208
+ msgstr ""
209
+ "Παρόλο που μπορεί να συμπεριφερθεί μη αναμενόμενα σε σπάνιες περιπτώσεις, "
210
+ "δοκιμάστε το πλήρως πριν το ενεργοποιήσετε μόνιμα."
211
+
212
+ #: ../tadv_admin.php:493
213
+ msgid ""
214
+ "Line breaks in the HTML editor would still affect the output, in particular "
215
+ "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
216
+ "&gt; tags."
217
+ msgstr ""
218
+ "Οι αλλαγές γραμμών στον επεξεργαστή HTML θα συνεχίσουν να επηρεάζουν το "
219
+ "αποτέλεσμα, συγκεκριμένα μη χρησιμοποιείτε κενές γραμμές, αλλαγές γραμμών "
220
+ "ανάμεσα σε ετικέτες HTML ή σε πολλαπλές ετικέτες &lt;br /&gt;."
221
+
222
+ #: ../tadv_admin.php:498
223
+ msgid "Enable pasting of image source"
224
+ msgstr "Ενεργοποίηση επικόλλησης της πηγής εικόνας"
225
+
226
+ #: ../tadv_admin.php:500
227
+ msgid ""
228
+ "Works only in Firefox and Safari. These browsers support pasting of images "
229
+ "directly in the editor and convert them to base64 encoded text."
230
+ msgstr ""
231
+ "Δουλεύει μόνο σε Firefox και Safari. Αυτοί οι browsers υποστηρίζουν την "
232
+ "απευθείας επικόλληση εικόνων στον επεξεργαστή και την μετατροπή τους σε "
233
+ "κείμενο με κωδικοποίηση base64."
234
+
235
+ #: ../tadv_admin.php:501
236
+ msgid ""
237
+ "This is not acceptable for larger images like photos or graphics, but may be "
238
+ "useful in some cases for very small images like icons, not larger than 2-3KB."
239
+ msgstr ""
240
+ "Αυτό δεν είναι επιτρεπτό για μεγαλύτερες εικόνες όπως φωτοτγραφίες ή "
241
+ "γραφικά, αλλά ίσως να είναι χρήσιμο σε περιπτώσεις όπως πολύ μικρές εικόνες "
242
+ "όπως τα εικονίδια, όχι μεγαλύτερα από 2-3ΚΒ."
243
+
244
+ #: ../tadv_admin.php:502
245
+ msgid "These images will not be available in the Media Library."
246
+ msgstr "Αυτές οι εικόνες δε θα είναι διαθέσιμες στη Βιβλιοθήκη Πολυμέσων."
247
+
248
+ #: ../tadv_admin.php:508
249
+ msgid "Administration"
250
+ msgstr "Διαχείριση"
251
+
252
+ #: ../tadv_admin.php:510
253
+ msgid "Settings import and export"
254
+ msgstr ""
255
+
256
+ #: ../tadv_admin.php:512
257
+ msgid "Export Settings"
258
+ msgstr "Εξαγωγή Ρυθμίσεων"
259
+
260
+ #: ../tadv_admin.php:513
261
+ msgid "Import Settings"
262
+ msgstr "Εισαγωγή Ρυθμίσεων"
263
+
264
+ #: ../tadv_admin.php:517
265
+ #, fuzzy
266
+ msgid "Enable the editor enhancements for:"
267
+ msgstr "Ενεργοποίηση του μενού του επεξεργαστή."
268
+
269
+ #: ../tadv_admin.php:520
270
+ msgid "The main editor (Add New and Edit posts and pages)"
271
+ msgstr ""
272
+
273
+ #: ../tadv_admin.php:524
274
+ msgid "Other editors in wp-admin"
275
+ msgstr ""
276
+
277
+ #: ../tadv_admin.php:528
278
+ msgid "Editors on the front end of the site"
279
+ msgstr ""
280
+
281
+ #: ../tadv_admin.php:539
282
+ msgid "Restore Default Settings"
283
+ msgstr "Επαναφορά Προκαθορισμένων Ρυθμίσεων"
284
+
285
+ #: ../tadv_admin.php:545
286
+ msgid ""
287
+ "The [Toolbar toggle] button shows or hides the second, third, and forth "
288
+ "button rows. It will only work when it is in the first row and there are "
289
+ "buttons in the second row."
290
+ msgstr ""
291
+ "Το κουμπί [Toolbar toggle] εμφανίζει ή εξαφανίζει τη δεύτερη, τρίτη, και "
292
+ "τέταρτη σειρά κουμπιών. Λειτουργεί μόνο όταν βρίσκεται στη πρώτη γραμμή και "
293
+ "υπάρχουν κουμπιά στη δεύτερη γραμμή."
294
+
295
+ #: ../tinymce-advanced.php:221
296
+ #, php-format
297
+ msgid ""
298
+ "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
299
+ "you are running %2$s. This can make the editor unstable."
300
+ msgstr ""
301
+ "Το TinyMCE Advanced απαιτεί έκδοση %1$s ή νεότερη του WordPress. Φαίνεται "
302
+ "πως έχετε την έκδοση %2$s. Αυτό μπορεί να κάνει τον επεξεργαστή ασταθή."
303
+
304
+ #: ../tinymce-advanced.php:228
305
+ #, php-format
306
+ msgid ""
307
+ "Please upgrade your WordPress installation or download an <a href=\"%s"
308
+ "\">older version of the plugin</a>."
309
+ msgstr ""
310
+ "Παρακαλώ αναβαθμίστε την εγκατάσταση του WordPress ή κατεβάστε μια <a href="
311
+ "\"%s\">παλαιότερη έκδοση του πρόσθετου</a>."
312
+
313
+ #: ../tinymce-advanced.php:703
314
+ #, fuzzy
315
+ msgid "Settings"
316
+ msgstr "Ρυθμίσεις Επεξεργαστή"
317
+
318
+ #~ msgid ""
319
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
320
+ #~ "most buttons are also available as menu items."
321
+ #~ msgstr ""
322
+ #~ "Το καινούριο στο TinyMCE 4.0/WordPress 3.9 είναι το μενού του "
323
+ #~ "επεξεργαστή. Όταν είναι ενεργοποιημένο, τα περισσότερα κουμπιά είναι "
324
+ #~ "επίσης διαθέσιμα ως στοιχεία του μενού."
325
+
326
+ #~ msgid "Also enable:"
327
+ #~ msgstr "Ενεργοποιήστε επίσης:"
328
+
329
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
330
+ #~ msgstr "Σύνδεσμος (αντικαθιστά τον διάλογο Εισαγωγή/Επεξεργασία Συνδέσμου)"
331
+
332
+ #~ msgid "Import editor-style.css."
333
+ #~ msgstr "Εισαγωγή του editor-style.css."
334
+
335
+ #~ msgid ""
336
+ #~ "It seems your theme does not support customised styles for the editor."
337
+ #~ msgstr ""
338
+ #~ "Φαίνεται πως το θέμα σας δεν υποστηρίζει προσαρμοσμένα στυλ του "
339
+ #~ "επεξεργαστή."
340
+
341
+ #~ msgid ""
342
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
343
+ #~ "it to your theme's directory."
344
+ #~ msgstr ""
345
+ #~ "Μπορείτε να δημιουργήσετε ένα αρχείο CSS με το όνομα <code>editor-style."
346
+ #~ "css</code> και να το μεταφορτώσετε στο φάκελο του θέματός σας."
347
+
348
+ #~ msgid "After that, enable this setting."
349
+ #~ msgstr "Μετά από αυτό, ενεργοποιήστε αυτή τη ρύθμιση."
350
+
351
+ #~ msgid "Replace font size settings"
352
+ #~ msgstr "Αντικατάσταση ρυθμίσεων μεγέθους γραμματοσειράς"
langs/tinymce-advanced-fr_FR.mo CHANGED
Binary file
langs/tinymce-advanced-fr_FR.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
- "POT-Creation-Date: 2015-09-15 10:42-0800\n"
5
- "PO-Revision-Date: 2015-09-15 10:44-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: fr_FR\n"
@@ -18,19 +18,19 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
- #: ../tadv_admin.php:125
22
  msgid "Default settings restored."
23
  msgstr "Les paramètres par défaut restaurés."
24
 
25
- #: ../tadv_admin.php:137
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "Réglages d'exportation de TinyMCE Advanced "
28
 
29
- #: ../tadv_admin.php:141
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "Les paramètres sont exportés sous forme de chaîne JSON codée."
32
 
33
- #: ../tadv_admin.php:142
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
@@ -38,7 +38,7 @@ msgstr ""
38
  "S'il vous plaît copier le contenu et l'enregistrer dans un fichier <b>texte</"
39
  "b> (.txt), en utilisant un éditeur de texte comme Notepad."
40
 
41
- #: ../tadv_admin.php:143
42
  msgid ""
43
  "It is important that the export is not changed in any way, no spaces, line "
44
  "breaks, etc."
@@ -46,19 +46,19 @@ msgstr ""
46
  "Il est important que l'exportation n'a pas changé en aucune manière, pas "
47
  "d'espaces, sauts de ligne, etc."
48
 
49
- #: ../tadv_admin.php:148
50
  msgid "Select All"
51
  msgstr "Sélectionner tout"
52
 
53
- #: ../tadv_admin.php:150 ../tadv_admin.php:176
54
  msgid "Back to Editor Settings"
55
  msgstr "Retour aux paramètres de l'éditeur"
56
 
57
- #: ../tadv_admin.php:162
58
  msgid "TinyMCE Advanced Settings Import"
59
  msgstr "Réglages d'importation de TinyMCE Advanced "
60
 
61
- #: ../tadv_admin.php:165
62
  msgid ""
63
  "The settings are imported from a JSON encoded string. Please paste the "
64
  "exported string in the text area below."
@@ -66,49 +66,40 @@ msgstr ""
66
  "Les paramètres sont importés à partir d'une chaîne JSON codée. S'il vous "
67
  "plaît collez la chaîne exporté dans la zone de texte ci-dessous."
68
 
69
- #: ../tadv_admin.php:170
70
  msgid "Verify"
71
  msgstr "Vérifier"
72
 
73
- #: ../tadv_admin.php:171
74
  msgid "Import"
75
  msgstr "Importer"
76
 
77
- #: ../tadv_admin.php:201
78
  msgid "Importing of settings failed."
79
  msgstr "Importation des paramètres échoué."
80
 
81
- #: ../tadv_admin.php:227
82
  msgid "ERROR: All toolbars are empty. Default settings loaded."
83
  msgstr ""
84
  "Erreur: Tous les barres d'outils sont vides. Les réglages par défaut chargés."
85
 
86
- #: ../tadv_admin.php:239
87
  msgid "Editor Settings"
88
  msgstr "Paramètres de l'éditeur"
89
 
90
- #: ../tadv_admin.php:246
91
  msgid "Settings saved."
92
  msgstr "Paramètres sauvegardés."
93
 
94
- #: ../tadv_admin.php:255 ../tadv_admin.php:509
95
  msgid "Save Changes"
96
  msgstr "Sauvegarder les changements"
97
 
98
- #: ../tadv_admin.php:260
99
- msgid ""
100
- "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
101
- "most buttons are also available as menu items."
102
- msgstr ""
103
- "Nouveau dans TinyMCE 4.0 / WordPress 3.9 est le menu de l'éditeur. Quand il "
104
- "est activé, la plupart des boutons sont également disponibles comme des "
105
- "éléments de menu."
106
-
107
- #: ../tadv_admin.php:264
108
  msgid "Enable the editor menu."
109
  msgstr "Activez le menu de l'éditeur."
110
 
111
- #: ../tadv_admin.php:376
112
  msgid ""
113
  "Drag buttons from the unused buttons below and drop them in the toolbars "
114
  "above, or drag the buttons in the toolbars to rearrange them."
@@ -117,53 +108,64 @@ msgstr ""
117
  "barres d'outils ci-dessus, ou faites glisser les boutons dans les barres "
118
  "d'outils pour les réorganiser."
119
 
120
- #: ../tadv_admin.php:379
121
  msgid "Unused Buttons"
122
  msgstr "Boutons inutilisés"
123
 
124
- #: ../tadv_admin.php:420
125
- msgid "Also enable:"
126
- msgstr "Permettre également:"
 
127
 
128
- #: ../tadv_admin.php:423
129
  msgid "List Style Options"
130
  msgstr "Options de style de liste"
131
 
132
- #: ../tadv_admin.php:428
 
 
 
 
 
 
133
  msgid "Context Menu"
134
  msgstr "Menu contextuel"
135
 
136
- #: ../tadv_admin.php:433
137
- msgid "Link (replaces the Insert/Edit Link dialog)"
138
- msgstr "Lien (remplace la boîte de dialogue Insérer / Modifier Lien)"
139
-
140
- #: ../tadv_admin.php:443
141
- msgid "Advanced Options"
142
- msgstr "Options avancées"
143
 
144
  #: ../tadv_admin.php:451
145
- msgid "Import editor-style.css."
146
- msgstr "Importer editor-style.css."
147
 
148
  #: ../tadv_admin.php:453
149
- msgid "It seems your theme does not support customised styles for the editor."
 
 
 
 
 
 
150
  msgstr ""
151
- "Il semble que votre thème ne supporte pas les styles personnalisés pour "
152
- "l'éditeur."
153
 
154
- #: ../tadv_admin.php:454
155
  msgid ""
156
- "You can create a CSS file named <code>editor-style.css</code> and upload it "
157
- "to your theme's directory."
158
  msgstr ""
159
- "Vous pouvez créer un fichier CSS nommé <code>editor-style.css</code> et de "
160
- "le transférer vers le répertoire de votre thème."
 
 
 
 
161
 
162
- #: ../tadv_admin.php:455
163
- msgid "After that, enable this setting."
164
- msgstr "Après cela, activez ce paramètre."
165
 
166
- #: ../tadv_admin.php:464
167
  msgid ""
168
  "Load the CSS classes used in editor-style.css and replace the Formats button "
169
  "and sub-menu."
@@ -171,15 +173,20 @@ msgstr ""
171
  "Chargez les classes CSS utilisées dans editor-style.css et remplacer le "
172
  "bouton Formats et sous-menus."
173
 
174
- #: ../tadv_admin.php:469
 
 
 
 
 
175
  msgid ""
176
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
177
- "in the Text editor"
178
  msgstr ""
179
  "Arrêtez de retirer les balises &lt;p&gt; et &lt;br /&gt; lors de "
180
  "l'enregistrement et les affiche dans l'éditeur de texte"
181
 
182
- #: ../tadv_admin.php:471
183
  msgid ""
184
  "This will make it possible to use more advanced coding in the HTML editor "
185
  "without the back-end filtering affecting it much."
@@ -187,7 +194,7 @@ msgstr ""
187
  "Ainsi, il sera possible d'utiliser le codage plus avancé dans l'éditeur HTML "
188
  "sans le filtrage back-end qui affecte beaucoup."
189
 
190
- #: ../tadv_admin.php:472
191
  msgid ""
192
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
193
  "before enabling it permanently."
@@ -195,7 +202,7 @@ msgstr ""
195
  "Cependant, il peut se comporter de façon inattendue dans de rares cas, si le "
196
  "tester à fond avant de l'activer de façon permanente."
197
 
198
- #: ../tadv_admin.php:473
199
  msgid ""
200
  "Line breaks in the HTML editor would still affect the output, in particular "
201
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
@@ -205,23 +212,11 @@ msgstr ""
205
  "particulier, ne pas utiliser des lignes vides, les sauts de ligne à "
206
  "l'intérieur de balises HTML ou multiple balises &lt;br /&gt;."
207
 
208
- #: ../tadv_admin.php:479
209
- msgid "Replace font size settings"
210
- msgstr "Remplacer les paramètres de taille de police"
211
-
212
- #: ../tadv_admin.php:480
213
- msgid ""
214
- "Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px "
215
- "20px 24px 28px 32px 36px."
216
- msgstr ""
217
- "Remplace le réglage de la taille disponible pour les polices avec: 8px 10px "
218
- "12px 14px 16px 20px 24px 28px 32px 36px."
219
-
220
- #: ../tadv_admin.php:485
221
  msgid "Enable pasting of image source"
222
  msgstr "Activer coller de la source de l'image"
223
 
224
- #: ../tadv_admin.php:487
225
  msgid ""
226
  "Works only in Firefox and Safari. These browsers support pasting of images "
227
  "directly in the editor and convert them to base64 encoded text."
@@ -230,7 +225,7 @@ msgstr ""
230
  "coller des images directement dans l'éditeur et les convertir en texte "
231
  "base64."
232
 
233
- #: ../tadv_admin.php:488
234
  msgid ""
235
  "This is not acceptable for larger images like photos or graphics, but may be "
236
  "useful in some cases for very small images like icons, not larger than 2-3KB."
@@ -239,27 +234,48 @@ msgstr ""
239
  "des graphiques, mais peut être utile dans certains cas pour les très petites "
240
  "images comme icônes, pas plus grands que 2-3KB."
241
 
242
- #: ../tadv_admin.php:489
243
  msgid "These images will not be available in the Media Library."
244
  msgstr "Ces images ne seront pas disponibles dans la bibliothèque multimédia."
245
 
246
- #: ../tadv_admin.php:495
247
  msgid "Administration"
248
  msgstr "Administration"
249
 
250
- #: ../tadv_admin.php:497
 
 
 
 
251
  msgid "Export Settings"
252
  msgstr "Réglages d'exportation"
253
 
254
- #: ../tadv_admin.php:498
255
  msgid "Import Settings"
256
  msgstr "Réglages d'importation"
257
 
258
- #: ../tadv_admin.php:508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  msgid "Restore Default Settings"
260
  msgstr "Restaurer les paramètres par défaut"
261
 
262
- #: ../tadv_admin.php:514
263
  msgid ""
264
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
265
  "button rows. It will only work when it is in the first row and there are "
@@ -269,7 +285,7 @@ msgstr ""
269
  "troisième, et quatrième rangées de boutons. Il ne fonctionne que quand il "
270
  "est dans la première rangée et il ya des boutons de la deuxième rangée."
271
 
272
- #: ../tinymce-advanced.php:180
273
  #, fuzzy, php-format
274
  msgid ""
275
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
@@ -278,7 +294,7 @@ msgstr ""
278
  "Ce plugin nécessite la version WordPress %1$s ou plus récent. Il semble que "
279
  "vous utilisez la version %2$s. Cela peut rendre l'éditeur instable."
280
 
281
- #: ../tinymce-advanced.php:187
282
  #, php-format
283
  msgid ""
284
  "Please upgrade your WordPress installation or download an <a href=\"%s"
@@ -287,6 +303,47 @@ msgstr ""
287
  "S'il vous plaît mettre à jour votre installation de WordPress ou télécharger "
288
  "une <a href=\"%s\">ancienne version du plugin</a>."
289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  #~ msgid ""
291
  #~ "This plugin matches special patterns while you type and applies formats "
292
  #~ "or executes commands on the matched text."
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
5
+ "PO-Revision-Date: 2016-03-17 12:23-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: fr_FR\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
+ #: ../tadv_admin.php:140
22
  msgid "Default settings restored."
23
  msgstr "Les paramètres par défaut restaurés."
24
 
25
+ #: ../tadv_admin.php:152
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "Réglages d'exportation de TinyMCE Advanced "
28
 
29
+ #: ../tadv_admin.php:156
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "Les paramètres sont exportés sous forme de chaîne JSON codée."
32
 
33
+ #: ../tadv_admin.php:157
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
38
  "S'il vous plaît copier le contenu et l'enregistrer dans un fichier <b>texte</"
39
  "b> (.txt), en utilisant un éditeur de texte comme Notepad."
40
 
41
+ #: ../tadv_admin.php:158
42
  msgid ""
43
  "It is important that the export is not changed in any way, no spaces, line "
44
  "breaks, etc."
46
  "Il est important que l'exportation n'a pas changé en aucune manière, pas "
47
  "d'espaces, sauts de ligne, etc."
48
 
49
+ #: ../tadv_admin.php:163
50
  msgid "Select All"
51
  msgstr "Sélectionner tout"
52
 
53
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
54
  msgid "Back to Editor Settings"
55
  msgstr "Retour aux paramètres de l'éditeur"
56
 
57
+ #: ../tadv_admin.php:177
58
  msgid "TinyMCE Advanced Settings Import"
59
  msgstr "Réglages d'importation de TinyMCE Advanced "
60
 
61
+ #: ../tadv_admin.php:180
62
  msgid ""
63
  "The settings are imported from a JSON encoded string. Please paste the "
64
  "exported string in the text area below."
66
  "Les paramètres sont importés à partir d'une chaîne JSON codée. S'il vous "
67
  "plaît collez la chaîne exporté dans la zone de texte ci-dessous."
68
 
69
+ #: ../tadv_admin.php:185
70
  msgid "Verify"
71
  msgstr "Vérifier"
72
 
73
+ #: ../tadv_admin.php:186
74
  msgid "Import"
75
  msgstr "Importer"
76
 
77
+ #: ../tadv_admin.php:216
78
  msgid "Importing of settings failed."
79
  msgstr "Importation des paramètres échoué."
80
 
81
+ #: ../tadv_admin.php:242
82
  msgid "ERROR: All toolbars are empty. Default settings loaded."
83
  msgstr ""
84
  "Erreur: Tous les barres d'outils sont vides. Les réglages par défaut chargés."
85
 
86
+ #: ../tadv_admin.php:254
87
  msgid "Editor Settings"
88
  msgstr "Paramètres de l'éditeur"
89
 
90
+ #: ../tadv_admin.php:261
91
  msgid "Settings saved."
92
  msgstr "Paramètres sauvegardés."
93
 
94
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
95
  msgid "Save Changes"
96
  msgstr "Sauvegarder les changements"
97
 
98
+ #: ../tadv_admin.php:277
 
 
 
 
 
 
 
 
 
99
  msgid "Enable the editor menu."
100
  msgstr "Activez le menu de l'éditeur."
101
 
102
+ #: ../tadv_admin.php:389
103
  msgid ""
104
  "Drag buttons from the unused buttons below and drop them in the toolbars "
105
  "above, or drag the buttons in the toolbars to rearrange them."
108
  "barres d'outils ci-dessus, ou faites glisser les boutons dans les barres "
109
  "d'outils pour les réorganiser."
110
 
111
+ #: ../tadv_admin.php:392
112
  msgid "Unused Buttons"
113
  msgstr "Boutons inutilisés"
114
 
115
+ #: ../tadv_admin.php:434
116
+ #, fuzzy
117
+ msgid "Options"
118
+ msgstr "Options avancées"
119
 
120
+ #: ../tadv_admin.php:437
121
  msgid "List Style Options"
122
  msgstr "Options de style de liste"
123
 
124
+ #: ../tadv_admin.php:439
125
+ msgid ""
126
+ "Enable more list options: upper or lower case letters for ordered lists, "
127
+ "disk or square for unordered lists, etc."
128
+ msgstr ""
129
+
130
+ #: ../tadv_admin.php:444
131
  msgid "Context Menu"
132
  msgstr "Menu contextuel"
133
 
134
+ #: ../tadv_admin.php:446
135
+ msgid "Replace the browser context (right-click) menu."
136
+ msgstr ""
 
 
 
 
137
 
138
  #: ../tadv_admin.php:451
139
+ msgid "Alternative link dialog"
140
+ msgstr ""
141
 
142
  #: ../tadv_admin.php:453
143
+ msgid ""
144
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
145
+ "the link menu item."
146
+ msgstr ""
147
+
148
+ #: ../tadv_admin.php:458
149
+ msgid "Font sizes"
150
  msgstr ""
 
 
151
 
152
+ #: ../tadv_admin.php:459
153
  msgid ""
154
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
155
+ "20px 24px 28px 32px 36px 48px 60px."
156
  msgstr ""
157
+ "Remplace le réglage de la taille disponible pour les polices avec: 8px 10px "
158
+ "12px 14px 16px 20px 24px 28px 32px 36px 48px 60px."
159
+
160
+ #: ../tadv_admin.php:467
161
+ msgid "Advanced Options"
162
+ msgstr "Options avancées"
163
 
164
+ #: ../tadv_admin.php:476
165
+ msgid "Create CSS classes menu"
166
+ msgstr ""
167
 
168
+ #: ../tadv_admin.php:478
169
  msgid ""
170
  "Load the CSS classes used in editor-style.css and replace the Formats button "
171
  "and sub-menu."
173
  "Chargez les classes CSS utilisées dans editor-style.css et remplacer le "
174
  "bouton Formats et sous-menus."
175
 
176
+ #: ../tadv_admin.php:488
177
+ msgid "Keep paragraph tags"
178
+ msgstr ""
179
+
180
+ #: ../tadv_admin.php:490
181
+ #, fuzzy
182
  msgid ""
183
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
184
+ "in the Text editor."
185
  msgstr ""
186
  "Arrêtez de retirer les balises &lt;p&gt; et &lt;br /&gt; lors de "
187
  "l'enregistrement et les affiche dans l'éditeur de texte"
188
 
189
+ #: ../tadv_admin.php:491
190
  msgid ""
191
  "This will make it possible to use more advanced coding in the HTML editor "
192
  "without the back-end filtering affecting it much."
194
  "Ainsi, il sera possible d'utiliser le codage plus avancé dans l'éditeur HTML "
195
  "sans le filtrage back-end qui affecte beaucoup."
196
 
197
+ #: ../tadv_admin.php:492
198
  msgid ""
199
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
200
  "before enabling it permanently."
202
  "Cependant, il peut se comporter de façon inattendue dans de rares cas, si le "
203
  "tester à fond avant de l'activer de façon permanente."
204
 
205
+ #: ../tadv_admin.php:493
206
  msgid ""
207
  "Line breaks in the HTML editor would still affect the output, in particular "
208
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
212
  "particulier, ne pas utiliser des lignes vides, les sauts de ligne à "
213
  "l'intérieur de balises HTML ou multiple balises &lt;br /&gt;."
214
 
215
+ #: ../tadv_admin.php:498
 
 
 
 
 
 
 
 
 
 
 
 
216
  msgid "Enable pasting of image source"
217
  msgstr "Activer coller de la source de l'image"
218
 
219
+ #: ../tadv_admin.php:500
220
  msgid ""
221
  "Works only in Firefox and Safari. These browsers support pasting of images "
222
  "directly in the editor and convert them to base64 encoded text."
225
  "coller des images directement dans l'éditeur et les convertir en texte "
226
  "base64."
227
 
228
+ #: ../tadv_admin.php:501
229
  msgid ""
230
  "This is not acceptable for larger images like photos or graphics, but may be "
231
  "useful in some cases for very small images like icons, not larger than 2-3KB."
234
  "des graphiques, mais peut être utile dans certains cas pour les très petites "
235
  "images comme icônes, pas plus grands que 2-3KB."
236
 
237
+ #: ../tadv_admin.php:502
238
  msgid "These images will not be available in the Media Library."
239
  msgstr "Ces images ne seront pas disponibles dans la bibliothèque multimédia."
240
 
241
+ #: ../tadv_admin.php:508
242
  msgid "Administration"
243
  msgstr "Administration"
244
 
245
+ #: ../tadv_admin.php:510
246
+ msgid "Settings import and export"
247
+ msgstr ""
248
+
249
+ #: ../tadv_admin.php:512
250
  msgid "Export Settings"
251
  msgstr "Réglages d'exportation"
252
 
253
+ #: ../tadv_admin.php:513
254
  msgid "Import Settings"
255
  msgstr "Réglages d'importation"
256
 
257
+ #: ../tadv_admin.php:517
258
+ #, fuzzy
259
+ msgid "Enable the editor enhancements for:"
260
+ msgstr "Activez le menu de l'éditeur."
261
+
262
+ #: ../tadv_admin.php:520
263
+ msgid "The main editor (Add New and Edit posts and pages)"
264
+ msgstr ""
265
+
266
+ #: ../tadv_admin.php:524
267
+ msgid "Other editors in wp-admin"
268
+ msgstr ""
269
+
270
+ #: ../tadv_admin.php:528
271
+ msgid "Editors on the front end of the site"
272
+ msgstr ""
273
+
274
+ #: ../tadv_admin.php:539
275
  msgid "Restore Default Settings"
276
  msgstr "Restaurer les paramètres par défaut"
277
 
278
+ #: ../tadv_admin.php:545
279
  msgid ""
280
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
281
  "button rows. It will only work when it is in the first row and there are "
285
  "troisième, et quatrième rangées de boutons. Il ne fonctionne que quand il "
286
  "est dans la première rangée et il ya des boutons de la deuxième rangée."
287
 
288
+ #: ../tinymce-advanced.php:221
289
  #, fuzzy, php-format
290
  msgid ""
291
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
294
  "Ce plugin nécessite la version WordPress %1$s ou plus récent. Il semble que "
295
  "vous utilisez la version %2$s. Cela peut rendre l'éditeur instable."
296
 
297
+ #: ../tinymce-advanced.php:228
298
  #, php-format
299
  msgid ""
300
  "Please upgrade your WordPress installation or download an <a href=\"%s"
303
  "S'il vous plaît mettre à jour votre installation de WordPress ou télécharger "
304
  "une <a href=\"%s\">ancienne version du plugin</a>."
305
 
306
+ #: ../tinymce-advanced.php:703
307
+ #, fuzzy
308
+ msgid "Settings"
309
+ msgstr "Paramètres de l'éditeur"
310
+
311
+ #~ msgid ""
312
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
313
+ #~ "most buttons are also available as menu items."
314
+ #~ msgstr ""
315
+ #~ "Nouveau dans TinyMCE 4.0 / WordPress 3.9 est le menu de l'éditeur. Quand "
316
+ #~ "il est activé, la plupart des boutons sont également disponibles comme "
317
+ #~ "des éléments de menu."
318
+
319
+ #~ msgid "Also enable:"
320
+ #~ msgstr "Permettre également:"
321
+
322
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
323
+ #~ msgstr "Lien (remplace la boîte de dialogue Insérer / Modifier Lien)"
324
+
325
+ #~ msgid "Import editor-style.css."
326
+ #~ msgstr "Importer editor-style.css."
327
+
328
+ #~ msgid ""
329
+ #~ "It seems your theme does not support customised styles for the editor."
330
+ #~ msgstr ""
331
+ #~ "Il semble que votre thème ne supporte pas les styles personnalisés pour "
332
+ #~ "l'éditeur."
333
+
334
+ #~ msgid ""
335
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
336
+ #~ "it to your theme's directory."
337
+ #~ msgstr ""
338
+ #~ "Vous pouvez créer un fichier CSS nommé <code>editor-style.css</code> et "
339
+ #~ "de le transférer vers le répertoire de votre thème."
340
+
341
+ #~ msgid "After that, enable this setting."
342
+ #~ msgstr "Après cela, activez ce paramètre."
343
+
344
+ #~ msgid "Replace font size settings"
345
+ #~ msgstr "Remplacer les paramètres de taille de police"
346
+
347
  #~ msgid ""
348
  #~ "This plugin matches special patterns while you type and applies formats "
349
  #~ "or executes commands on the matched text."
langs/tinymce-advanced-ko_KR.mo ADDED
Binary file
langs/tinymce-advanced-ko_KR.po ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: TinyMCE Advanced\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
6
+ "PO-Revision-Date: 2016-03-17 12:24-0800\n"
7
+ "Last-Translator: jminst <admin@jmic.co.kr>\n"
8
+ "Language-Team: \n"
9
+ "Language: ko\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "Plural-Forms: nplurals=1; plural=0;\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Generator: Poedit 1.6.9\n"
16
+ "X-Poedit-Basepath: .\n"
17
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
18
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
19
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
20
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
21
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
22
+ "X-Loco-Target-Locale: ko_KR\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-SearchPath-1: ..\n"
25
+
26
+ #: ../tadv_admin.php:140
27
+ msgid "Default settings restored."
28
+ msgstr "기본 설정이 복구됨."
29
+
30
+ #: ../tadv_admin.php:152
31
+ msgid "TinyMCE Advanced Settings Export"
32
+ msgstr "TinyMCE 고급 설정 내보내기"
33
+
34
+ #: ../tadv_admin.php:156
35
+ msgid "The settings are exported as a JSON encoded string."
36
+ msgstr "설정은 JSON 인코딩 스트링으로 내보냅니다."
37
+
38
+ #: ../tadv_admin.php:157
39
+ msgid ""
40
+ "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
41
+ "plain text editor like Notepad."
42
+ msgstr ""
43
+ "내용을 복사하여 메모장과 같은 평문 편집기를 사용하여 <b>텍스트</b> (.txt) 파"
44
+ "일로 저장해주세요."
45
+
46
+ #: ../tadv_admin.php:158
47
+ msgid ""
48
+ "It is important that the export is not changed in any way, no spaces, line "
49
+ "breaks, etc."
50
+ msgstr "내보내기에 띄어쓰기, 줄 바꿈 등의 변경사항이 없는 것이 중요합니다."
51
+
52
+ #: ../tadv_admin.php:163
53
+ msgid "Select All"
54
+ msgstr "모두 선택"
55
+
56
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
57
+ msgid "Back to Editor Settings"
58
+ msgstr "편집기 설정으로 돌아가기"
59
+
60
+ #: ../tadv_admin.php:177
61
+ msgid "TinyMCE Advanced Settings Import"
62
+ msgstr "TinyMCE 고급 설정 가져오기"
63
+
64
+ #: ../tadv_admin.php:180
65
+ msgid ""
66
+ "The settings are imported from a JSON encoded string. Please paste the "
67
+ "exported string in the text area below."
68
+ msgstr ""
69
+ "설정은 JSON 인코딩 스트링에서 가져옵니다. 내보낸 스트링을 아래 텍스트 영역에 "
70
+ "붙여넣어주세요."
71
+
72
+ #: ../tadv_admin.php:185
73
+ msgid "Verify"
74
+ msgstr "검증"
75
+
76
+ #: ../tadv_admin.php:186
77
+ msgid "Import"
78
+ msgstr "가져오기"
79
+
80
+ #: ../tadv_admin.php:216
81
+ msgid "Importing of settings failed."
82
+ msgstr "설정 가져오기를 실패함."
83
+
84
+ #: ../tadv_admin.php:242
85
+ msgid "ERROR: All toolbars are empty. Default settings loaded."
86
+ msgstr "오류: 모든 도구 표시줄이 비어있습니다. 기본 설정을 불러왔습니다."
87
+
88
+ #: ../tadv_admin.php:254
89
+ msgid "Editor Settings"
90
+ msgstr "편집기 설정"
91
+
92
+ #: ../tadv_admin.php:261
93
+ msgid "Settings saved."
94
+ msgstr "설정이 저장됨."
95
+
96
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
97
+ msgid "Save Changes"
98
+ msgstr "변경사항 저장"
99
+
100
+ #: ../tadv_admin.php:277
101
+ msgid "Enable the editor menu."
102
+ msgstr "편집기 메뉴를 활성화합니다."
103
+
104
+ #: ../tadv_admin.php:389
105
+ msgid ""
106
+ "Drag buttons from the unused buttons below and drop them in the toolbars "
107
+ "above, or drag the buttons in the toolbars to rearrange them."
108
+ msgstr ""
109
+ "아래 사용하지 않은 버튼에서 끌어다 위의 도구 표시줄에 놓거나, 도구 표시줄의 "
110
+ "버튼을 끌어다 재배치하십시오."
111
+
112
+ #: ../tadv_admin.php:392
113
+ msgid "Unused Buttons"
114
+ msgstr "사용하지 않은 버튼"
115
+
116
+ #: ../tadv_admin.php:434
117
+ #, fuzzy
118
+ msgid "Options"
119
+ msgstr "고급 옵션"
120
+
121
+ #: ../tadv_admin.php:437
122
+ msgid "List Style Options"
123
+ msgstr "목록 스타일 옵션"
124
+
125
+ #: ../tadv_admin.php:439
126
+ msgid ""
127
+ "Enable more list options: upper or lower case letters for ordered lists, "
128
+ "disk or square for unordered lists, etc."
129
+ msgstr ""
130
+
131
+ #: ../tadv_admin.php:444
132
+ msgid "Context Menu"
133
+ msgstr "콘텍스트 메뉴"
134
+
135
+ #: ../tadv_admin.php:446
136
+ msgid "Replace the browser context (right-click) menu."
137
+ msgstr ""
138
+
139
+ #: ../tadv_admin.php:451
140
+ msgid "Alternative link dialog"
141
+ msgstr ""
142
+
143
+ #: ../tadv_admin.php:453
144
+ msgid ""
145
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
146
+ "the link menu item."
147
+ msgstr ""
148
+
149
+ #: ../tadv_admin.php:458
150
+ msgid "Font sizes"
151
+ msgstr ""
152
+
153
+ #: ../tadv_admin.php:459
154
+ msgid ""
155
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
156
+ "20px 24px 28px 32px 36px 48px 60px."
157
+ msgstr ""
158
+ "다음 글꼴에 사용 가능한 크기 설정을 대체합니다: 8px 10px 12px 14px 16px 20px "
159
+ "24px 28px 32px 36px 48px 60px."
160
+
161
+ #: ../tadv_admin.php:467
162
+ msgid "Advanced Options"
163
+ msgstr "고급 옵션"
164
+
165
+ #: ../tadv_admin.php:476
166
+ msgid "Create CSS classes menu"
167
+ msgstr ""
168
+
169
+ #: ../tadv_admin.php:478
170
+ msgid ""
171
+ "Load the CSS classes used in editor-style.css and replace the Formats button "
172
+ "and sub-menu."
173
+ msgstr ""
174
+ "editor-style.css 의 CSS 클래스를 불러오고 형식 버튼 및 하위 메뉴를 대체합니"
175
+ "다."
176
+
177
+ #: ../tadv_admin.php:488
178
+ msgid "Keep paragraph tags"
179
+ msgstr ""
180
+
181
+ #: ../tadv_admin.php:490
182
+ #, fuzzy
183
+ msgid ""
184
+ "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
185
+ "in the Text editor."
186
+ msgstr ""
187
+ "저장 시 &lt;p&gt; 및 &lt;br /&gt; 태그의 제거를 중단하고 텍스트 편집기에 표시"
188
+ "합니다."
189
+
190
+ #: ../tadv_admin.php:491
191
+ msgid ""
192
+ "This will make it possible to use more advanced coding in the HTML editor "
193
+ "without the back-end filtering affecting it much."
194
+ msgstr ""
195
+ "이 기능은 백엔드 필터링의 영향을 최소화하여 HTML 편집기에서 더욱 전문적인 코"
196
+ "딩을 사용할 수 있도록 합니다."
197
+
198
+ #: ../tadv_admin.php:492
199
+ msgid ""
200
+ "However it may behave unexpectedly in rare cases, so test it thoroughly "
201
+ "before enabling it permanently."
202
+ msgstr ""
203
+ "하지만 드문 경우 예상치 못하게 행동할 수 있으므로, 영구적으로 활성화하기 전"
204
+ "에 철저하게 검사하십시오."
205
+
206
+ #: ../tadv_admin.php:493
207
+ msgid ""
208
+ "Line breaks in the HTML editor would still affect the output, in particular "
209
+ "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
210
+ "&gt; tags."
211
+ msgstr ""
212
+ "HTML 편집기의 줄 바꿈은 출력에 영향을 끼치므로, 특히 빈 줄, HTML 태그의 줄 바"
213
+ "꿈 또는 다중 &lt;br /&gt; 태그를 사용하지 마십시오."
214
+
215
+ #: ../tadv_admin.php:498
216
+ msgid "Enable pasting of image source"
217
+ msgstr "이미지 소스 붙여넣기 활성화"
218
+
219
+ #: ../tadv_admin.php:500
220
+ msgid ""
221
+ "Works only in Firefox and Safari. These browsers support pasting of images "
222
+ "directly in the editor and convert them to base64 encoded text."
223
+ msgstr ""
224
+ "파이어폭스 및 사파리에서만 작동함. 이 브라우저는 편집기에 이미지 직접 붙여넣"
225
+ "기 및 base64 인코딩 텍스트로 변환을 지원합니다. "
226
+
227
+ #: ../tadv_admin.php:501
228
+ msgid ""
229
+ "This is not acceptable for larger images like photos or graphics, but may be "
230
+ "useful in some cases for very small images like icons, not larger than 2-3KB."
231
+ msgstr ""
232
+ "이 기능은 사진 또는 그래픽과 같은 큰 이미지를 허용하지 않으나, 2-3KB 보다 작"
233
+ "은 아이콘과 같은 매우 작은 이미지일 경우 유용할 수 있습니다."
234
+
235
+ #: ../tadv_admin.php:502
236
+ msgid "These images will not be available in the Media Library."
237
+ msgstr "이 이미지는 미디어 라이브러리에 나타나지 않습니다."
238
+
239
+ #: ../tadv_admin.php:508
240
+ msgid "Administration"
241
+ msgstr "관리"
242
+
243
+ #: ../tadv_admin.php:510
244
+ msgid "Settings import and export"
245
+ msgstr ""
246
+
247
+ #: ../tadv_admin.php:512
248
+ msgid "Export Settings"
249
+ msgstr "설정 내보내기"
250
+
251
+ #: ../tadv_admin.php:513
252
+ msgid "Import Settings"
253
+ msgstr "설정 가져오기"
254
+
255
+ #: ../tadv_admin.php:517
256
+ #, fuzzy
257
+ msgid "Enable the editor enhancements for:"
258
+ msgstr "편집기 메뉴를 활성화합니다."
259
+
260
+ #: ../tadv_admin.php:520
261
+ msgid "The main editor (Add New and Edit posts and pages)"
262
+ msgstr ""
263
+
264
+ #: ../tadv_admin.php:524
265
+ msgid "Other editors in wp-admin"
266
+ msgstr ""
267
+
268
+ #: ../tadv_admin.php:528
269
+ msgid "Editors on the front end of the site"
270
+ msgstr ""
271
+
272
+ #: ../tadv_admin.php:539
273
+ msgid "Restore Default Settings"
274
+ msgstr "기본 설정 복원"
275
+
276
+ #: ../tadv_admin.php:545
277
+ msgid ""
278
+ "The [Toolbar toggle] button shows or hides the second, third, and forth "
279
+ "button rows. It will only work when it is in the first row and there are "
280
+ "buttons in the second row."
281
+ msgstr ""
282
+ "[도구 표시줄 전환] 버튼은 두 번째, 세 번째 및 네 번째 버튼 줄을 표시하거나 숨"
283
+ "깁니다. 첫 번째 줄이고 두 번째 줄에 버튼이 있을 경우에만 작동합니다. "
284
+
285
+ #: ../tinymce-advanced.php:221
286
+ #, php-format
287
+ msgid ""
288
+ "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
289
+ "you are running %2$s. This can make the editor unstable."
290
+ msgstr ""
291
+ "TinyMCE Advanced 는 워드프레스 버전 %1$s 이상을 요구합니다. 현재 %2$s 이(가) "
292
+ "실행 중인 것 같습니다. 이로 인해 편집기가 불안정해질 수 있습니다."
293
+
294
+ #: ../tinymce-advanced.php:228
295
+ #, php-format
296
+ msgid ""
297
+ "Please upgrade your WordPress installation or download an <a href=\"%s"
298
+ "\">older version of the plugin</a>."
299
+ msgstr ""
300
+ "워드프레스 설치를 업그레이드 하시거나 <a href=\"%s\">이전 버전의 플러그인</a>"
301
+ "을 다운로드 해주세요."
302
+
303
+ #: ../tinymce-advanced.php:703
304
+ #, fuzzy
305
+ msgid "Settings"
306
+ msgstr "편집기 설정"
307
+
308
+ #~ msgid ""
309
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
310
+ #~ "most buttons are also available as menu items."
311
+ #~ msgstr ""
312
+ #~ "TinyMCE 4.0/워드프레스 3.9의 새로운 내용은 편집기 메뉴입니다. 활성화할 경"
313
+ #~ "우, 대부분의 버튼이 메뉴 항목으로도 사용 가능합니다."
314
+
315
+ #~ msgid "Also enable:"
316
+ #~ msgstr "또한 다음을 활성화:"
317
+
318
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
319
+ #~ msgstr "링크 (링크 삽입/편집 대화를 대체)"
320
+
321
+ #~ msgid "Import editor-style.css."
322
+ #~ msgstr "editor-style.css를 가져오십시오."
323
+
324
+ #~ msgid ""
325
+ #~ "It seems your theme does not support customised styles for the editor."
326
+ #~ msgstr "테마가 편집기에 사용자 지정 스타일을 지원하지 않는 것 같습니다."
327
+
328
+ #~ msgid ""
329
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
330
+ #~ "it to your theme's directory."
331
+ #~ msgstr ""
332
+ #~ "<code>editor-style.css</code> 이름의 CSS 파일을 생성하여 테마의 디렉터리"
333
+ #~ "에 업로드 할 수 있습니다."
334
+
335
+ #~ msgid "After that, enable this setting."
336
+ #~ msgstr "그런 다음, 이 설정을 활성화하십시오."
337
+
338
+ #~ msgid "Replace font size settings"
339
+ #~ msgstr "글꼴 크기 설정 바꾸기"
langs/tinymce-advanced-pl_PL.mo CHANGED
Binary file
langs/tinymce-advanced-pl_PL.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
- "POT-Creation-Date: 2015-09-15 10:42-0800\n"
5
- "PO-Revision-Date: 2015-09-15 10:45-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: pl_PL\n"
@@ -19,19 +19,19 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPath-1: ..\n"
21
 
22
- #: ../tadv_admin.php:125
23
  msgid "Default settings restored."
24
  msgstr "Domyślne ustawienia przywrócone."
25
 
26
- #: ../tadv_admin.php:137
27
  msgid "TinyMCE Advanced Settings Export"
28
  msgstr "Eksport Ustawień TinyMCE Advanced"
29
 
30
- #: ../tadv_admin.php:141
31
  msgid "The settings are exported as a JSON encoded string."
32
  msgstr "Ustawienia zostaną wyeksportowane jako zakodowany tekst JSON."
33
 
34
- #: ../tadv_admin.php:142
35
  msgid ""
36
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
37
  "plain text editor like Notepad."
@@ -39,7 +39,7 @@ msgstr ""
39
  "Skopiuj tekst i zapisz go w pliku <b>tekstowym</b> (.txt), używając edytora "
40
  "zwykłego tekstu takiego jak Notatnik."
41
 
42
- #: ../tadv_admin.php:143
43
  msgid ""
44
  "It is important that the export is not changed in any way, no spaces, line "
45
  "breaks, etc."
@@ -47,19 +47,19 @@ msgstr ""
47
  "Ważne jest, aby tekst nie został w żaden sposób zmieniony, żadnych spacji, "
48
  "nowych linii, itd."
49
 
50
- #: ../tadv_admin.php:148
51
  msgid "Select All"
52
  msgstr "Wybierz Wszystko"
53
 
54
- #: ../tadv_admin.php:150 ../tadv_admin.php:176
55
  msgid "Back to Editor Settings"
56
  msgstr "Powrót do Ustawień Edytora"
57
 
58
- #: ../tadv_admin.php:162
59
  msgid "TinyMCE Advanced Settings Import"
60
  msgstr "Import Ustawień TinyMCE Advanced"
61
 
62
- #: ../tadv_admin.php:165
63
  msgid ""
64
  "The settings are imported from a JSON encoded string. Please paste the "
65
  "exported string in the text area below."
@@ -67,48 +67,40 @@ msgstr ""
67
  "Ustawienia zostaną zaimportowane z zakodowanego tekstu JSON. Wklej "
68
  "wyeksportowany tekst poniżej."
69
 
70
- #: ../tadv_admin.php:170
71
  msgid "Verify"
72
  msgstr "Zweryfikuj"
73
 
74
- #: ../tadv_admin.php:171
75
  msgid "Import"
76
  msgstr "Importuj"
77
 
78
- #: ../tadv_admin.php:201
79
  msgid "Importing of settings failed."
80
  msgstr "Importowanie ustawień nie powiodło się."
81
 
82
- #: ../tadv_admin.php:227
83
  msgid "ERROR: All toolbars are empty. Default settings loaded."
84
  msgstr ""
85
  "BŁĄD: Wszystkie paski narzędzi są puste. Domyślne ustawienia przywrócone."
86
 
87
- #: ../tadv_admin.php:239
88
  msgid "Editor Settings"
89
  msgstr "Ustawienia Edytora"
90
 
91
- #: ../tadv_admin.php:246
92
  msgid "Settings saved."
93
  msgstr "Ustawienia zapisane."
94
 
95
- #: ../tadv_admin.php:255 ../tadv_admin.php:509
96
  msgid "Save Changes"
97
  msgstr "Zapisz Zmiany"
98
 
99
- #: ../tadv_admin.php:260
100
- msgid ""
101
- "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
102
- "most buttons are also available as menu items."
103
- msgstr ""
104
- "Nowością w TinyMCE 4.0/WordPressie 3.9 jest menu edytora. Gdy włączone, "
105
- "większość przycisków dostępne jest również jako opcje w menu."
106
-
107
- #: ../tadv_admin.php:264
108
  msgid "Enable the editor menu."
109
  msgstr "Włącz menu edytora."
110
 
111
- #: ../tadv_admin.php:376
112
  msgid ""
113
  "Drag buttons from the unused buttons below and drop them in the toolbars "
114
  "above, or drag the buttons in the toolbars to rearrange them."
@@ -116,52 +108,64 @@ msgstr ""
116
  "Przeciągnij przyciski z nieużywanych przycisków poniżej i upuść je w paskach "
117
  "powyżej, lub przeciągnij je w paskach, by zmienić ich położenie."
118
 
119
- #: ../tadv_admin.php:379
120
  msgid "Unused Buttons"
121
  msgstr "Nieużywane przyciski"
122
 
123
- #: ../tadv_admin.php:420
124
- msgid "Also enable:"
125
- msgstr "Włącz również:"
 
126
 
127
- #: ../tadv_admin.php:423
128
  msgid "List Style Options"
129
  msgstr "Ustawienia Stylu Listy"
130
 
131
- #: ../tadv_admin.php:428
 
 
 
 
 
 
132
  msgid "Context Menu"
133
  msgstr "Menu Kontekstowe"
134
 
135
- #: ../tadv_admin.php:433
136
- msgid "Link (replaces the Insert/Edit Link dialog)"
137
- msgstr "Link (zastępuje okno Wstaw/Edytuj Link)"
138
-
139
- #: ../tadv_admin.php:443
140
- msgid "Advanced Options"
141
- msgstr "Ustawienia Zaawansowane"
142
 
143
  #: ../tadv_admin.php:451
144
- msgid "Import editor-style.css."
145
- msgstr "Zaimportuj editor-style.css."
146
 
147
  #: ../tadv_admin.php:453
148
- msgid "It seems your theme does not support customised styles for the editor."
 
 
 
 
 
 
149
  msgstr ""
150
- "Wygląda na to, że twój motyw nie wspiera zmodyfikowanych stylów dla edytora."
151
 
152
- #: ../tadv_admin.php:454
153
  msgid ""
154
- "You can create a CSS file named <code>editor-style.css</code> and upload it "
155
- "to your theme's directory."
156
  msgstr ""
157
- "Możesz utworzyć plik CSS nazwany <code>editor-style.css</code> i załadować "
158
- "go do katalogu twojego motywu."
 
 
 
 
159
 
160
- #: ../tadv_admin.php:455
161
- msgid "After that, enable this setting."
162
- msgstr "Gdy to zrobisz, aktywuj tą opcję."
163
 
164
- #: ../tadv_admin.php:464
165
  msgid ""
166
  "Load the CSS classes used in editor-style.css and replace the Formats button "
167
  "and sub-menu."
@@ -169,15 +173,20 @@ msgstr ""
169
  "Załaduj klasy CSS użyte w editor-style.css i zmień przycisk oraz podmenu "
170
  "Formaty."
171
 
172
- #: ../tadv_admin.php:469
 
 
 
 
 
173
  msgid ""
174
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
175
- "in the Text editor"
176
  msgstr ""
177
  "Przestań usuwać tagi &lt;p&gt; i &lt;br /&gt; podczas zapisywania i pokazuj "
178
  "je w edytorze Tekstowym."
179
 
180
- #: ../tadv_admin.php:471
181
  msgid ""
182
  "This will make it possible to use more advanced coding in the HTML editor "
183
  "without the back-end filtering affecting it much."
@@ -185,7 +194,7 @@ msgstr ""
185
  "Umożliwi to zaawansowaną edycję w edytorze HTMLa bez szczególnego "
186
  "filtrowania backendu zbyt zmieniającego pisany kod."
187
 
188
- #: ../tadv_admin.php:472
189
  msgid ""
190
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
191
  "before enabling it permanently."
@@ -193,7 +202,7 @@ msgstr ""
193
  "Może to jednak zachowywać się nieprzewidzianie w rzadkich przypadkach, więc "
194
  "przetestuj tą opcję dogłębnie przed korzystaniem z niej na stałe."
195
 
196
- #: ../tadv_admin.php:473
197
  msgid ""
198
  "Line breaks in the HTML editor would still affect the output, in particular "
199
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
@@ -203,23 +212,11 @@ msgstr ""
203
  "pustych linii, nowych linii wewnątrz tagów HTMLa ani wielu tagów &lt;br /"
204
  "&gt;."
205
 
206
- #: ../tadv_admin.php:479
207
- msgid "Replace font size settings"
208
- msgstr "Zmień ustawienia rozmiaru czcionki"
209
-
210
- #: ../tadv_admin.php:480
211
- msgid ""
212
- "Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px "
213
- "20px 24px 28px 32px 36px."
214
- msgstr ""
215
- "Zmienia dostępne rozmiary czcionki na: 8px 10px 12px 14px 16px 20px 24px "
216
- "28px 32px 36px."
217
-
218
- #: ../tadv_admin.php:485
219
  msgid "Enable pasting of image source"
220
  msgstr "Włącz wklejanie źródeł obrazów."
221
 
222
- #: ../tadv_admin.php:487
223
  msgid ""
224
  "Works only in Firefox and Safari. These browsers support pasting of images "
225
  "directly in the editor and convert them to base64 encoded text."
@@ -228,7 +225,7 @@ msgstr ""
228
  "obrazów bezpośrednio w edytorze i ich konwersję do zakodowanego tekstu "
229
  "base64."
230
 
231
- #: ../tadv_admin.php:488
232
  msgid ""
233
  "This is not acceptable for larger images like photos or graphics, but may be "
234
  "useful in some cases for very small images like icons, not larger than 2-3KB."
@@ -236,27 +233,48 @@ msgstr ""
236
  "Nie jest to sensowne dla dużych obrazów jak zdjęcia czy grafiki, ale może "
237
  "być przydatne dla bardzo małych obrazków jak ikony, nie większych niż 2-3KB."
238
 
239
- #: ../tadv_admin.php:489
240
  msgid "These images will not be available in the Media Library."
241
  msgstr "Obrazy te nie będą dostępne w Bibliotece Mediów."
242
 
243
- #: ../tadv_admin.php:495
244
  msgid "Administration"
245
  msgstr "Administracja"
246
 
247
- #: ../tadv_admin.php:497
 
 
 
 
248
  msgid "Export Settings"
249
  msgstr "Eksport Ustawień"
250
 
251
- #: ../tadv_admin.php:498
252
  msgid "Import Settings"
253
  msgstr "Import Ustawień"
254
 
255
- #: ../tadv_admin.php:508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
256
  msgid "Restore Default Settings"
257
  msgstr "Przywróć Domyślne Ustawienia"
258
 
259
- #: ../tadv_admin.php:514
260
  msgid ""
261
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
262
  "button rows. It will only work when it is in the first row and there are "
@@ -266,7 +284,7 @@ msgstr ""
266
  "trzeci i czwarty rząd przycisków. Będzie działać tylko jeśli jest w "
267
  "pierwszym rzędzie i istnieją przyciski w drugim."
268
 
269
- #: ../tinymce-advanced.php:180
270
  #, php-format
271
  msgid ""
272
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
@@ -275,7 +293,7 @@ msgstr ""
275
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
276
  "you are running %2$s. This can make the editor unstable."
277
 
278
- #: ../tinymce-advanced.php:187
279
  #, php-format
280
  msgid ""
281
  "Please upgrade your WordPress installation or download an <a href=\"%s"
@@ -284,6 +302,46 @@ msgstr ""
284
  "Zaktualizuj swoją instalację WordPressa lub pobierz <a href=\"%s\">starszą "
285
  "wersję tej wtyczki</a>."
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  #~ msgid "Markdown typing support (text pattern plugin)"
288
  #~ msgstr "Wsparcie Markdown (wtyczka szablonu tekstu)"
289
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
5
+ "PO-Revision-Date: 2016-03-17 12:24-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: pl_PL\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPath-1: ..\n"
21
 
22
+ #: ../tadv_admin.php:140
23
  msgid "Default settings restored."
24
  msgstr "Domyślne ustawienia przywrócone."
25
 
26
+ #: ../tadv_admin.php:152
27
  msgid "TinyMCE Advanced Settings Export"
28
  msgstr "Eksport Ustawień TinyMCE Advanced"
29
 
30
+ #: ../tadv_admin.php:156
31
  msgid "The settings are exported as a JSON encoded string."
32
  msgstr "Ustawienia zostaną wyeksportowane jako zakodowany tekst JSON."
33
 
34
+ #: ../tadv_admin.php:157
35
  msgid ""
36
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
37
  "plain text editor like Notepad."
39
  "Skopiuj tekst i zapisz go w pliku <b>tekstowym</b> (.txt), używając edytora "
40
  "zwykłego tekstu takiego jak Notatnik."
41
 
42
+ #: ../tadv_admin.php:158
43
  msgid ""
44
  "It is important that the export is not changed in any way, no spaces, line "
45
  "breaks, etc."
47
  "Ważne jest, aby tekst nie został w żaden sposób zmieniony, żadnych spacji, "
48
  "nowych linii, itd."
49
 
50
+ #: ../tadv_admin.php:163
51
  msgid "Select All"
52
  msgstr "Wybierz Wszystko"
53
 
54
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
55
  msgid "Back to Editor Settings"
56
  msgstr "Powrót do Ustawień Edytora"
57
 
58
+ #: ../tadv_admin.php:177
59
  msgid "TinyMCE Advanced Settings Import"
60
  msgstr "Import Ustawień TinyMCE Advanced"
61
 
62
+ #: ../tadv_admin.php:180
63
  msgid ""
64
  "The settings are imported from a JSON encoded string. Please paste the "
65
  "exported string in the text area below."
67
  "Ustawienia zostaną zaimportowane z zakodowanego tekstu JSON. Wklej "
68
  "wyeksportowany tekst poniżej."
69
 
70
+ #: ../tadv_admin.php:185
71
  msgid "Verify"
72
  msgstr "Zweryfikuj"
73
 
74
+ #: ../tadv_admin.php:186
75
  msgid "Import"
76
  msgstr "Importuj"
77
 
78
+ #: ../tadv_admin.php:216
79
  msgid "Importing of settings failed."
80
  msgstr "Importowanie ustawień nie powiodło się."
81
 
82
+ #: ../tadv_admin.php:242
83
  msgid "ERROR: All toolbars are empty. Default settings loaded."
84
  msgstr ""
85
  "BŁĄD: Wszystkie paski narzędzi są puste. Domyślne ustawienia przywrócone."
86
 
87
+ #: ../tadv_admin.php:254
88
  msgid "Editor Settings"
89
  msgstr "Ustawienia Edytora"
90
 
91
+ #: ../tadv_admin.php:261
92
  msgid "Settings saved."
93
  msgstr "Ustawienia zapisane."
94
 
95
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
96
  msgid "Save Changes"
97
  msgstr "Zapisz Zmiany"
98
 
99
+ #: ../tadv_admin.php:277
 
 
 
 
 
 
 
 
100
  msgid "Enable the editor menu."
101
  msgstr "Włącz menu edytora."
102
 
103
+ #: ../tadv_admin.php:389
104
  msgid ""
105
  "Drag buttons from the unused buttons below and drop them in the toolbars "
106
  "above, or drag the buttons in the toolbars to rearrange them."
108
  "Przeciągnij przyciski z nieużywanych przycisków poniżej i upuść je w paskach "
109
  "powyżej, lub przeciągnij je w paskach, by zmienić ich położenie."
110
 
111
+ #: ../tadv_admin.php:392
112
  msgid "Unused Buttons"
113
  msgstr "Nieużywane przyciski"
114
 
115
+ #: ../tadv_admin.php:434
116
+ #, fuzzy
117
+ msgid "Options"
118
+ msgstr "Ustawienia Zaawansowane"
119
 
120
+ #: ../tadv_admin.php:437
121
  msgid "List Style Options"
122
  msgstr "Ustawienia Stylu Listy"
123
 
124
+ #: ../tadv_admin.php:439
125
+ msgid ""
126
+ "Enable more list options: upper or lower case letters for ordered lists, "
127
+ "disk or square for unordered lists, etc."
128
+ msgstr ""
129
+
130
+ #: ../tadv_admin.php:444
131
  msgid "Context Menu"
132
  msgstr "Menu Kontekstowe"
133
 
134
+ #: ../tadv_admin.php:446
135
+ msgid "Replace the browser context (right-click) menu."
136
+ msgstr ""
 
 
 
 
137
 
138
  #: ../tadv_admin.php:451
139
+ msgid "Alternative link dialog"
140
+ msgstr ""
141
 
142
  #: ../tadv_admin.php:453
143
+ msgid ""
144
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
145
+ "the link menu item."
146
+ msgstr ""
147
+
148
+ #: ../tadv_admin.php:458
149
+ msgid "Font sizes"
150
  msgstr ""
 
151
 
152
+ #: ../tadv_admin.php:459
153
  msgid ""
154
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
155
+ "20px 24px 28px 32px 36px 48px 60px."
156
  msgstr ""
157
+ "Zmienia dostępne rozmiary czcionki na: 8px 10px 12px 14px 16px 20px 24px "
158
+ "28px 32px 36px 48px 60px."
159
+
160
+ #: ../tadv_admin.php:467
161
+ msgid "Advanced Options"
162
+ msgstr "Ustawienia Zaawansowane"
163
 
164
+ #: ../tadv_admin.php:476
165
+ msgid "Create CSS classes menu"
166
+ msgstr ""
167
 
168
+ #: ../tadv_admin.php:478
169
  msgid ""
170
  "Load the CSS classes used in editor-style.css and replace the Formats button "
171
  "and sub-menu."
173
  "Załaduj klasy CSS użyte w editor-style.css i zmień przycisk oraz podmenu "
174
  "Formaty."
175
 
176
+ #: ../tadv_admin.php:488
177
+ msgid "Keep paragraph tags"
178
+ msgstr ""
179
+
180
+ #: ../tadv_admin.php:490
181
+ #, fuzzy
182
  msgid ""
183
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
184
+ "in the Text editor."
185
  msgstr ""
186
  "Przestań usuwać tagi &lt;p&gt; i &lt;br /&gt; podczas zapisywania i pokazuj "
187
  "je w edytorze Tekstowym."
188
 
189
+ #: ../tadv_admin.php:491
190
  msgid ""
191
  "This will make it possible to use more advanced coding in the HTML editor "
192
  "without the back-end filtering affecting it much."
194
  "Umożliwi to zaawansowaną edycję w edytorze HTMLa bez szczególnego "
195
  "filtrowania backendu zbyt zmieniającego pisany kod."
196
 
197
+ #: ../tadv_admin.php:492
198
  msgid ""
199
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
200
  "before enabling it permanently."
202
  "Może to jednak zachowywać się nieprzewidzianie w rzadkich przypadkach, więc "
203
  "przetestuj tą opcję dogłębnie przed korzystaniem z niej na stałe."
204
 
205
+ #: ../tadv_admin.php:493
206
  msgid ""
207
  "Line breaks in the HTML editor would still affect the output, in particular "
208
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
212
  "pustych linii, nowych linii wewnątrz tagów HTMLa ani wielu tagów &lt;br /"
213
  "&gt;."
214
 
215
+ #: ../tadv_admin.php:498
 
 
 
 
 
 
 
 
 
 
 
 
216
  msgid "Enable pasting of image source"
217
  msgstr "Włącz wklejanie źródeł obrazów."
218
 
219
+ #: ../tadv_admin.php:500
220
  msgid ""
221
  "Works only in Firefox and Safari. These browsers support pasting of images "
222
  "directly in the editor and convert them to base64 encoded text."
225
  "obrazów bezpośrednio w edytorze i ich konwersję do zakodowanego tekstu "
226
  "base64."
227
 
228
+ #: ../tadv_admin.php:501
229
  msgid ""
230
  "This is not acceptable for larger images like photos or graphics, but may be "
231
  "useful in some cases for very small images like icons, not larger than 2-3KB."
233
  "Nie jest to sensowne dla dużych obrazów jak zdjęcia czy grafiki, ale może "
234
  "być przydatne dla bardzo małych obrazków jak ikony, nie większych niż 2-3KB."
235
 
236
+ #: ../tadv_admin.php:502
237
  msgid "These images will not be available in the Media Library."
238
  msgstr "Obrazy te nie będą dostępne w Bibliotece Mediów."
239
 
240
+ #: ../tadv_admin.php:508
241
  msgid "Administration"
242
  msgstr "Administracja"
243
 
244
+ #: ../tadv_admin.php:510
245
+ msgid "Settings import and export"
246
+ msgstr ""
247
+
248
+ #: ../tadv_admin.php:512
249
  msgid "Export Settings"
250
  msgstr "Eksport Ustawień"
251
 
252
+ #: ../tadv_admin.php:513
253
  msgid "Import Settings"
254
  msgstr "Import Ustawień"
255
 
256
+ #: ../tadv_admin.php:517
257
+ #, fuzzy
258
+ msgid "Enable the editor enhancements for:"
259
+ msgstr "Włącz menu edytora."
260
+
261
+ #: ../tadv_admin.php:520
262
+ msgid "The main editor (Add New and Edit posts and pages)"
263
+ msgstr ""
264
+
265
+ #: ../tadv_admin.php:524
266
+ msgid "Other editors in wp-admin"
267
+ msgstr ""
268
+
269
+ #: ../tadv_admin.php:528
270
+ msgid "Editors on the front end of the site"
271
+ msgstr ""
272
+
273
+ #: ../tadv_admin.php:539
274
  msgid "Restore Default Settings"
275
  msgstr "Przywróć Domyślne Ustawienia"
276
 
277
+ #: ../tadv_admin.php:545
278
  msgid ""
279
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
280
  "button rows. It will only work when it is in the first row and there are "
284
  "trzeci i czwarty rząd przycisków. Będzie działać tylko jeśli jest w "
285
  "pierwszym rzędzie i istnieją przyciski w drugim."
286
 
287
+ #: ../tinymce-advanced.php:221
288
  #, php-format
289
  msgid ""
290
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
293
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
294
  "you are running %2$s. This can make the editor unstable."
295
 
296
+ #: ../tinymce-advanced.php:228
297
  #, php-format
298
  msgid ""
299
  "Please upgrade your WordPress installation or download an <a href=\"%s"
302
  "Zaktualizuj swoją instalację WordPressa lub pobierz <a href=\"%s\">starszą "
303
  "wersję tej wtyczki</a>."
304
 
305
+ #: ../tinymce-advanced.php:703
306
+ #, fuzzy
307
+ msgid "Settings"
308
+ msgstr "Ustawienia Edytora"
309
+
310
+ #~ msgid ""
311
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
312
+ #~ "most buttons are also available as menu items."
313
+ #~ msgstr ""
314
+ #~ "Nowością w TinyMCE 4.0/WordPressie 3.9 jest menu edytora. Gdy włączone, "
315
+ #~ "większość przycisków dostępne jest również jako opcje w menu."
316
+
317
+ #~ msgid "Also enable:"
318
+ #~ msgstr "Włącz również:"
319
+
320
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
321
+ #~ msgstr "Link (zastępuje okno Wstaw/Edytuj Link)"
322
+
323
+ #~ msgid "Import editor-style.css."
324
+ #~ msgstr "Zaimportuj editor-style.css."
325
+
326
+ #~ msgid ""
327
+ #~ "It seems your theme does not support customised styles for the editor."
328
+ #~ msgstr ""
329
+ #~ "Wygląda na to, że twój motyw nie wspiera zmodyfikowanych stylów dla "
330
+ #~ "edytora."
331
+
332
+ #~ msgid ""
333
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
334
+ #~ "it to your theme's directory."
335
+ #~ msgstr ""
336
+ #~ "Możesz utworzyć plik CSS nazwany <code>editor-style.css</code> i "
337
+ #~ "załadować go do katalogu twojego motywu."
338
+
339
+ #~ msgid "After that, enable this setting."
340
+ #~ msgstr "Gdy to zrobisz, aktywuj tą opcję."
341
+
342
+ #~ msgid "Replace font size settings"
343
+ #~ msgstr "Zmień ustawienia rozmiaru czcionki"
344
+
345
  #~ msgid "Markdown typing support (text pattern plugin)"
346
  #~ msgstr "Wsparcie Markdown (wtyczka szablonu tekstu)"
347
 
langs/tinymce-advanced-ru_RU.mo CHANGED
Binary file
langs/tinymce-advanced-ru_RU.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: tinymce-advanced\n"
4
- "POT-Creation-Date: 2015-09-15 10:42-0800\n"
5
- "PO-Revision-Date: 2015-09-15 10:45-0800\n"
6
  "Last-Translator: Vadim Bogaiskov <vadim.bogaiskov@gmail.com>\n"
7
  "Language-Team: Vadim Bogaiskov\n"
8
  "Language: ru\n"
@@ -17,19 +17,19 @@ msgstr ""
17
  "X-Poedit-SourceCharset: UTF-8\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
 
20
- #: ../tadv_admin.php:125
21
  msgid "Default settings restored."
22
  msgstr "Настройки по умолчанию восстановлены"
23
 
24
- #: ../tadv_admin.php:137
25
  msgid "TinyMCE Advanced Settings Export"
26
  msgstr "Экспорт настроек TinyMCE Advanced"
27
 
28
- #: ../tadv_admin.php:141
29
  msgid "The settings are exported as a JSON encoded string."
30
  msgstr "Настройки экспортируется как закодированная JSON-строка."
31
 
32
- #: ../tadv_admin.php:142
33
  msgid ""
34
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
35
  "plain text editor like Notepad."
@@ -37,26 +37,26 @@ msgstr ""
37
  "Пожалуйста скопируйте содержимое и сохраните его в <b>текстовом</b> (.txt) "
38
  "файл, используя текстовый редактор, например Блокнот."
39
 
40
- #: ../tadv_admin.php:143
41
  msgid ""
42
  "It is important that the export is not changed in any way, no spaces, line "
43
  "breaks, etc."
44
  msgstr ""
45
  "Важно, чтобы экспорт никак не изменялся, без пробелов, разрывы строк и т.д."
46
 
47
- #: ../tadv_admin.php:148
48
  msgid "Select All"
49
  msgstr "Выбрать все"
50
 
51
- #: ../tadv_admin.php:150 ../tadv_admin.php:176
52
  msgid "Back to Editor Settings"
53
  msgstr "Назад в настройки редактора"
54
 
55
- #: ../tadv_admin.php:162
56
  msgid "TinyMCE Advanced Settings Import"
57
  msgstr "Импорт настроек TinyMCE Advanced"
58
 
59
- #: ../tadv_admin.php:165
60
  msgid ""
61
  "The settings are imported from a JSON encoded string. Please paste the "
62
  "exported string in the text area below."
@@ -64,48 +64,40 @@ msgstr ""
64
  "Настройки импортируются из закодированной JSON-строки. Пожалуйста вставьте "
65
  "экспортированную строку в текстовом поле ниже."
66
 
67
- #: ../tadv_admin.php:170
68
  msgid "Verify"
69
  msgstr "Проверить"
70
 
71
- #: ../tadv_admin.php:171
72
  msgid "Import"
73
  msgstr "Импорт"
74
 
75
- #: ../tadv_admin.php:201
76
  msgid "Importing of settings failed."
77
  msgstr "Импорт настроек не выполнен."
78
 
79
- #: ../tadv_admin.php:227
80
  msgid "ERROR: All toolbars are empty. Default settings loaded."
81
  msgstr ""
82
  "ОШИБКА: Все панели инструментов пусты. Загружены настройки по умолчанию."
83
 
84
- #: ../tadv_admin.php:239
85
  msgid "Editor Settings"
86
  msgstr "Настройки редактора"
87
 
88
- #: ../tadv_admin.php:246
89
  msgid "Settings saved."
90
  msgstr "Настройки сохранены."
91
 
92
- #: ../tadv_admin.php:255 ../tadv_admin.php:509
93
  msgid "Save Changes"
94
  msgstr "Сохранить изменения"
95
 
96
- #: ../tadv_admin.php:260
97
- msgid ""
98
- "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
99
- "most buttons are also available as menu items."
100
- msgstr ""
101
- "Новое в TinyMCE 4.0/WordPress 3.9 - меню редактора. Когда оно включено, "
102
- "большинство кнопок, также доступны как элементы меню."
103
-
104
- #: ../tadv_admin.php:264
105
  msgid "Enable the editor menu."
106
  msgstr "Включить меню редактора."
107
 
108
- #: ../tadv_admin.php:376
109
  msgid ""
110
  "Drag buttons from the unused buttons below and drop them in the toolbars "
111
  "above, or drag the buttons in the toolbars to rearrange them."
@@ -114,52 +106,64 @@ msgstr ""
114
  "поместите их в панели инструментов наверху, или переместите кнопки в панелях "
115
  "инструментов, чтобы изменить их."
116
 
117
- #: ../tadv_admin.php:379
118
  msgid "Unused Buttons"
119
  msgstr "Неиспользуемые кнопки"
120
 
121
- #: ../tadv_admin.php:420
122
- msgid "Also enable:"
123
- msgstr "Также вкл.:"
 
124
 
125
- #: ../tadv_admin.php:423
126
  msgid "List Style Options"
127
  msgstr "Список настроек стилей"
128
 
129
- #: ../tadv_admin.php:428
 
 
 
 
 
 
130
  msgid "Context Menu"
131
  msgstr "Контекстное меню"
132
 
133
- #: ../tadv_admin.php:433
134
- msgid "Link (replaces the Insert/Edit Link dialog)"
135
- msgstr "Ссылка (заменяет диалог Вставить/Редактировать ссылку)"
136
-
137
- #: ../tadv_admin.php:443
138
- msgid "Advanced Options"
139
- msgstr "Дополнительные параметры"
140
 
141
  #: ../tadv_admin.php:451
142
- msgid "Import editor-style.css."
143
- msgstr "Импорт editor-style.css."
144
 
145
  #: ../tadv_admin.php:453
146
- msgid "It seems your theme does not support customised styles for the editor."
 
 
 
 
 
 
147
  msgstr ""
148
- "Кажется, ваша тема не поддерживает пользовательские стили для редактора."
149
 
150
- #: ../tadv_admin.php:454
151
  msgid ""
152
- "You can create a CSS file named <code>editor-style.css</code> and upload it "
153
- "to your theme's directory."
154
  msgstr ""
155
- "Вы можете создать CSS-файл с именем <code>editor-style.css</code> и "
156
- "загрузите его в папку вашей темы."
 
 
 
 
157
 
158
- #: ../tadv_admin.php:455
159
- msgid "After that, enable this setting."
160
- msgstr "После этого, включить этот параметр."
161
 
162
- #: ../tadv_admin.php:464
163
  msgid ""
164
  "Load the CSS classes used in editor-style.css and replace the Formats button "
165
  "and sub-menu."
@@ -167,15 +171,20 @@ msgstr ""
167
  "Загрузить классы CSS, используемые в editor-style.css и заменить кнопку "
168
  "Форматы и подменю."
169
 
170
- #: ../tadv_admin.php:469
 
 
 
 
 
171
  msgid ""
172
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
173
- "in the Text editor"
174
  msgstr ""
175
  "Остановить удаление тегов &lt;p&gt; и &lt;br /&gt; при сохранении и "
176
  "показать их в текстовом редакторе"
177
 
178
- #: ../tadv_admin.php:471
179
  msgid ""
180
  "This will make it possible to use more advanced coding in the HTML editor "
181
  "without the back-end filtering affecting it much."
@@ -183,7 +192,7 @@ msgstr ""
183
  "Это позволит использовать более передовые методы кодирования в редакторе "
184
  "HTML без фоновой фильтрации, существенно влияющей на него."
185
 
186
- #: ../tadv_admin.php:472
187
  msgid ""
188
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
189
  "before enabling it permanently."
@@ -191,7 +200,7 @@ msgstr ""
191
  "Однако в редких случаях это может вести себя непредсказуемо, поэтому "
192
  "тщательно проверьте его перед включением на постоянно."
193
 
194
- #: ../tadv_admin.php:473
195
  msgid ""
196
  "Line breaks in the HTML editor would still affect the output, in particular "
197
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
@@ -201,23 +210,11 @@ msgstr ""
201
  "частности, не используйте пустые строки, переносы строк внутри тегов HTML "
202
  "или многократные теги &lt;br /&gt;. "
203
 
204
- #: ../tadv_admin.php:479
205
- msgid "Replace font size settings"
206
- msgstr "Заменить настройки размера шрифта "
207
-
208
- #: ../tadv_admin.php:480
209
- msgid ""
210
- "Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px "
211
- "20px 24px 28px 32px 36px."
212
- msgstr ""
213
- "Заменяет настройки размера шрифта одним из доступных: 8px 10px 12px 14px "
214
- "16px 20px 24px 28px 32px 36px."
215
-
216
- #: ../tadv_admin.php:485
217
  msgid "Enable pasting of image source"
218
  msgstr "Включить вставку исходного кода изображения"
219
 
220
- #: ../tadv_admin.php:487
221
  msgid ""
222
  "Works only in Firefox and Safari. These browsers support pasting of images "
223
  "directly in the editor and convert them to base64 encoded text."
@@ -226,7 +223,7 @@ msgstr ""
226
  "изображений непосредственно в редакторе и конвертацию их в base64-"
227
  "закодированный текст."
228
 
229
- #: ../tadv_admin.php:488
230
  msgid ""
231
  "This is not acceptable for larger images like photos or graphics, but may be "
232
  "useful in some cases for very small images like icons, not larger than 2-3KB."
@@ -235,27 +232,48 @@ msgstr ""
235
  "но может быть полезным в некоторых случаях для очень маленьких изображений, "
236
  "таких как иконки размером не более 2-3KB."
237
 
238
- #: ../tadv_admin.php:489
239
  msgid "These images will not be available in the Media Library."
240
  msgstr "Эти изображения не будут доступны в библиотеке мультимедиа."
241
 
242
- #: ../tadv_admin.php:495
243
  msgid "Administration"
244
  msgstr "Управление"
245
 
246
- #: ../tadv_admin.php:497
 
 
 
 
247
  msgid "Export Settings"
248
  msgstr "Экспорт настроек"
249
 
250
- #: ../tadv_admin.php:498
251
  msgid "Import Settings"
252
  msgstr "Импорт настроек"
253
 
254
- #: ../tadv_admin.php:508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
255
  msgid "Restore Default Settings"
256
  msgstr "Восстановить настройки по умолчанию"
257
 
258
- #: ../tadv_admin.php:514
259
  msgid ""
260
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
261
  "button rows. It will only work when it is in the first row and there are "
@@ -265,7 +283,7 @@ msgstr ""
265
  "строки кнопок. Она будет работать только тогда, когда она находится в первой "
266
  "строке и есть кнопки во второй строке."
267
 
268
- #: ../tinymce-advanced.php:180
269
  #, php-format
270
  msgid ""
271
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
@@ -275,7 +293,7 @@ msgstr ""
275
  "Похоже, что Вы работаете на %2$s. Это может сделать работу редактора "
276
  "неустойчивой."
277
 
278
- #: ../tinymce-advanced.php:187
279
  #, php-format
280
  msgid ""
281
  "Please upgrade your WordPress installation or download an <a href=\"%s"
@@ -284,6 +302,45 @@ msgstr ""
284
  "Пожалуйста, обновите Ваш WordPress или скачайте <a href=\"%s\">старую версию "
285
  "плагина</a> ."
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  #~ msgid ""
288
  #~ "This plugin requires WordPress version 4.0 or newer. Please upgrade your "
289
  #~ "WordPress installation or download an %solder version of the plugin%s."
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: tinymce-advanced\n"
4
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
5
+ "PO-Revision-Date: 2016-03-17 12:24-0800\n"
6
  "Last-Translator: Vadim Bogaiskov <vadim.bogaiskov@gmail.com>\n"
7
  "Language-Team: Vadim Bogaiskov\n"
8
  "Language: ru\n"
17
  "X-Poedit-SourceCharset: UTF-8\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
 
20
+ #: ../tadv_admin.php:140
21
  msgid "Default settings restored."
22
  msgstr "Настройки по умолчанию восстановлены"
23
 
24
+ #: ../tadv_admin.php:152
25
  msgid "TinyMCE Advanced Settings Export"
26
  msgstr "Экспорт настроек TinyMCE Advanced"
27
 
28
+ #: ../tadv_admin.php:156
29
  msgid "The settings are exported as a JSON encoded string."
30
  msgstr "Настройки экспортируется как закодированная JSON-строка."
31
 
32
+ #: ../tadv_admin.php:157
33
  msgid ""
34
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
35
  "plain text editor like Notepad."
37
  "Пожалуйста скопируйте содержимое и сохраните его в <b>текстовом</b> (.txt) "
38
  "файл, используя текстовый редактор, например Блокнот."
39
 
40
+ #: ../tadv_admin.php:158
41
  msgid ""
42
  "It is important that the export is not changed in any way, no spaces, line "
43
  "breaks, etc."
44
  msgstr ""
45
  "Важно, чтобы экспорт никак не изменялся, без пробелов, разрывы строк и т.д."
46
 
47
+ #: ../tadv_admin.php:163
48
  msgid "Select All"
49
  msgstr "Выбрать все"
50
 
51
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
52
  msgid "Back to Editor Settings"
53
  msgstr "Назад в настройки редактора"
54
 
55
+ #: ../tadv_admin.php:177
56
  msgid "TinyMCE Advanced Settings Import"
57
  msgstr "Импорт настроек TinyMCE Advanced"
58
 
59
+ #: ../tadv_admin.php:180
60
  msgid ""
61
  "The settings are imported from a JSON encoded string. Please paste the "
62
  "exported string in the text area below."
64
  "Настройки импортируются из закодированной JSON-строки. Пожалуйста вставьте "
65
  "экспортированную строку в текстовом поле ниже."
66
 
67
+ #: ../tadv_admin.php:185
68
  msgid "Verify"
69
  msgstr "Проверить"
70
 
71
+ #: ../tadv_admin.php:186
72
  msgid "Import"
73
  msgstr "Импорт"
74
 
75
+ #: ../tadv_admin.php:216
76
  msgid "Importing of settings failed."
77
  msgstr "Импорт настроек не выполнен."
78
 
79
+ #: ../tadv_admin.php:242
80
  msgid "ERROR: All toolbars are empty. Default settings loaded."
81
  msgstr ""
82
  "ОШИБКА: Все панели инструментов пусты. Загружены настройки по умолчанию."
83
 
84
+ #: ../tadv_admin.php:254
85
  msgid "Editor Settings"
86
  msgstr "Настройки редактора"
87
 
88
+ #: ../tadv_admin.php:261
89
  msgid "Settings saved."
90
  msgstr "Настройки сохранены."
91
 
92
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
93
  msgid "Save Changes"
94
  msgstr "Сохранить изменения"
95
 
96
+ #: ../tadv_admin.php:277
 
 
 
 
 
 
 
 
97
  msgid "Enable the editor menu."
98
  msgstr "Включить меню редактора."
99
 
100
+ #: ../tadv_admin.php:389
101
  msgid ""
102
  "Drag buttons from the unused buttons below and drop them in the toolbars "
103
  "above, or drag the buttons in the toolbars to rearrange them."
106
  "поместите их в панели инструментов наверху, или переместите кнопки в панелях "
107
  "инструментов, чтобы изменить их."
108
 
109
+ #: ../tadv_admin.php:392
110
  msgid "Unused Buttons"
111
  msgstr "Неиспользуемые кнопки"
112
 
113
+ #: ../tadv_admin.php:434
114
+ #, fuzzy
115
+ msgid "Options"
116
+ msgstr "Дополнительные параметры"
117
 
118
+ #: ../tadv_admin.php:437
119
  msgid "List Style Options"
120
  msgstr "Список настроек стилей"
121
 
122
+ #: ../tadv_admin.php:439
123
+ msgid ""
124
+ "Enable more list options: upper or lower case letters for ordered lists, "
125
+ "disk or square for unordered lists, etc."
126
+ msgstr ""
127
+
128
+ #: ../tadv_admin.php:444
129
  msgid "Context Menu"
130
  msgstr "Контекстное меню"
131
 
132
+ #: ../tadv_admin.php:446
133
+ msgid "Replace the browser context (right-click) menu."
134
+ msgstr ""
 
 
 
 
135
 
136
  #: ../tadv_admin.php:451
137
+ msgid "Alternative link dialog"
138
+ msgstr ""
139
 
140
  #: ../tadv_admin.php:453
141
+ msgid ""
142
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
143
+ "the link menu item."
144
+ msgstr ""
145
+
146
+ #: ../tadv_admin.php:458
147
+ msgid "Font sizes"
148
  msgstr ""
 
149
 
150
+ #: ../tadv_admin.php:459
151
  msgid ""
152
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
153
+ "20px 24px 28px 32px 36px 48px 60px."
154
  msgstr ""
155
+ "Заменяет настройки размера шрифта одним из доступных: 8px 10px 12px 14px "
156
+ "16px 20px 24px 28px 32px 36px 48px 60px."
157
+
158
+ #: ../tadv_admin.php:467
159
+ msgid "Advanced Options"
160
+ msgstr "Дополнительные параметры"
161
 
162
+ #: ../tadv_admin.php:476
163
+ msgid "Create CSS classes menu"
164
+ msgstr ""
165
 
166
+ #: ../tadv_admin.php:478
167
  msgid ""
168
  "Load the CSS classes used in editor-style.css and replace the Formats button "
169
  "and sub-menu."
171
  "Загрузить классы CSS, используемые в editor-style.css и заменить кнопку "
172
  "Форматы и подменю."
173
 
174
+ #: ../tadv_admin.php:488
175
+ msgid "Keep paragraph tags"
176
+ msgstr ""
177
+
178
+ #: ../tadv_admin.php:490
179
+ #, fuzzy
180
  msgid ""
181
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
182
+ "in the Text editor."
183
  msgstr ""
184
  "Остановить удаление тегов &lt;p&gt; и &lt;br /&gt; при сохранении и "
185
  "показать их в текстовом редакторе"
186
 
187
+ #: ../tadv_admin.php:491
188
  msgid ""
189
  "This will make it possible to use more advanced coding in the HTML editor "
190
  "without the back-end filtering affecting it much."
192
  "Это позволит использовать более передовые методы кодирования в редакторе "
193
  "HTML без фоновой фильтрации, существенно влияющей на него."
194
 
195
+ #: ../tadv_admin.php:492
196
  msgid ""
197
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
198
  "before enabling it permanently."
200
  "Однако в редких случаях это может вести себя непредсказуемо, поэтому "
201
  "тщательно проверьте его перед включением на постоянно."
202
 
203
+ #: ../tadv_admin.php:493
204
  msgid ""
205
  "Line breaks in the HTML editor would still affect the output, in particular "
206
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
210
  "частности, не используйте пустые строки, переносы строк внутри тегов HTML "
211
  "или многократные теги &lt;br /&gt;. "
212
 
213
+ #: ../tadv_admin.php:498
 
 
 
 
 
 
 
 
 
 
 
 
214
  msgid "Enable pasting of image source"
215
  msgstr "Включить вставку исходного кода изображения"
216
 
217
+ #: ../tadv_admin.php:500
218
  msgid ""
219
  "Works only in Firefox and Safari. These browsers support pasting of images "
220
  "directly in the editor and convert them to base64 encoded text."
223
  "изображений непосредственно в редакторе и конвертацию их в base64-"
224
  "закодированный текст."
225
 
226
+ #: ../tadv_admin.php:501
227
  msgid ""
228
  "This is not acceptable for larger images like photos or graphics, but may be "
229
  "useful in some cases for very small images like icons, not larger than 2-3KB."
232
  "но может быть полезным в некоторых случаях для очень маленьких изображений, "
233
  "таких как иконки размером не более 2-3KB."
234
 
235
+ #: ../tadv_admin.php:502
236
  msgid "These images will not be available in the Media Library."
237
  msgstr "Эти изображения не будут доступны в библиотеке мультимедиа."
238
 
239
+ #: ../tadv_admin.php:508
240
  msgid "Administration"
241
  msgstr "Управление"
242
 
243
+ #: ../tadv_admin.php:510
244
+ msgid "Settings import and export"
245
+ msgstr ""
246
+
247
+ #: ../tadv_admin.php:512
248
  msgid "Export Settings"
249
  msgstr "Экспорт настроек"
250
 
251
+ #: ../tadv_admin.php:513
252
  msgid "Import Settings"
253
  msgstr "Импорт настроек"
254
 
255
+ #: ../tadv_admin.php:517
256
+ #, fuzzy
257
+ msgid "Enable the editor enhancements for:"
258
+ msgstr "Включить меню редактора."
259
+
260
+ #: ../tadv_admin.php:520
261
+ msgid "The main editor (Add New and Edit posts and pages)"
262
+ msgstr ""
263
+
264
+ #: ../tadv_admin.php:524
265
+ msgid "Other editors in wp-admin"
266
+ msgstr ""
267
+
268
+ #: ../tadv_admin.php:528
269
+ msgid "Editors on the front end of the site"
270
+ msgstr ""
271
+
272
+ #: ../tadv_admin.php:539
273
  msgid "Restore Default Settings"
274
  msgstr "Восстановить настройки по умолчанию"
275
 
276
+ #: ../tadv_admin.php:545
277
  msgid ""
278
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
279
  "button rows. It will only work when it is in the first row and there are "
283
  "строки кнопок. Она будет работать только тогда, когда она находится в первой "
284
  "строке и есть кнопки во второй строке."
285
 
286
+ #: ../tinymce-advanced.php:221
287
  #, php-format
288
  msgid ""
289
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
293
  "Похоже, что Вы работаете на %2$s. Это может сделать работу редактора "
294
  "неустойчивой."
295
 
296
+ #: ../tinymce-advanced.php:228
297
  #, php-format
298
  msgid ""
299
  "Please upgrade your WordPress installation or download an <a href=\"%s"
302
  "Пожалуйста, обновите Ваш WordPress или скачайте <a href=\"%s\">старую версию "
303
  "плагина</a> ."
304
 
305
+ #: ../tinymce-advanced.php:703
306
+ #, fuzzy
307
+ msgid "Settings"
308
+ msgstr "Настройки редактора"
309
+
310
+ #~ msgid ""
311
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
312
+ #~ "most buttons are also available as menu items."
313
+ #~ msgstr ""
314
+ #~ "Новое в TinyMCE 4.0/WordPress 3.9 - меню редактора. Когда оно включено, "
315
+ #~ "большинство кнопок, также доступны как элементы меню."
316
+
317
+ #~ msgid "Also enable:"
318
+ #~ msgstr "Также вкл.:"
319
+
320
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
321
+ #~ msgstr "Ссылка (заменяет диалог Вставить/Редактировать ссылку)"
322
+
323
+ #~ msgid "Import editor-style.css."
324
+ #~ msgstr "Импорт editor-style.css."
325
+
326
+ #~ msgid ""
327
+ #~ "It seems your theme does not support customised styles for the editor."
328
+ #~ msgstr ""
329
+ #~ "Кажется, ваша тема не поддерживает пользовательские стили для редактора."
330
+
331
+ #~ msgid ""
332
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
333
+ #~ "it to your theme's directory."
334
+ #~ msgstr ""
335
+ #~ "Вы можете создать CSS-файл с именем <code>editor-style.css</code> и "
336
+ #~ "загрузите его в папку вашей темы."
337
+
338
+ #~ msgid "After that, enable this setting."
339
+ #~ msgstr "После этого, включить этот параметр."
340
+
341
+ #~ msgid "Replace font size settings"
342
+ #~ msgstr "Заменить настройки размера шрифта "
343
+
344
  #~ msgid ""
345
  #~ "This plugin requires WordPress version 4.0 or newer. Please upgrade your "
346
  #~ "WordPress installation or download an %solder version of the plugin%s."
langs/tinymce-advanced-sv_SE.mo CHANGED
Binary file
langs/tinymce-advanced-sv_SE.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
- "POT-Creation-Date: 2015-09-15 10:42-0800\n"
5
- "PO-Revision-Date: 2015-09-15 10:45-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: sv_SE\n"
@@ -18,19 +18,19 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
- #: ../tadv_admin.php:125
22
  msgid "Default settings restored."
23
  msgstr "Standardinställningar återställda."
24
 
25
- #: ../tadv_admin.php:137
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "TinyMCE Avancerad Inställningsexport"
28
 
29
- #: ../tadv_admin.php:141
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "Inställningarna exporteras som en JSON-kodad sträng."
32
 
33
- #: ../tadv_admin.php:142
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
@@ -38,7 +38,7 @@ msgstr ""
38
  "Vänligen kopiera innehållet och spara det i en <b>text</b>-fil (.txt), genom "
39
  "en ren texteditor såsom Anteckningar."
40
 
41
- #: ../tadv_admin.php:143
42
  msgid ""
43
  "It is important that the export is not changed in any way, no spaces, line "
44
  "breaks, etc."
@@ -46,19 +46,19 @@ msgstr ""
46
  "Det är viktigt att exporten inte ändras på något sätt, inga mellanrum eller "
47
  "radbrytningar etc."
48
 
49
- #: ../tadv_admin.php:148
50
  msgid "Select All"
51
  msgstr "Välj allt"
52
 
53
- #: ../tadv_admin.php:150 ../tadv_admin.php:176
54
  msgid "Back to Editor Settings"
55
  msgstr "Tillbaka till redigerarinställningar"
56
 
57
- #: ../tadv_admin.php:162
58
  msgid "TinyMCE Advanced Settings Import"
59
  msgstr "TinyMCE Avancerad Inställningsimport"
60
 
61
- #: ../tadv_admin.php:165
62
  msgid ""
63
  "The settings are imported from a JSON encoded string. Please paste the "
64
  "exported string in the text area below."
@@ -66,47 +66,39 @@ msgstr ""
66
  "Inställningarna importeras från en JSON-kodad sträng. Vänligen klistra in "
67
  "den exporterade strängen i textfältet nedan."
68
 
69
- #: ../tadv_admin.php:170
70
  msgid "Verify"
71
  msgstr "Jämför"
72
 
73
- #: ../tadv_admin.php:171
74
  msgid "Import"
75
  msgstr "Importera"
76
 
77
- #: ../tadv_admin.php:201
78
  msgid "Importing of settings failed."
79
  msgstr "Import av inställningar misslyckades."
80
 
81
- #: ../tadv_admin.php:227
82
  msgid "ERROR: All toolbars are empty. Default settings loaded."
83
  msgstr "FEL: Alla verktygsfält är tomma. Ursprungsinställningar inladdade."
84
 
85
- #: ../tadv_admin.php:239
86
  msgid "Editor Settings"
87
  msgstr "Redigerarinställningar"
88
 
89
- #: ../tadv_admin.php:246
90
  msgid "Settings saved."
91
  msgstr "Inställningar sparade."
92
 
93
- #: ../tadv_admin.php:255 ../tadv_admin.php:509
94
  msgid "Save Changes"
95
  msgstr "Spara ändringar"
96
 
97
- #: ../tadv_admin.php:260
98
- msgid ""
99
- "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
100
- "most buttons are also available as menu items."
101
- msgstr ""
102
- "Nytt i TinyMCE 4.0/WordPress 3.9 är redigerarmenyn. När den är aktiverad "
103
- "blir de flesta knapparna också tillgängliga som menyval."
104
-
105
- #: ../tadv_admin.php:264
106
  msgid "Enable the editor menu."
107
  msgstr "Aktivera redigerarmenyn."
108
 
109
- #: ../tadv_admin.php:376
110
  msgid ""
111
  "Drag buttons from the unused buttons below and drop them in the toolbars "
112
  "above, or drag the buttons in the toolbars to rearrange them."
@@ -114,52 +106,64 @@ msgstr ""
114
  "Dra knappar från de oanvända knapparna nedan och släpp dem i verktygsfälten "
115
  "ovan, eller dra knapparna i verktygsfältet för att arrangera om dem."
116
 
117
- #: ../tadv_admin.php:379
118
  msgid "Unused Buttons"
119
  msgstr "Oanvända knappar"
120
 
121
- #: ../tadv_admin.php:420
122
- msgid "Also enable:"
123
- msgstr "Aktivera också:"
 
124
 
125
- #: ../tadv_admin.php:423
126
  msgid "List Style Options"
127
  msgstr "Liststil-tillval"
128
 
129
- #: ../tadv_admin.php:428
 
 
 
 
 
 
130
  msgid "Context Menu"
131
  msgstr "Sammanhangsmeny"
132
 
133
- #: ../tadv_admin.php:433
134
- msgid "Link (replaces the Insert/Edit Link dialog)"
135
- msgstr "Länk (ersätter dialogfönstret Infoga/redigera länk)"
136
-
137
- #: ../tadv_admin.php:443
138
- msgid "Advanced Options"
139
- msgstr "Avancerade tillval"
140
 
141
  #: ../tadv_admin.php:451
142
- msgid "Import editor-style.css."
143
- msgstr "Importera editor-style.css."
144
 
145
  #: ../tadv_admin.php:453
146
- msgid "It seems your theme does not support customised styles for the editor."
 
 
 
 
 
 
147
  msgstr ""
148
- "Det verkar som att ditt tema inte stöder anpassade stilar för redigeraren."
149
 
150
- #: ../tadv_admin.php:454
151
  msgid ""
152
- "You can create a CSS file named <code>editor-style.css</code> and upload it "
153
- "to your theme's directory."
154
  msgstr ""
155
- "Du kan skapa en CSS-fil namngiven <code>editor-style.css</code> och ladda "
156
- "upp till ditt temas mapp."
 
 
 
 
157
 
158
- #: ../tadv_admin.php:455
159
- msgid "After that, enable this setting."
160
- msgstr "Efteråt, aktivera denna inställning."
161
 
162
- #: ../tadv_admin.php:464
163
  msgid ""
164
  "Load the CSS classes used in editor-style.css and replace the Formats button "
165
  "and sub-menu."
@@ -167,15 +171,20 @@ msgstr ""
167
  "Ladda CSS-klasser från editor-style.css och ersätt Formaterings-knapp och "
168
  "undermeny."
169
 
170
- #: ../tadv_admin.php:469
 
 
 
 
 
171
  msgid ""
172
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
173
- "in the Text editor"
174
  msgstr ""
175
  "Sluta ta bort &lt;p&gt; och &lt;br /&gt;-taggar vid sparande och visa dem i "
176
  "textredigeraren"
177
 
178
- #: ../tadv_admin.php:471
179
  msgid ""
180
  "This will make it possible to use more advanced coding in the HTML editor "
181
  "without the back-end filtering affecting it much."
@@ -183,7 +192,7 @@ msgstr ""
183
  "Detta möjliggör mer avancerad kodning i HTML-redigeraren utan att backend-"
184
  "filtrering påverkar så mycket."
185
 
186
- #: ../tadv_admin.php:472
187
  msgid ""
188
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
189
  "before enabling it permanently."
@@ -191,7 +200,7 @@ msgstr ""
191
  "Ändå kan det uppföra sig oväntat i särskilda fall, så testa noggrant innan "
192
  "du aktiverar det permanent."
193
 
194
- #: ../tadv_admin.php:473
195
  msgid ""
196
  "Line breaks in the HTML editor would still affect the output, in particular "
197
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
@@ -201,23 +210,11 @@ msgstr ""
201
  "använd i synnerhet inte några tomma rader, radbrytningar inuti HTML-taggar "
202
  "eller flera &lt;br /&gt;-taggar."
203
 
204
- #: ../tadv_admin.php:479
205
- msgid "Replace font size settings"
206
- msgstr "Ersätt textstorleksinställningar"
207
-
208
- #: ../tadv_admin.php:480
209
- msgid ""
210
- "Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px "
211
- "20px 24px 28px 32px 36px."
212
- msgstr ""
213
- "Ersätter storleksinställningen för teckensnitt med: 8px 10px 12px 14px 16px "
214
- "20px 24px 28px 32px 36px."
215
-
216
- #: ../tadv_admin.php:485
217
  msgid "Enable pasting of image source"
218
  msgstr "Aktivera inklistring av bildkällor"
219
 
220
- #: ../tadv_admin.php:487
221
  msgid ""
222
  "Works only in Firefox and Safari. These browsers support pasting of images "
223
  "directly in the editor and convert them to base64 encoded text."
@@ -225,7 +222,7 @@ msgstr ""
225
  "Fungerar enbart med Firefox och Safari. Dessa webbläsare stöder inklistring "
226
  "av bilder direkt i redigeraren och konverterar dem till base64-kodad text."
227
 
228
- #: ../tadv_admin.php:488
229
  msgid ""
230
  "This is not acceptable for larger images like photos or graphics, but may be "
231
  "useful in some cases for very small images like icons, not larger than 2-3KB."
@@ -234,27 +231,48 @@ msgstr ""
234
  "vara användbart i vissa fall för väldigt små bilder såsom ikoner, inte "
235
  "större än 2-3kB."
236
 
237
- #: ../tadv_admin.php:489
238
  msgid "These images will not be available in the Media Library."
239
  msgstr "Dessa bilder kommer inte att finnas i Mediabiblioteket."
240
 
241
- #: ../tadv_admin.php:495
242
  msgid "Administration"
243
  msgstr "Administration"
244
 
245
- #: ../tadv_admin.php:497
 
 
 
 
246
  msgid "Export Settings"
247
  msgstr "Exportera inställningar"
248
 
249
- #: ../tadv_admin.php:498
250
  msgid "Import Settings"
251
  msgstr "Importera inställningar"
252
 
253
- #: ../tadv_admin.php:508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  msgid "Restore Default Settings"
255
  msgstr "Återställ ursprungsinställningar"
256
 
257
- #: ../tadv_admin.php:514
258
  msgid ""
259
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
260
  "button rows. It will only work when it is in the first row and there are "
@@ -264,7 +282,7 @@ msgstr ""
264
  "knappraden. Det fungerar endast när knappen finns på den första raden och "
265
  "det finns knappar i den andra raden."
266
 
267
- #: ../tinymce-advanced.php:180
268
  #, php-format
269
  msgid ""
270
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
@@ -273,7 +291,7 @@ msgstr ""
273
  "Detta tillägg kräver WordPress version %1$s eller nyare. Det verkar som att "
274
  "du kör %2$s. Detta kan göra redigeraren instabil."
275
 
276
- #: ../tinymce-advanced.php:187
277
  #, php-format
278
  msgid ""
279
  "Please upgrade your WordPress installation or download an <a href=\"%s"
@@ -282,6 +300,45 @@ msgstr ""
282
  "Vänligen uppgradera din WordPress-installation eller ladda hem en <a href="
283
  "\"%s\">äldre version av tillägget</a>."
284
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  #~ msgid "Markdown typing support (text pattern plugin)"
286
  #~ msgstr "Stöd för att skriva Markdown (tillägg för textflöde)"
287
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
5
+ "PO-Revision-Date: 2016-03-17 14:16-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: sv_SE\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
+ #: ../tadv_admin.php:140
22
  msgid "Default settings restored."
23
  msgstr "Standardinställningar återställda."
24
 
25
+ #: ../tadv_admin.php:152
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr "TinyMCE Avancerad Inställningsexport"
28
 
29
+ #: ../tadv_admin.php:156
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr "Inställningarna exporteras som en JSON-kodad sträng."
32
 
33
+ #: ../tadv_admin.php:157
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
38
  "Vänligen kopiera innehållet och spara det i en <b>text</b>-fil (.txt), genom "
39
  "en ren texteditor såsom Anteckningar."
40
 
41
+ #: ../tadv_admin.php:158
42
  msgid ""
43
  "It is important that the export is not changed in any way, no spaces, line "
44
  "breaks, etc."
46
  "Det är viktigt att exporten inte ändras på något sätt, inga mellanrum eller "
47
  "radbrytningar etc."
48
 
49
+ #: ../tadv_admin.php:163
50
  msgid "Select All"
51
  msgstr "Välj allt"
52
 
53
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
54
  msgid "Back to Editor Settings"
55
  msgstr "Tillbaka till redigerarinställningar"
56
 
57
+ #: ../tadv_admin.php:177
58
  msgid "TinyMCE Advanced Settings Import"
59
  msgstr "TinyMCE Avancerad Inställningsimport"
60
 
61
+ #: ../tadv_admin.php:180
62
  msgid ""
63
  "The settings are imported from a JSON encoded string. Please paste the "
64
  "exported string in the text area below."
66
  "Inställningarna importeras från en JSON-kodad sträng. Vänligen klistra in "
67
  "den exporterade strängen i textfältet nedan."
68
 
69
+ #: ../tadv_admin.php:185
70
  msgid "Verify"
71
  msgstr "Jämför"
72
 
73
+ #: ../tadv_admin.php:186
74
  msgid "Import"
75
  msgstr "Importera"
76
 
77
+ #: ../tadv_admin.php:216
78
  msgid "Importing of settings failed."
79
  msgstr "Import av inställningar misslyckades."
80
 
81
+ #: ../tadv_admin.php:242
82
  msgid "ERROR: All toolbars are empty. Default settings loaded."
83
  msgstr "FEL: Alla verktygsfält är tomma. Ursprungsinställningar inladdade."
84
 
85
+ #: ../tadv_admin.php:254
86
  msgid "Editor Settings"
87
  msgstr "Redigerarinställningar"
88
 
89
+ #: ../tadv_admin.php:261
90
  msgid "Settings saved."
91
  msgstr "Inställningar sparade."
92
 
93
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
94
  msgid "Save Changes"
95
  msgstr "Spara ändringar"
96
 
97
+ #: ../tadv_admin.php:277
 
 
 
 
 
 
 
 
98
  msgid "Enable the editor menu."
99
  msgstr "Aktivera redigerarmenyn."
100
 
101
+ #: ../tadv_admin.php:389
102
  msgid ""
103
  "Drag buttons from the unused buttons below and drop them in the toolbars "
104
  "above, or drag the buttons in the toolbars to rearrange them."
106
  "Dra knappar från de oanvända knapparna nedan och släpp dem i verktygsfälten "
107
  "ovan, eller dra knapparna i verktygsfältet för att arrangera om dem."
108
 
109
+ #: ../tadv_admin.php:392
110
  msgid "Unused Buttons"
111
  msgstr "Oanvända knappar"
112
 
113
+ #: ../tadv_admin.php:434
114
+ #, fuzzy
115
+ msgid "Options"
116
+ msgstr "Avancerade tillval"
117
 
118
+ #: ../tadv_admin.php:437
119
  msgid "List Style Options"
120
  msgstr "Liststil-tillval"
121
 
122
+ #: ../tadv_admin.php:439
123
+ msgid ""
124
+ "Enable more list options: upper or lower case letters for ordered lists, "
125
+ "disk or square for unordered lists, etc."
126
+ msgstr ""
127
+
128
+ #: ../tadv_admin.php:444
129
  msgid "Context Menu"
130
  msgstr "Sammanhangsmeny"
131
 
132
+ #: ../tadv_admin.php:446
133
+ msgid "Replace the browser context (right-click) menu."
134
+ msgstr ""
 
 
 
 
135
 
136
  #: ../tadv_admin.php:451
137
+ msgid "Alternative link dialog"
138
+ msgstr ""
139
 
140
  #: ../tadv_admin.php:453
141
+ msgid ""
142
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
143
+ "the link menu item."
144
+ msgstr ""
145
+
146
+ #: ../tadv_admin.php:458
147
+ msgid "Font sizes"
148
  msgstr ""
 
149
 
150
+ #: ../tadv_admin.php:459
151
  msgid ""
152
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
153
+ "20px 24px 28px 32px 36px 48px 60px."
154
  msgstr ""
155
+ "Ersätter storleksinställningen för teckensnitt med: 8px 10px 12px 14px 16px "
156
+ "20px 24px 28px 32px 36px 48px 60px."
157
+
158
+ #: ../tadv_admin.php:467
159
+ msgid "Advanced Options"
160
+ msgstr "Avancerade tillval"
161
 
162
+ #: ../tadv_admin.php:476
163
+ msgid "Create CSS classes menu"
164
+ msgstr ""
165
 
166
+ #: ../tadv_admin.php:478
167
  msgid ""
168
  "Load the CSS classes used in editor-style.css and replace the Formats button "
169
  "and sub-menu."
171
  "Ladda CSS-klasser från editor-style.css och ersätt Formaterings-knapp och "
172
  "undermeny."
173
 
174
+ #: ../tadv_admin.php:488
175
+ msgid "Keep paragraph tags"
176
+ msgstr ""
177
+
178
+ #: ../tadv_admin.php:490
179
+ #, fuzzy
180
  msgid ""
181
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
182
+ "in the Text editor."
183
  msgstr ""
184
  "Sluta ta bort &lt;p&gt; och &lt;br /&gt;-taggar vid sparande och visa dem i "
185
  "textredigeraren"
186
 
187
+ #: ../tadv_admin.php:491
188
  msgid ""
189
  "This will make it possible to use more advanced coding in the HTML editor "
190
  "without the back-end filtering affecting it much."
192
  "Detta möjliggör mer avancerad kodning i HTML-redigeraren utan att backend-"
193
  "filtrering påverkar så mycket."
194
 
195
+ #: ../tadv_admin.php:492
196
  msgid ""
197
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
198
  "before enabling it permanently."
200
  "Ändå kan det uppföra sig oväntat i särskilda fall, så testa noggrant innan "
201
  "du aktiverar det permanent."
202
 
203
+ #: ../tadv_admin.php:493
204
  msgid ""
205
  "Line breaks in the HTML editor would still affect the output, in particular "
206
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
210
  "använd i synnerhet inte några tomma rader, radbrytningar inuti HTML-taggar "
211
  "eller flera &lt;br /&gt;-taggar."
212
 
213
+ #: ../tadv_admin.php:498
 
 
 
 
 
 
 
 
 
 
 
 
214
  msgid "Enable pasting of image source"
215
  msgstr "Aktivera inklistring av bildkällor"
216
 
217
+ #: ../tadv_admin.php:500
218
  msgid ""
219
  "Works only in Firefox and Safari. These browsers support pasting of images "
220
  "directly in the editor and convert them to base64 encoded text."
222
  "Fungerar enbart med Firefox och Safari. Dessa webbläsare stöder inklistring "
223
  "av bilder direkt i redigeraren och konverterar dem till base64-kodad text."
224
 
225
+ #: ../tadv_admin.php:501
226
  msgid ""
227
  "This is not acceptable for larger images like photos or graphics, but may be "
228
  "useful in some cases for very small images like icons, not larger than 2-3KB."
231
  "vara användbart i vissa fall för väldigt små bilder såsom ikoner, inte "
232
  "större än 2-3kB."
233
 
234
+ #: ../tadv_admin.php:502
235
  msgid "These images will not be available in the Media Library."
236
  msgstr "Dessa bilder kommer inte att finnas i Mediabiblioteket."
237
 
238
+ #: ../tadv_admin.php:508
239
  msgid "Administration"
240
  msgstr "Administration"
241
 
242
+ #: ../tadv_admin.php:510
243
+ msgid "Settings import and export"
244
+ msgstr ""
245
+
246
+ #: ../tadv_admin.php:512
247
  msgid "Export Settings"
248
  msgstr "Exportera inställningar"
249
 
250
+ #: ../tadv_admin.php:513
251
  msgid "Import Settings"
252
  msgstr "Importera inställningar"
253
 
254
+ #: ../tadv_admin.php:517
255
+ #, fuzzy
256
+ msgid "Enable the editor enhancements for:"
257
+ msgstr "Aktivera redigerarmenyn."
258
+
259
+ #: ../tadv_admin.php:520
260
+ msgid "The main editor (Add New and Edit posts and pages)"
261
+ msgstr ""
262
+
263
+ #: ../tadv_admin.php:524
264
+ msgid "Other editors in wp-admin"
265
+ msgstr ""
266
+
267
+ #: ../tadv_admin.php:528
268
+ msgid "Editors on the front end of the site"
269
+ msgstr ""
270
+
271
+ #: ../tadv_admin.php:539
272
  msgid "Restore Default Settings"
273
  msgstr "Återställ ursprungsinställningar"
274
 
275
+ #: ../tadv_admin.php:545
276
  msgid ""
277
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
278
  "button rows. It will only work when it is in the first row and there are "
282
  "knappraden. Det fungerar endast när knappen finns på den första raden och "
283
  "det finns knappar i den andra raden."
284
 
285
+ #: ../tinymce-advanced.php:221
286
  #, php-format
287
  msgid ""
288
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
291
  "Detta tillägg kräver WordPress version %1$s eller nyare. Det verkar som att "
292
  "du kör %2$s. Detta kan göra redigeraren instabil."
293
 
294
+ #: ../tinymce-advanced.php:228
295
  #, php-format
296
  msgid ""
297
  "Please upgrade your WordPress installation or download an <a href=\"%s"
300
  "Vänligen uppgradera din WordPress-installation eller ladda hem en <a href="
301
  "\"%s\">äldre version av tillägget</a>."
302
 
303
+ #: ../tinymce-advanced.php:703
304
+ #, fuzzy
305
+ msgid "Settings"
306
+ msgstr "Redigerarinställningar"
307
+
308
+ #~ msgid ""
309
+ #~ "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
310
+ #~ "most buttons are also available as menu items."
311
+ #~ msgstr ""
312
+ #~ "Nytt i TinyMCE 4.0/WordPress 3.9 är redigerarmenyn. När den är aktiverad "
313
+ #~ "blir de flesta knapparna också tillgängliga som menyval."
314
+
315
+ #~ msgid "Also enable:"
316
+ #~ msgstr "Aktivera också:"
317
+
318
+ #~ msgid "Link (replaces the Insert/Edit Link dialog)"
319
+ #~ msgstr "Länk (ersätter dialogfönstret Infoga/redigera länk)"
320
+
321
+ #~ msgid "Import editor-style.css."
322
+ #~ msgstr "Importera editor-style.css."
323
+
324
+ #~ msgid ""
325
+ #~ "It seems your theme does not support customised styles for the editor."
326
+ #~ msgstr ""
327
+ #~ "Det verkar som att ditt tema inte stöder anpassade stilar för redigeraren."
328
+
329
+ #~ msgid ""
330
+ #~ "You can create a CSS file named <code>editor-style.css</code> and upload "
331
+ #~ "it to your theme's directory."
332
+ #~ msgstr ""
333
+ #~ "Du kan skapa en CSS-fil namngiven <code>editor-style.css</code> och ladda "
334
+ #~ "upp till ditt temas mapp."
335
+
336
+ #~ msgid "After that, enable this setting."
337
+ #~ msgstr "Efteråt, aktivera denna inställning."
338
+
339
+ #~ msgid "Replace font size settings"
340
+ #~ msgstr "Ersätt textstorleksinställningar"
341
+
342
  #~ msgid "Markdown typing support (text pattern plugin)"
343
  #~ msgstr "Stöd för att skriva Markdown (tillägg för textflöde)"
344
 
langs/tinymce-advanced.pot CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
- "POT-Creation-Date: 2015-09-15 10:42-0800\n"
5
- "PO-Revision-Date: 2015-09-15 10:42-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -18,228 +18,252 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
- #: ../tadv_admin.php:125
22
  msgid "Default settings restored."
23
  msgstr ""
24
 
25
- #: ../tadv_admin.php:137
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr ""
28
 
29
- #: ../tadv_admin.php:141
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr ""
32
 
33
- #: ../tadv_admin.php:142
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
37
  msgstr ""
38
 
39
- #: ../tadv_admin.php:143
40
  msgid ""
41
  "It is important that the export is not changed in any way, no spaces, line "
42
  "breaks, etc."
43
  msgstr ""
44
 
45
- #: ../tadv_admin.php:148
46
  msgid "Select All"
47
  msgstr ""
48
 
49
- #: ../tadv_admin.php:150 ../tadv_admin.php:176
50
  msgid "Back to Editor Settings"
51
  msgstr ""
52
 
53
- #: ../tadv_admin.php:162
54
  msgid "TinyMCE Advanced Settings Import"
55
  msgstr ""
56
 
57
- #: ../tadv_admin.php:165
58
  msgid ""
59
  "The settings are imported from a JSON encoded string. Please paste the "
60
  "exported string in the text area below."
61
  msgstr ""
62
 
63
- #: ../tadv_admin.php:170
64
  msgid "Verify"
65
  msgstr ""
66
 
67
- #: ../tadv_admin.php:171
68
  msgid "Import"
69
  msgstr ""
70
 
71
- #: ../tadv_admin.php:201
72
  msgid "Importing of settings failed."
73
  msgstr ""
74
 
75
- #: ../tadv_admin.php:227
76
  msgid "ERROR: All toolbars are empty. Default settings loaded."
77
  msgstr ""
78
 
79
- #: ../tadv_admin.php:239
80
  msgid "Editor Settings"
81
  msgstr ""
82
 
83
- #: ../tadv_admin.php:246
84
  msgid "Settings saved."
85
  msgstr ""
86
 
87
- #: ../tadv_admin.php:255 ../tadv_admin.php:509
88
  msgid "Save Changes"
89
  msgstr ""
90
 
91
- #: ../tadv_admin.php:260
92
- msgid ""
93
- "New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, "
94
- "most buttons are also available as menu items."
95
- msgstr ""
96
-
97
- #: ../tadv_admin.php:264
98
  msgid "Enable the editor menu."
99
  msgstr ""
100
 
101
- #: ../tadv_admin.php:376
102
  msgid ""
103
  "Drag buttons from the unused buttons below and drop them in the toolbars "
104
  "above, or drag the buttons in the toolbars to rearrange them."
105
  msgstr ""
106
 
107
- #: ../tadv_admin.php:379
108
  msgid "Unused Buttons"
109
  msgstr ""
110
 
111
- #: ../tadv_admin.php:420
112
- msgid "Also enable:"
113
  msgstr ""
114
 
115
- #: ../tadv_admin.php:423
116
  msgid "List Style Options"
117
  msgstr ""
118
 
119
- #: ../tadv_admin.php:428
120
- msgid "Context Menu"
 
 
121
  msgstr ""
122
 
123
- #: ../tadv_admin.php:433
124
- msgid "Link (replaces the Insert/Edit Link dialog)"
125
  msgstr ""
126
 
127
- #: ../tadv_admin.php:443
128
- msgid "Advanced Options"
129
  msgstr ""
130
 
131
  #: ../tadv_admin.php:451
132
- msgid "Import editor-style.css."
133
  msgstr ""
134
 
135
  #: ../tadv_admin.php:453
136
- msgid "It seems your theme does not support customised styles for the editor."
 
 
 
 
 
 
137
  msgstr ""
138
 
139
- #: ../tadv_admin.php:454
140
  msgid ""
141
- "You can create a CSS file named <code>editor-style.css</code> and upload it "
142
- "to your theme's directory."
143
  msgstr ""
144
 
145
- #: ../tadv_admin.php:455
146
- msgid "After that, enable this setting."
 
 
 
 
147
  msgstr ""
148
 
149
- #: ../tadv_admin.php:464
150
  msgid ""
151
  "Load the CSS classes used in editor-style.css and replace the Formats button "
152
  "and sub-menu."
153
  msgstr ""
154
 
155
- #: ../tadv_admin.php:469
 
 
 
 
156
  msgid ""
157
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
158
- "in the Text editor"
159
  msgstr ""
160
 
161
- #: ../tadv_admin.php:471
162
  msgid ""
163
  "This will make it possible to use more advanced coding in the HTML editor "
164
  "without the back-end filtering affecting it much."
165
  msgstr ""
166
 
167
- #: ../tadv_admin.php:472
168
  msgid ""
169
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
170
  "before enabling it permanently."
171
  msgstr ""
172
 
173
- #: ../tadv_admin.php:473
174
  msgid ""
175
  "Line breaks in the HTML editor would still affect the output, in particular "
176
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
177
  "&gt; tags."
178
  msgstr ""
179
 
180
- #: ../tadv_admin.php:479
181
- msgid "Replace font size settings"
182
- msgstr ""
183
-
184
- #: ../tadv_admin.php:480
185
- msgid ""
186
- "Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px "
187
- "20px 24px 28px 32px 36px."
188
- msgstr ""
189
-
190
- #: ../tadv_admin.php:485
191
  msgid "Enable pasting of image source"
192
  msgstr ""
193
 
194
- #: ../tadv_admin.php:487
195
  msgid ""
196
  "Works only in Firefox and Safari. These browsers support pasting of images "
197
  "directly in the editor and convert them to base64 encoded text."
198
  msgstr ""
199
 
200
- #: ../tadv_admin.php:488
201
  msgid ""
202
  "This is not acceptable for larger images like photos or graphics, but may be "
203
  "useful in some cases for very small images like icons, not larger than 2-3KB."
204
  msgstr ""
205
 
206
- #: ../tadv_admin.php:489
207
  msgid "These images will not be available in the Media Library."
208
  msgstr ""
209
 
210
- #: ../tadv_admin.php:495
211
  msgid "Administration"
212
  msgstr ""
213
 
214
- #: ../tadv_admin.php:497
 
 
 
 
215
  msgid "Export Settings"
216
  msgstr ""
217
 
218
- #: ../tadv_admin.php:498
219
  msgid "Import Settings"
220
  msgstr ""
221
 
222
- #: ../tadv_admin.php:508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
  msgid "Restore Default Settings"
224
  msgstr ""
225
 
226
- #: ../tadv_admin.php:514
227
  msgid ""
228
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
229
  "button rows. It will only work when it is in the first row and there are "
230
  "buttons in the second row."
231
  msgstr ""
232
 
233
- #: ../tinymce-advanced.php:180
234
  #, php-format
235
  msgid ""
236
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
237
  "you are running %2$s. This can make the editor unstable."
238
  msgstr ""
239
 
240
- #: ../tinymce-advanced.php:187
241
  #, php-format
242
  msgid ""
243
  "Please upgrade your WordPress installation or download an <a href=\"%s"
244
  "\">older version of the plugin</a>."
245
  msgstr ""
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: TinyMCE Advanced\n"
4
+ "POT-Creation-Date: 2016-03-17 12:21-0800\n"
5
+ "PO-Revision-Date: 2016-03-17 12:21-0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPath-1: ..\n"
20
 
21
+ #: ../tadv_admin.php:140
22
  msgid "Default settings restored."
23
  msgstr ""
24
 
25
+ #: ../tadv_admin.php:152
26
  msgid "TinyMCE Advanced Settings Export"
27
  msgstr ""
28
 
29
+ #: ../tadv_admin.php:156
30
  msgid "The settings are exported as a JSON encoded string."
31
  msgstr ""
32
 
33
+ #: ../tadv_admin.php:157
34
  msgid ""
35
  "Please copy the content and save it in a <b>text</b> (.txt) file, using a "
36
  "plain text editor like Notepad."
37
  msgstr ""
38
 
39
+ #: ../tadv_admin.php:158
40
  msgid ""
41
  "It is important that the export is not changed in any way, no spaces, line "
42
  "breaks, etc."
43
  msgstr ""
44
 
45
+ #: ../tadv_admin.php:163
46
  msgid "Select All"
47
  msgstr ""
48
 
49
+ #: ../tadv_admin.php:165 ../tadv_admin.php:191
50
  msgid "Back to Editor Settings"
51
  msgstr ""
52
 
53
+ #: ../tadv_admin.php:177
54
  msgid "TinyMCE Advanced Settings Import"
55
  msgstr ""
56
 
57
+ #: ../tadv_admin.php:180
58
  msgid ""
59
  "The settings are imported from a JSON encoded string. Please paste the "
60
  "exported string in the text area below."
61
  msgstr ""
62
 
63
+ #: ../tadv_admin.php:185
64
  msgid "Verify"
65
  msgstr ""
66
 
67
+ #: ../tadv_admin.php:186
68
  msgid "Import"
69
  msgstr ""
70
 
71
+ #: ../tadv_admin.php:216
72
  msgid "Importing of settings failed."
73
  msgstr ""
74
 
75
+ #: ../tadv_admin.php:242
76
  msgid "ERROR: All toolbars are empty. Default settings loaded."
77
  msgstr ""
78
 
79
+ #: ../tadv_admin.php:254
80
  msgid "Editor Settings"
81
  msgstr ""
82
 
83
+ #: ../tadv_admin.php:261
84
  msgid "Settings saved."
85
  msgstr ""
86
 
87
+ #: ../tadv_admin.php:270 ../tadv_admin.php:540
88
  msgid "Save Changes"
89
  msgstr ""
90
 
91
+ #: ../tadv_admin.php:277
 
 
 
 
 
 
92
  msgid "Enable the editor menu."
93
  msgstr ""
94
 
95
+ #: ../tadv_admin.php:389
96
  msgid ""
97
  "Drag buttons from the unused buttons below and drop them in the toolbars "
98
  "above, or drag the buttons in the toolbars to rearrange them."
99
  msgstr ""
100
 
101
+ #: ../tadv_admin.php:392
102
  msgid "Unused Buttons"
103
  msgstr ""
104
 
105
+ #: ../tadv_admin.php:434
106
+ msgid "Options"
107
  msgstr ""
108
 
109
+ #: ../tadv_admin.php:437
110
  msgid "List Style Options"
111
  msgstr ""
112
 
113
+ #: ../tadv_admin.php:439
114
+ msgid ""
115
+ "Enable more list options: upper or lower case letters for ordered lists, "
116
+ "disk or square for unordered lists, etc."
117
  msgstr ""
118
 
119
+ #: ../tadv_admin.php:444
120
+ msgid "Context Menu"
121
  msgstr ""
122
 
123
+ #: ../tadv_admin.php:446
124
+ msgid "Replace the browser context (right-click) menu."
125
  msgstr ""
126
 
127
  #: ../tadv_admin.php:451
128
+ msgid "Alternative link dialog"
129
  msgstr ""
130
 
131
  #: ../tadv_admin.php:453
132
+ msgid ""
133
+ "Open the TinyMCE link dialog when using the link button on the toolbar or "
134
+ "the link menu item."
135
+ msgstr ""
136
+
137
+ #: ../tadv_admin.php:458
138
+ msgid "Font sizes"
139
  msgstr ""
140
 
141
+ #: ../tadv_admin.php:459
142
  msgid ""
143
+ "Replace the size setting available for fonts with: 8px 10px 12px 14px 16px "
144
+ "20px 24px 28px 32px 36px 48px 60px."
145
  msgstr ""
146
 
147
+ #: ../tadv_admin.php:467
148
+ msgid "Advanced Options"
149
+ msgstr ""
150
+
151
+ #: ../tadv_admin.php:476
152
+ msgid "Create CSS classes menu"
153
  msgstr ""
154
 
155
+ #: ../tadv_admin.php:478
156
  msgid ""
157
  "Load the CSS classes used in editor-style.css and replace the Formats button "
158
  "and sub-menu."
159
  msgstr ""
160
 
161
+ #: ../tadv_admin.php:488
162
+ msgid "Keep paragraph tags"
163
+ msgstr ""
164
+
165
+ #: ../tadv_admin.php:490
166
  msgid ""
167
  "Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them "
168
+ "in the Text editor."
169
  msgstr ""
170
 
171
+ #: ../tadv_admin.php:491
172
  msgid ""
173
  "This will make it possible to use more advanced coding in the HTML editor "
174
  "without the back-end filtering affecting it much."
175
  msgstr ""
176
 
177
+ #: ../tadv_admin.php:492
178
  msgid ""
179
  "However it may behave unexpectedly in rare cases, so test it thoroughly "
180
  "before enabling it permanently."
181
  msgstr ""
182
 
183
+ #: ../tadv_admin.php:493
184
  msgid ""
185
  "Line breaks in the HTML editor would still affect the output, in particular "
186
  "do not use empty lines, line breaks inside HTML tags or multiple &lt;br /"
187
  "&gt; tags."
188
  msgstr ""
189
 
190
+ #: ../tadv_admin.php:498
 
 
 
 
 
 
 
 
 
 
191
  msgid "Enable pasting of image source"
192
  msgstr ""
193
 
194
+ #: ../tadv_admin.php:500
195
  msgid ""
196
  "Works only in Firefox and Safari. These browsers support pasting of images "
197
  "directly in the editor and convert them to base64 encoded text."
198
  msgstr ""
199
 
200
+ #: ../tadv_admin.php:501
201
  msgid ""
202
  "This is not acceptable for larger images like photos or graphics, but may be "
203
  "useful in some cases for very small images like icons, not larger than 2-3KB."
204
  msgstr ""
205
 
206
+ #: ../tadv_admin.php:502
207
  msgid "These images will not be available in the Media Library."
208
  msgstr ""
209
 
210
+ #: ../tadv_admin.php:508
211
  msgid "Administration"
212
  msgstr ""
213
 
214
+ #: ../tadv_admin.php:510
215
+ msgid "Settings import and export"
216
+ msgstr ""
217
+
218
+ #: ../tadv_admin.php:512
219
  msgid "Export Settings"
220
  msgstr ""
221
 
222
+ #: ../tadv_admin.php:513
223
  msgid "Import Settings"
224
  msgstr ""
225
 
226
+ #: ../tadv_admin.php:517
227
+ msgid "Enable the editor enhancements for:"
228
+ msgstr ""
229
+
230
+ #: ../tadv_admin.php:520
231
+ msgid "The main editor (Add New and Edit posts and pages)"
232
+ msgstr ""
233
+
234
+ #: ../tadv_admin.php:524
235
+ msgid "Other editors in wp-admin"
236
+ msgstr ""
237
+
238
+ #: ../tadv_admin.php:528
239
+ msgid "Editors on the front end of the site"
240
+ msgstr ""
241
+
242
+ #: ../tadv_admin.php:539
243
  msgid "Restore Default Settings"
244
  msgstr ""
245
 
246
+ #: ../tadv_admin.php:545
247
  msgid ""
248
  "The [Toolbar toggle] button shows or hides the second, third, and forth "
249
  "button rows. It will only work when it is in the first row and there are "
250
  "buttons in the second row."
251
  msgstr ""
252
 
253
+ #: ../tinymce-advanced.php:221
254
  #, php-format
255
  msgid ""
256
  "TinyMCE Advanced requires WordPress version %1$s or newer. It appears that "
257
  "you are running %2$s. This can make the editor unstable."
258
  msgstr ""
259
 
260
+ #: ../tinymce-advanced.php:228
261
  #, php-format
262
  msgid ""
263
  "Please upgrade your WordPress installation or download an <a href=\"%s"
264
  "\">older version of the plugin</a>."
265
  msgstr ""
266
+
267
+ #: ../tinymce-advanced.php:703
268
+ msgid "Settings"
269
+ msgstr ""
mce/contextmenu/plugin.min.js CHANGED
@@ -1 +1 @@
1
- tinymce.PluginManager.add("contextmenu",function(a){var b,c=a.settings.contextmenu_never_use_native;a.on("contextmenu",function(d){var e,f=a.getDoc();if(!d.ctrlKey||c){if(d.preventDefault(),tinymce.Env.mac&&tinymce.Env.webkit&&2==d.button&&f.caretRangeFromPoint&&a.selection.setRng(f.caretRangeFromPoint(d.x,d.y)),e=a.settings.contextmenu||"link image inserttable | cell row column deletetable",b)b.show();else{var g=[];tinymce.each(e.split(/[ ,]/),function(b){var c=a.menuItems[b];"|"==b&&(c={text:b}),c&&(c.shortcut="",g.push(c))});for(var h=0;h<g.length;h++)"|"==g[h].text&&(0===h||h==g.length-1)&&g.splice(h,1);b=new tinymce.ui.Menu({items:g,context:"contextmenu",classes:"contextmenu"}).renderTo(),a.on("remove",function(){b.remove(),b=null})}var i={x:d.pageX,y:d.pageY};a.inline||(i=tinymce.DOM.getPos(a.getContentAreaContainer()),i.x+=d.clientX,i.y+=d.clientY),b.moveTo(i.x,i.y)}})});
1
+ tinymce.PluginManager.add("contextmenu",function(a){var b,c=a.settings.contextmenu_never_use_native;a.on("contextmenu",function(d){var e,f=a.getDoc();if(!d.ctrlKey||c){if(d.preventDefault(),tinymce.Env.mac&&tinymce.Env.webkit&&2==d.button&&f.caretRangeFromPoint&&a.selection.setRng(f.caretRangeFromPoint(d.x,d.y)),e=a.settings.contextmenu||"link image inserttable | cell row column deletetable",b)b.show();else{var g=[];tinymce.each(e.split(/[ ,]/),function(b){var c=a.menuItems[b];"|"==b&&(c={text:b}),c&&(c.shortcut="",g.push(c))});for(var h=0;h<g.length;h++)"|"==g[h].text&&(0!==h&&h!=g.length-1||g.splice(h,1));b=new tinymce.ui.Menu({items:g,context:"contextmenu",classes:"contextmenu"}).renderTo(),a.on("remove",function(){b.remove(),b=null})}var i={x:d.pageX,y:d.pageY};a.inline||(i=tinymce.DOM.getPos(a.getContentAreaContainer()),i.x+=d.clientX,i.y+=d.clientY),b.moveTo(i.x,i.y)}})});
mce/importcss/plugin.js CHANGED
@@ -13,6 +13,34 @@
13
  tinymce.PluginManager.add('importcss', function(editor) {
14
  var self = this, each = tinymce.each;
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  function compileFilter(filter) {
17
  if (typeof filter == "string") {
18
  return function(value) {
@@ -33,7 +61,9 @@ tinymce.PluginManager.add('importcss', function(editor) {
33
  function append(styleSheet, imported) {
34
  var href = styleSheet.href, rules;
35
 
36
- if (!href || !fileFilter(href, imported)) {
 
 
37
  return;
38
  }
39
 
13
  tinymce.PluginManager.add('importcss', function(editor) {
14
  var self = this, each = tinymce.each;
15
 
16
+ function removeCacheSuffix(url) {
17
+ var cacheSuffix = tinymce.Env.cacheSuffix;
18
+
19
+ if (typeof url == 'string') {
20
+ url = url.replace('?' + cacheSuffix, '').replace('&' + cacheSuffix, '');
21
+ }
22
+
23
+ return url;
24
+ }
25
+
26
+ function isSkinContentCss(href) {
27
+ var settings = editor.settings, skin = settings.skin !== false ? settings.skin || 'lightgray' : false;
28
+
29
+ if (skin) {
30
+ var skinUrl = settings.skin_url;
31
+
32
+ if (skinUrl) {
33
+ skinUrl = editor.documentBaseURI.toAbsolute(skinUrl);
34
+ } else {
35
+ skinUrl = tinymce.baseURL + '/skins/' + skin;
36
+ }
37
+
38
+ return href === skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css';
39
+ }
40
+
41
+ return false;
42
+ }
43
+
44
  function compileFilter(filter) {
45
  if (typeof filter == "string") {
46
  return function(value) {
61
  function append(styleSheet, imported) {
62
  var href = styleSheet.href, rules;
63
 
64
+ href = removeCacheSuffix(href);
65
+
66
+ if (!href || !fileFilter(href, imported) || isSkinContentCss(href)) {
67
  return;
68
  }
69
 
mce/importcss/plugin.min.js CHANGED
@@ -1 +1 @@
1
- tinymce.PluginManager.add("importcss",function(a){function b(a){return"string"==typeof a?function(b){return-1!==b.indexOf(a)}:a instanceof RegExp?function(b){return a.test(b)}:a}function c(b,c){function d(a,b){var g,h=a.href;if(h&&c(h,b)){f(a.imports,function(a){d(a,!0)});try{g=a.cssRules||a.rules}catch(i){}f(g,function(a){a.styleSheet?d(a.styleSheet,!0):a.selectorText&&f(a.selectorText.split(","),function(a){e.push(tinymce.trim(a))})})}}var e=[],g={};f(a.contentCSS,function(a){g[a]=!0}),c||(c=function(a,b){return b||g[a]});try{f(b.styleSheets,function(a){d(a)})}catch(h){}return e}function d(b){var c,d=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(b);if(d){var e=d[1],f=d[2].substr(1).split(".").join(" "),g=tinymce.makeMap("a,img");return d[1]?(c={title:b},a.schema.getTextBlockElements()[e]?c.block=e:a.schema.getBlockElements()[e]||g[e.toLowerCase()]?c.selector=e:c.inline=e):d[2]&&(c={inline:"span",title:b.substr(1),classes:f}),a.settings.importcss_merge_classes!==!1?c.classes=f:c.attributes={"class":f},c}}var e=this,f=tinymce.each;a.on("renderFormatsMenu",function(g){var h=a.settings,i={},j=h.importcss_selector_converter||d,k=b(h.importcss_selector_filter),l=g.control;a.settings.importcss_append||l.items().remove();var m=[];tinymce.each(h.importcss_groups,function(a){a=tinymce.extend({},a),a.filter=b(a.filter),m.push(a)}),f(c(g.doc||a.getDoc(),b(h.importcss_file_filter)),function(b){if(-1===b.indexOf(".mce-")&&!i[b]&&(!k||k(b))){var c,d=j.call(e,b);if(d){var f=d.name||tinymce.DOM.uniqueId();if(m)for(var g=0;g<m.length;g++)if(!m[g].filter||m[g].filter(b)){m[g].item||(m[g].item={text:m[g].title,menu:[]}),c=m[g].item.menu;break}a.formatter.register(f,d);var h=tinymce.extend({},l.settings.itemDefaults,{text:d.title,format:f});c?c.push(h):l.add(h)}i[b]=!0}}),f(m,function(a){l.add(a.item)}),g.control.renderNew()}),e.convertSelectorToFormat=d});
1
+ tinymce.PluginManager.add("importcss",function(a){function b(a){var b=tinymce.Env.cacheSuffix;return"string"==typeof a&&(a=a.replace("?"+b,"").replace("&"+b,"")),a}function c(b){var c=a.settings,d=c.skin!==!1?c.skin||"lightgray":!1;if(d){var e=c.skin_url;return e=e?a.documentBaseURI.toAbsolute(e):tinymce.baseURL+"/skins/"+d,b===e+"/content"+(a.inline?".inline":"")+".min.css"}return!1}function d(a){return"string"==typeof a?function(b){return-1!==b.indexOf(a)}:a instanceof RegExp?function(b){return a.test(b)}:a}function e(d,e){function f(a,d){var i,j=a.href;if(j=b(j),j&&e(j,d)&&!c(j)){h(a.imports,function(a){f(a,!0)});try{i=a.cssRules||a.rules}catch(k){}h(i,function(a){a.styleSheet?f(a.styleSheet,!0):a.selectorText&&h(a.selectorText.split(","),function(a){g.push(tinymce.trim(a))})})}}var g=[],i={};h(a.contentCSS,function(a){i[a]=!0}),e||(e=function(a,b){return b||i[a]});try{h(d.styleSheets,function(a){f(a)})}catch(j){}return g}function f(b){var c,d=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(b);if(d){var e=d[1],f=d[2].substr(1).split(".").join(" "),g=tinymce.makeMap("a,img");return d[1]?(c={title:b},a.schema.getTextBlockElements()[e]?c.block=e:a.schema.getBlockElements()[e]||g[e.toLowerCase()]?c.selector=e:c.inline=e):d[2]&&(c={inline:"span",title:b.substr(1),classes:f}),a.settings.importcss_merge_classes!==!1?c.classes=f:c.attributes={"class":f},c}}var g=this,h=tinymce.each;a.on("renderFormatsMenu",function(b){var c=a.settings,i={},j=c.importcss_selector_converter||f,k=d(c.importcss_selector_filter),l=b.control;a.settings.importcss_append||l.items().remove();var m=[];tinymce.each(c.importcss_groups,function(a){a=tinymce.extend({},a),a.filter=d(a.filter),m.push(a)}),h(e(b.doc||a.getDoc(),d(c.importcss_file_filter)),function(b){if(-1===b.indexOf(".mce-")&&!i[b]&&(!k||k(b))){var c,d=j.call(g,b);if(d){var e=d.name||tinymce.DOM.uniqueId();if(m)for(var f=0;f<m.length;f++)if(!m[f].filter||m[f].filter(b)){m[f].item||(m[f].item={text:m[f].title,menu:[]}),c=m[f].item.menu;break}a.formatter.register(e,d);var h=tinymce.extend({},l.settings.itemDefaults,{text:d.title,format:e});c?c.push(h):l.add(h)}i[b]=!0}}),h(m,function(a){l.add(a.item)}),b.control.renderNew()}),g.convertSelectorToFormat=f});
mce/link/plugin.js CHANGED
@@ -287,12 +287,12 @@ tinymce.PluginManager.add('link', function(editor) {
287
  function delayedConfirm(message, callback) {
288
  var rng = editor.selection.getRng();
289
 
290
- window.setTimeout(function() {
291
  editor.windowManager.confirm(message, function(state) {
292
  editor.selection.setRng(rng);
293
  callback(state);
294
  });
295
- }, 0);
296
  }
297
 
298
  function insertLink() {
287
  function delayedConfirm(message, callback) {
288
  var rng = editor.selection.getRng();
289
 
290
+ tinymce.util.Delay.setEditorTimeout(editor, function() {
291
  editor.windowManager.confirm(message, function(state) {
292
  editor.selection.setRng(rng);
293
  callback(state);
294
  });
295
+ });
296
  }
297
 
298
  function insertLink() {
mce/link/plugin.min.js CHANGED
@@ -1 +1 @@
1
- tinymce.PluginManager.add("link",function(a){function b(b){return function(){var c=a.settings.link_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b&&b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){function d(a){var b=l.find("#text");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),l.find("#href").value(a.control.value())}function e(b){var c=[];return tinymce.each(a.dom.select("a:not([href])"),function(a){var d=a.name||a.id;d&&c.push({text:d,value:"#"+d,selected:-1!=b.indexOf("#"+d)})}),c.length?(c.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:c,onselect:d}):void 0}function f(){!k&&0===u.text.length&&m&&this.parent().parent().find("#text")[0].value(this.value())}function g(b){var c=b.meta||{};o&&o.value(a.convertURL(this.value(),"href")),tinymce.each(b.meta,function(a,b){l.find("#"+b).value(a)}),c.text||f.call(this)}function h(a){var b=v.getContent();if(/</.test(b)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(b)||-1==b.indexOf("href=")))return!1;if(a){var c,d=a.childNodes;if(0===d.length)return!1;for(c=d.length-1;c>=0;c--)if(3!=d[c].nodeType)return!1}return!0}var i,j,k,l,m,n,o,p,q,r,s,t,u={},v=a.selection,w=a.dom;i=v.getNode(),j=w.getParent(i,"a[href]"),m=h(),u.text=k=j?j.innerText||j.textContent:v.getContent({format:"text"}),u.href=j?w.getAttrib(j,"href"):"",j?u.target=w.getAttrib(j,"target"):a.settings.default_link_target&&(u.target=a.settings.default_link_target),(t=w.getAttrib(j,"rel"))&&(u.rel=t),(t=w.getAttrib(j,"class"))&&(u["class"]=t),(t=w.getAttrib(j,"title"))&&(u.title=t),m&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){u.text=this.value()}}),b&&(o={type:"listbox",label:"Link list",values:c(b,function(b){b.value=a.convertURL(b.value||b.url,"href")},[{text:"None",value:""}]),onselect:d,value:a.convertURL(u.href,"href"),onPostRender:function(){o=this}}),a.settings.target_list!==!1&&(a.settings.target_list||(a.settings.target_list=[{text:"None",value:""},{text:"New window",value:"_blank"}]),q={name:"target",type:"listbox",label:"Target",values:c(a.settings.target_list)}),a.settings.rel_list&&(p={name:"rel",type:"listbox",label:"Rel",values:c(a.settings.rel_list)}),a.settings.link_class_list&&(r={name:"class",type:"listbox",label:"Class",values:c(a.settings.link_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[b.value]})})})}),a.settings.link_title!==!1&&(s={name:"title",type:"textbox",label:"Title",value:u.title}),l=a.windowManager.open({title:"Insert link",data:u,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:g,onkeyup:f},n,s,e(u.href),o,p,q,r],onSubmit:function(b){function c(b,c){var d=a.selection.getRng();window.setTimeout(function(){a.windowManager.confirm(b,function(b){a.selection.setRng(d),c(b)})},0)}function d(){var b={href:e,target:u.target?u.target:null,rel:u.rel?u.rel:null,"class":u["class"]?u["class"]:null,title:u.title?u.title:null};j?(a.focus(),m&&u.text!=k&&("innerText"in j?j.innerText=u.text:j.textContent=u.text),w.setAttribs(j,b),v.select(j),a.undoManager.add()):m?a.insertContent(w.createHTML("a",b,w.encode(u.text))):a.execCommand("mceInsertLink",!1,b)}var e;return u=tinymce.extend(u,b.data),(e=u.href)?e.indexOf("@")>0&&-1==e.indexOf("//")&&-1==e.indexOf("mailto:")?void c("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(a){a&&(e="mailto:"+e),d()}):a.settings.link_assume_external_targets&&!/^\w+:/i.test(e)||!a.settings.link_assume_external_targets&&/^\s*www[\.|\d\.]/i.test(e)?void c("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){a&&(e="http://"+e),d()}):void d():void a.execCommand("unlink")}})}a.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Meta+K",onclick:b(d),stateSelector:"a[href]"}),a.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),a.addShortcut("Meta+K","",b(d)),a.addCommand("mceLink",b(d)),this.showDialog=d,a.addMenuItem("link",{icon:"link",text:"Insert/edit link",shortcut:"Meta+K",onclick:b(d),stateSelector:"a[href]",context:"insert",prependToContext:!0})});
1
+ tinymce.PluginManager.add("link",function(a){function b(b){return function(){var c=a.settings.link_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b&&b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){function d(a){var b=l.find("#text");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),l.find("#href").value(a.control.value())}function e(b){var c=[];return tinymce.each(a.dom.select("a:not([href])"),function(a){var d=a.name||a.id;d&&c.push({text:d,value:"#"+d,selected:-1!=b.indexOf("#"+d)})}),c.length?(c.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:c,onselect:d}):void 0}function f(){!k&&0===u.text.length&&m&&this.parent().parent().find("#text")[0].value(this.value())}function g(b){var c=b.meta||{};o&&o.value(a.convertURL(this.value(),"href")),tinymce.each(b.meta,function(a,b){l.find("#"+b).value(a)}),c.text||f.call(this)}function h(a){var b=v.getContent();if(/</.test(b)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(b)||-1==b.indexOf("href=")))return!1;if(a){var c,d=a.childNodes;if(0===d.length)return!1;for(c=d.length-1;c>=0;c--)if(3!=d[c].nodeType)return!1}return!0}var i,j,k,l,m,n,o,p,q,r,s,t,u={},v=a.selection,w=a.dom;i=v.getNode(),j=w.getParent(i,"a[href]"),m=h(),u.text=k=j?j.innerText||j.textContent:v.getContent({format:"text"}),u.href=j?w.getAttrib(j,"href"):"",j?u.target=w.getAttrib(j,"target"):a.settings.default_link_target&&(u.target=a.settings.default_link_target),(t=w.getAttrib(j,"rel"))&&(u.rel=t),(t=w.getAttrib(j,"class"))&&(u["class"]=t),(t=w.getAttrib(j,"title"))&&(u.title=t),m&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){u.text=this.value()}}),b&&(o={type:"listbox",label:"Link list",values:c(b,function(b){b.value=a.convertURL(b.value||b.url,"href")},[{text:"None",value:""}]),onselect:d,value:a.convertURL(u.href,"href"),onPostRender:function(){o=this}}),a.settings.target_list!==!1&&(a.settings.target_list||(a.settings.target_list=[{text:"None",value:""},{text:"New window",value:"_blank"}]),q={name:"target",type:"listbox",label:"Target",values:c(a.settings.target_list)}),a.settings.rel_list&&(p={name:"rel",type:"listbox",label:"Rel",values:c(a.settings.rel_list)}),a.settings.link_class_list&&(r={name:"class",type:"listbox",label:"Class",values:c(a.settings.link_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[b.value]})})})}),a.settings.link_title!==!1&&(s={name:"title",type:"textbox",label:"Title",value:u.title}),l=a.windowManager.open({title:"Insert link",data:u,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:g,onkeyup:f},n,s,e(u.href),o,p,q,r],onSubmit:function(b){function c(b,c){var d=a.selection.getRng();tinymce.util.Delay.setEditorTimeout(a,function(){a.windowManager.confirm(b,function(b){a.selection.setRng(d),c(b)})})}function d(){var b={href:e,target:u.target?u.target:null,rel:u.rel?u.rel:null,"class":u["class"]?u["class"]:null,title:u.title?u.title:null};j?(a.focus(),m&&u.text!=k&&("innerText"in j?j.innerText=u.text:j.textContent=u.text),w.setAttribs(j,b),v.select(j),a.undoManager.add()):m?a.insertContent(w.createHTML("a",b,w.encode(u.text))):a.execCommand("mceInsertLink",!1,b)}var e;return u=tinymce.extend(u,b.data),(e=u.href)?e.indexOf("@")>0&&-1==e.indexOf("//")&&-1==e.indexOf("mailto:")?void c("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(a){a&&(e="mailto:"+e),d()}):a.settings.link_assume_external_targets&&!/^\w+:/i.test(e)||!a.settings.link_assume_external_targets&&/^\s*www[\.|\d\.]/i.test(e)?void c("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){a&&(e="http://"+e),d()}):void d():void a.execCommand("unlink")}})}a.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Meta+K",onclick:b(d),stateSelector:"a[href]"}),a.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),a.addShortcut("Meta+K","",b(d)),a.addCommand("mceLink",b(d)),this.showDialog=d,a.addMenuItem("link",{icon:"link",text:"Insert/edit link",shortcut:"Meta+K",onclick:b(d),stateSelector:"a[href]",context:"insert",prependToContext:!0})});
mce/searchreplace/plugin.js CHANGED
@@ -13,6 +13,10 @@
13
  /*global tinymce:true */
14
 
15
  (function() {
 
 
 
 
16
  // Based on work developed by: James Padolsey http://james.padolsey.com
17
  // released under UNLICENSE that is compatible with LGPL
18
  // TODO: Handle contentEditable edgecase:
@@ -62,6 +66,10 @@
62
 
63
  txt = '';
64
 
 
 
 
 
65
  if (blockElementsMap[node.nodeName] || shortEndedElementsMap[node.nodeName]) {
66
  txt += '\n';
67
  }
@@ -81,7 +89,7 @@
81
  matchLocation = matches.shift(), matchIndex = 0;
82
 
83
  out: while (true) {
84
- if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName]) {
85
  atIndex++;
86
  }
87
 
@@ -129,9 +137,11 @@
129
  break; // no more matches
130
  }
131
  } else if ((!hiddenTextElementsMap[curNode.nodeName] || blockElementsMap[curNode.nodeName]) && curNode.firstChild) {
132
- // Move down
133
- curNode = curNode.firstChild;
134
- continue;
 
 
135
  } else if (curNode.nextSibling) {
136
  // Move forward:
137
  curNode = curNode.nextSibling;
@@ -270,13 +280,12 @@
270
  }
271
 
272
  function notFoundAlert() {
273
- tinymce.ui.MessageBox.alert('Could not find the specified string.', function() {
274
  win.find('#find')[0].focus();
275
  });
276
  }
277
 
278
- var win = tinymce.ui.Factory.create({
279
- type: 'window',
280
  layout: "flex",
281
  pack: "center",
282
  align: "center",
@@ -363,7 +372,7 @@
363
  {type: 'checkbox', name: 'words', text: 'Whole words', label: ' '}
364
  ]
365
  }
366
- }).renderTo().reflow();
367
  }
368
 
369
  self.init = function(ed) {
13
  /*global tinymce:true */
14
 
15
  (function() {
16
+ function isContentEditableFalse(node) {
17
+ return node && node.nodeType == 1 && node.contentEditable === "false";
18
+ }
19
+
20
  // Based on work developed by: James Padolsey http://james.padolsey.com
21
  // released under UNLICENSE that is compatible with LGPL
22
  // TODO: Handle contentEditable edgecase:
66
 
67
  txt = '';
68
 
69
+ if (isContentEditableFalse(node)) {
70
+ return '\n';
71
+ }
72
+
73
  if (blockElementsMap[node.nodeName] || shortEndedElementsMap[node.nodeName]) {
74
  txt += '\n';
75
  }
89
  matchLocation = matches.shift(), matchIndex = 0;
90
 
91
  out: while (true) {
92
+ if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName] || isContentEditableFalse(curNode)) {
93
  atIndex++;
94
  }
95
 
137
  break; // no more matches
138
  }
139
  } else if ((!hiddenTextElementsMap[curNode.nodeName] || blockElementsMap[curNode.nodeName]) && curNode.firstChild) {
140
+ if (!isContentEditableFalse(curNode)) {
141
+ // Move down
142
+ curNode = curNode.firstChild;
143
+ continue;
144
+ }
145
  } else if (curNode.nextSibling) {
146
  // Move forward:
147
  curNode = curNode.nextSibling;
280
  }
281
 
282
  function notFoundAlert() {
283
+ editor.windowManager.alert('Could not find the specified string.', function() {
284
  win.find('#find')[0].focus();
285
  });
286
  }
287
 
288
+ var win = editor.windowManager.open({
 
289
  layout: "flex",
290
  pack: "center",
291
  align: "center",
372
  {type: 'checkbox', name: 'words', text: 'Whole words', label: ' '}
373
  ]
374
  }
375
+ });
376
  }
377
 
378
  self.init = function(ed) {
mce/searchreplace/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){function a(a,b,c,d,e){function f(a,b){if(b=b||0,!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var c=a.index;if(b>0){var d=a[b];if(!d)throw"Invalid capture group";c+=a[0].indexOf(d),a[0]=d}return[c,c+a[0].length,[a[0]]]}function g(a){var b;if(3===a.nodeType)return a.data;if(n[a.nodeName]&&!m[a.nodeName])return"";if(b="",(m[a.nodeName]||o[a.nodeName])&&(b+="\n"),a=a.firstChild)do b+=g(a);while(a=a.nextSibling);return b}function h(a,b,c){var d,e,f,g,h=[],i=0,j=a,k=b.shift(),l=0;a:for(;;){if((m[j.nodeName]||o[j.nodeName])&&i++,3===j.nodeType&&(!e&&j.length+i>=k[1]?(e=j,g=k[1]-i):d&&h.push(j),!d&&j.length+i>k[0]&&(d=j,f=k[0]-i),i+=j.length),d&&e){if(j=c({startNode:d,startNodeIndex:f,endNode:e,endNodeIndex:g,innerNodes:h,match:k[2],matchIndex:l}),i-=e.length-g,d=null,e=null,h=[],k=b.shift(),l++,!k)break}else{if((!n[j.nodeName]||m[j.nodeName])&&j.firstChild){j=j.firstChild;continue}if(j.nextSibling){j=j.nextSibling;continue}}for(;;){if(j.nextSibling){j=j.nextSibling;break}if(j.parentNode===a)break a;j=j.parentNode}}}function i(a){var b;if("function"!=typeof a){var c=a.nodeType?a:l.createElement(a);b=function(a,b){var d=c.cloneNode(!1);return d.setAttribute("data-mce-index",b),a&&d.appendChild(l.createTextNode(a)),d}}else b=a;return function(a){var c,d,e,f=a.startNode,g=a.endNode,h=a.matchIndex;if(f===g){var i=f;e=i.parentNode,a.startNodeIndex>0&&(c=l.createTextNode(i.data.substring(0,a.startNodeIndex)),e.insertBefore(c,i));var j=b(a.match[0],h);return e.insertBefore(j,i),a.endNodeIndex<i.length&&(d=l.createTextNode(i.data.substring(a.endNodeIndex)),e.insertBefore(d,i)),i.parentNode.removeChild(i),j}c=l.createTextNode(f.data.substring(0,a.startNodeIndex)),d=l.createTextNode(g.data.substring(a.endNodeIndex));for(var k=b(f.data.substring(a.startNodeIndex),h),m=[],n=0,o=a.innerNodes.length;o>n;++n){var p=a.innerNodes[n],q=b(p.data,h);p.parentNode.replaceChild(q,p),m.push(q)}var r=b(g.data.substring(0,a.endNodeIndex),h);return e=f.parentNode,e.insertBefore(c,f),e.insertBefore(k,f),e.removeChild(f),e=g.parentNode,e.insertBefore(r,g),e.insertBefore(d,g),e.removeChild(g),r}}var j,k,l,m,n,o,p=[],q=0;if(l=b.ownerDocument,m=e.getBlockElements(),n=e.getWhiteSpaceElements(),o=e.getShortEndedElements(),k=g(b)){if(a.global)for(;j=a.exec(k);)p.push(f(j,d));else j=k.match(a),p.push(f(j,d));return p.length&&(q=p.length,h(b,p,i(c))),q}}function b(b){function c(){function a(){f.statusbar.find("#next").disabled(!g(l+1).length),f.statusbar.find("#prev").disabled(!g(l-1).length)}function c(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){f.find("#find")[0].focus()})}var d,e={};d=tinymce.trim(b.selection.getContent({format:"text"}));var f=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){b.focus(),k.done()},onSubmit:function(b){var d,h,i,j;return b.preventDefault(),h=f.find("#case").checked(),j=f.find("#words").checked(),i=f.find("#find").value(),i.length?e.text==i&&e.caseState==h&&e.wholeWord==j?0===g(l+1).length?void c():(k.next(),void a()):(d=k.find(i,h,j),d||c(),f.statusbar.items().slice(1).disabled(0===d),a(),void(e={text:i,caseState:h,wholeWord:j})):(k.done(!1),void f.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){f.submit()}},{text:"Replace",disabled:!0,onclick:function(){k.replace(f.find("#replace").value())||(f.statusbar.items().slice(1).disabled(!0),l=-1,e={})}},{text:"Replace all",disabled:!0,onclick:function(){k.replace(f.find("#replace").value(),!0,!0),f.statusbar.items().slice(1).disabled(!0),e={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){k.prev(),a()}},{text:"Next",name:"next",disabled:!0,onclick:function(){k.next(),a()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:d},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}function d(a){var b=a.getAttribute("data-mce-index");return"number"==typeof b?""+b:b}function e(c){var d,e;return e=b.dom.create("span",{"data-mce-bogus":1}),e.className="mce-match-marker",d=b.getBody(),k.done(!1),a(c,d,e,!1,b.schema)}function f(a){var b=a.parentNode;a.firstChild&&b.insertBefore(a.firstChild,a),a.parentNode.removeChild(a)}function g(a){var c,e=[];if(c=tinymce.toArray(b.getBody().getElementsByTagName("span")),c.length)for(var f=0;f<c.length;f++){var g=d(c[f]);null!==g&&g.length&&g===a.toString()&&e.push(c[f])}return e}function h(a){var c=l,d=b.dom;a=a!==!1,a?c++:c--,d.removeClass(g(l),"mce-match-marker-selected");var e=g(c);return e.length?(d.addClass(g(c),"mce-match-marker-selected"),b.selection.scrollIntoView(e[0]),c):-1}function i(a){var c=b.dom,d=a.parentNode;c.remove(a),c.isEmpty(d)&&c.remove(d)}function j(a){var b=d(a);return null!==b&&b.length>0}var k=this,l=-1;k.init=function(a){a.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:c,separator:"before",context:"edit"}),a.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Meta+F",onclick:c}),a.addCommand("SearchReplace",c),a.shortcuts.add("Meta+F","",c)},k.find=function(a,b,c){a=a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),a=c?"\\b"+a+"\\b":a;var d=e(new RegExp(a,b?"g":"gi"));return d&&(l=-1,l=h(!0)),d},k.next=function(){var a=h(!0);-1!==a&&(l=a)},k.prev=function(){var a=h(!1);-1!==a&&(l=a)},k.replace=function(a,c,e){var h,m,n,o,p,q,r=l;for(c=c!==!1,n=b.getBody(),m=tinymce.grep(tinymce.toArray(n.getElementsByTagName("span")),j),h=0;h<m.length;h++){var s=d(m[h]);if(o=p=parseInt(s,10),e||o===l){for(a.length?(m[h].firstChild.nodeValue=a,f(m[h])):i(m[h]);m[++h];){if(o=parseInt(d(m[h]),10),o!==p){h--;break}i(m[h])}c&&r--}else p>l&&m[h].setAttribute("data-mce-index",p-1)}return b.undoManager.add(),l=r,c?(q=g(r+1).length>0,k.next()):(q=g(r-1).length>0,k.prev()),!e&&q},k.done=function(a){var c,e,g,h;for(e=tinymce.toArray(b.getBody().getElementsByTagName("span")),c=0;c<e.length;c++){var i=d(e[c]);null!==i&&i.length&&(i===l.toString()&&(g||(g=e[c].firstChild),h=e[c].firstChild),f(e[c]))}if(g&&h){var j=b.dom.createRng();return j.setStart(g,0),j.setEnd(h,h.data.length),a!==!1&&b.selection.setRng(j),j}}}tinymce.PluginManager.add("searchreplace",b)}();
1
+ !function(){function a(a){return a&&1==a.nodeType&&"false"===a.contentEditable}function b(b,c,d,e,f){function g(a,b){if(b=b||0,!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var c=a.index;if(b>0){var d=a[b];if(!d)throw"Invalid capture group";c+=a[0].indexOf(d),a[0]=d}return[c,c+a[0].length,[a[0]]]}function h(b){var c;if(3===b.nodeType)return b.data;if(o[b.nodeName]&&!n[b.nodeName])return"";if(c="",a(b))return"\n";if((n[b.nodeName]||p[b.nodeName])&&(c+="\n"),b=b.firstChild)do c+=h(b);while(b=b.nextSibling);return c}function i(b,c,d){var e,f,g,h,i=[],j=0,k=b,l=c.shift(),m=0;a:for(;;){if((n[k.nodeName]||p[k.nodeName]||a(k))&&j++,3===k.nodeType&&(!f&&k.length+j>=l[1]?(f=k,h=l[1]-j):e&&i.push(k),!e&&k.length+j>l[0]&&(e=k,g=l[0]-j),j+=k.length),e&&f){if(k=d({startNode:e,startNodeIndex:g,endNode:f,endNodeIndex:h,innerNodes:i,match:l[2],matchIndex:m}),j-=f.length-h,e=null,f=null,i=[],l=c.shift(),m++,!l)break}else if(o[k.nodeName]&&!n[k.nodeName]||!k.firstChild){if(k.nextSibling){k=k.nextSibling;continue}}else if(!a(k)){k=k.firstChild;continue}for(;;){if(k.nextSibling){k=k.nextSibling;break}if(k.parentNode===b)break a;k=k.parentNode}}}function j(a){var b;if("function"!=typeof a){var c=a.nodeType?a:m.createElement(a);b=function(a,b){var d=c.cloneNode(!1);return d.setAttribute("data-mce-index",b),a&&d.appendChild(m.createTextNode(a)),d}}else b=a;return function(a){var c,d,e,f=a.startNode,g=a.endNode,h=a.matchIndex;if(f===g){var i=f;e=i.parentNode,a.startNodeIndex>0&&(c=m.createTextNode(i.data.substring(0,a.startNodeIndex)),e.insertBefore(c,i));var j=b(a.match[0],h);return e.insertBefore(j,i),a.endNodeIndex<i.length&&(d=m.createTextNode(i.data.substring(a.endNodeIndex)),e.insertBefore(d,i)),i.parentNode.removeChild(i),j}c=m.createTextNode(f.data.substring(0,a.startNodeIndex)),d=m.createTextNode(g.data.substring(a.endNodeIndex));for(var k=b(f.data.substring(a.startNodeIndex),h),l=[],n=0,o=a.innerNodes.length;o>n;++n){var p=a.innerNodes[n],q=b(p.data,h);p.parentNode.replaceChild(q,p),l.push(q)}var r=b(g.data.substring(0,a.endNodeIndex),h);return e=f.parentNode,e.insertBefore(c,f),e.insertBefore(k,f),e.removeChild(f),e=g.parentNode,e.insertBefore(r,g),e.insertBefore(d,g),e.removeChild(g),r}}var k,l,m,n,o,p,q=[],r=0;if(m=c.ownerDocument,n=f.getBlockElements(),o=f.getWhiteSpaceElements(),p=f.getShortEndedElements(),l=h(c)){if(b.global)for(;k=b.exec(l);)q.push(g(k,e));else k=l.match(b),q.push(g(k,e));return q.length&&(r=q.length,i(c,q,j(d))),r}}function c(a){function c(){function b(){f.statusbar.find("#next").disabled(!g(l+1).length),f.statusbar.find("#prev").disabled(!g(l-1).length)}function c(){a.windowManager.alert("Could not find the specified string.",function(){f.find("#find")[0].focus()})}var d,e={};d=tinymce.trim(a.selection.getContent({format:"text"}));var f=a.windowManager.open({layout:"flex",pack:"center",align:"center",onClose:function(){a.focus(),k.done()},onSubmit:function(a){var d,h,i,j;return a.preventDefault(),h=f.find("#case").checked(),j=f.find("#words").checked(),i=f.find("#find").value(),i.length?e.text==i&&e.caseState==h&&e.wholeWord==j?0===g(l+1).length?void c():(k.next(),void b()):(d=k.find(i,h,j),d||c(),f.statusbar.items().slice(1).disabled(0===d),b(),void(e={text:i,caseState:h,wholeWord:j})):(k.done(!1),void f.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){f.submit()}},{text:"Replace",disabled:!0,onclick:function(){k.replace(f.find("#replace").value())||(f.statusbar.items().slice(1).disabled(!0),l=-1,e={})}},{text:"Replace all",disabled:!0,onclick:function(){k.replace(f.find("#replace").value(),!0,!0),f.statusbar.items().slice(1).disabled(!0),e={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){k.prev(),b()}},{text:"Next",name:"next",disabled:!0,onclick:function(){k.next(),b()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:d},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}})}function d(a){var b=a.getAttribute("data-mce-index");return"number"==typeof b?""+b:b}function e(c){var d,e;return e=a.dom.create("span",{"data-mce-bogus":1}),e.className="mce-match-marker",d=a.getBody(),k.done(!1),b(c,d,e,!1,a.schema)}function f(a){var b=a.parentNode;a.firstChild&&b.insertBefore(a.firstChild,a),a.parentNode.removeChild(a)}function g(b){var c,e=[];if(c=tinymce.toArray(a.getBody().getElementsByTagName("span")),c.length)for(var f=0;f<c.length;f++){var g=d(c[f]);null!==g&&g.length&&g===b.toString()&&e.push(c[f])}return e}function h(b){var c=l,d=a.dom;b=b!==!1,b?c++:c--,d.removeClass(g(l),"mce-match-marker-selected");var e=g(c);return e.length?(d.addClass(g(c),"mce-match-marker-selected"),a.selection.scrollIntoView(e[0]),c):-1}function i(b){var c=a.dom,d=b.parentNode;c.remove(b),c.isEmpty(d)&&c.remove(d)}function j(a){var b=d(a);return null!==b&&b.length>0}var k=this,l=-1;k.init=function(a){a.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:c,separator:"before",context:"edit"}),a.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Meta+F",onclick:c}),a.addCommand("SearchReplace",c),a.shortcuts.add("Meta+F","",c)},k.find=function(a,b,c){a=a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),a=c?"\\b"+a+"\\b":a;var d=e(new RegExp(a,b?"g":"gi"));return d&&(l=-1,l=h(!0)),d},k.next=function(){var a=h(!0);-1!==a&&(l=a)},k.prev=function(){var a=h(!1);-1!==a&&(l=a)},k.replace=function(b,c,e){var h,m,n,o,p,q,r=l;for(c=c!==!1,n=a.getBody(),m=tinymce.grep(tinymce.toArray(n.getElementsByTagName("span")),j),h=0;h<m.length;h++){var s=d(m[h]);if(o=p=parseInt(s,10),e||o===l){for(b.length?(m[h].firstChild.nodeValue=b,f(m[h])):i(m[h]);m[++h];){if(o=parseInt(d(m[h]),10),o!==p){h--;break}i(m[h])}c&&r--}else p>l&&m[h].setAttribute("data-mce-index",p-1)}return a.undoManager.add(),l=r,c?(q=g(r+1).length>0,k.next()):(q=g(r-1).length>0,k.prev()),!e&&q},k.done=function(b){var c,e,g,h;for(e=tinymce.toArray(a.getBody().getElementsByTagName("span")),c=0;c<e.length;c++){var i=d(e[c]);null!==i&&i.length&&(i===l.toString()&&(g||(g=e[c].firstChild),h=e[c].firstChild),f(e[c]))}if(g&&h){var j=a.dom.createRng();return j.setStart(g,0),j.setEnd(h,h.data.length),b!==!1&&a.selection.setRng(j),j}}}tinymce.PluginManager.add("searchreplace",c)}();
mce/table/plugin.js CHANGED
@@ -123,8 +123,10 @@ define("tinymce/tableplugin/Utils", [
123
  }
124
 
125
  function paddCell(cell) {
126
- if (!Env.ie || Env.ie > 10) {
127
- cell.innerHTML = '<br data-mce-bogus="1" />';
 
 
128
  }
129
  }
130
 
@@ -161,13 +163,31 @@ define("tinymce/tableplugin/TableGrid", [
161
  ], function(Tools, Env, Utils) {
162
  var each = Tools.each, getSpanVal = Utils.getSpanVal;
163
 
164
- return function(editor, table) {
165
- var grid, gridWidth, startPos, endPos, selectedCell, selection = editor.selection, dom = selection.dom;
 
 
 
 
166
 
167
  function isEditorBody(node) {
168
  return node === editor.getBody();
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  function buildGrid() {
172
  var startY = 0;
173
 
@@ -175,12 +195,13 @@ define("tinymce/tableplugin/TableGrid", [
175
  gridWidth = 0;
176
 
177
  each(['thead', 'tbody', 'tfoot'], function(part) {
178
- var rows = dom.select('> ' + part + ' tr', table);
 
179
 
180
  each(rows, function(tr, y) {
181
  y += startY;
182
 
183
- each(dom.select('> td, > th', tr), function(td, x) {
184
  var x2, y2, rowspan, colspan;
185
 
186
  // Skip over existing cells produced by rowspan
@@ -219,6 +240,22 @@ define("tinymce/tableplugin/TableGrid", [
219
  });
220
  }
221
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
  function cloneNode(node, children) {
223
  node = node.cloneNode(children);
224
  node.removeAttribute('id');
@@ -248,7 +285,7 @@ define("tinymce/tableplugin/TableGrid", [
248
  }
249
 
250
  function isCellSelected(cell) {
251
- return cell && (dom.hasClass(cell.elm, 'mce-item-selected') || cell == selectedCell);
252
  }
253
 
254
  function getSelectedRows() {
@@ -256,7 +293,7 @@ define("tinymce/tableplugin/TableGrid", [
256
 
257
  each(table.rows, function(row) {
258
  each(row.cells, function(cell) {
259
- if (dom.hasClass(cell, 'mce-item-selected') || (selectedCell && cell == selectedCell.elm)) {
260
  rows.push(row);
261
  return false;
262
  }
@@ -314,7 +351,7 @@ define("tinymce/tableplugin/TableGrid", [
314
 
315
  // Add something to the inner node
316
  if (curNode) {
317
- curNode.innerHTML = Env.ie ? '&nbsp;' : '<br data-mce-bogus="1" />';
318
  }
319
 
320
  return false;
@@ -322,6 +359,8 @@ define("tinymce/tableplugin/TableGrid", [
322
  }, 'childNodes');
323
 
324
  cell = cloneNode(cell, false);
 
 
325
  setSpanVal(cell, 'rowSpan', 1);
326
  setSpanVal(cell, 'colSpan', 1);
327
 
@@ -505,7 +544,7 @@ define("tinymce/tableplugin/TableGrid", [
505
  children = Tools.grep(startCell.childNodes);
506
  count = 0;
507
  each(children, function(node) {
508
- if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1) {
509
  startCell.removeChild(node);
510
  }
511
  });
@@ -530,7 +569,7 @@ define("tinymce/tableplugin/TableGrid", [
530
  if (isCellSelected(cell)) {
531
  cell = cell.elm;
532
  rowElm = cell.parentNode;
533
- newRow = cloneNode(rowElm, false);
534
  posY = y;
535
 
536
  if (before) {
@@ -810,16 +849,20 @@ define("tinymce/tableplugin/TableGrid", [
810
  each(rows, function(row) {
811
  var i, cellCount = row.cells.length, cell;
812
 
 
 
813
  // Remove col/rowspans
814
  for (i = 0; i < cellCount; i++) {
815
  cell = row.cells[i];
 
 
816
  setSpanVal(cell, 'colSpan', 1);
817
  setSpanVal(cell, 'rowSpan', 1);
818
  }
819
 
820
  // Needs more cells
821
  for (i = cellCount; i < targetCellCount; i++) {
822
- row.appendChild(cloneCell(row.cells[cellCount - 1]));
823
  }
824
 
825
  // Needs less cells
@@ -835,8 +878,7 @@ define("tinymce/tableplugin/TableGrid", [
835
  }
836
  });
837
 
838
- // Remove current selection
839
- dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected');
840
  }
841
 
842
  function getPos(target) {
@@ -915,7 +957,7 @@ define("tinymce/tableplugin/TableGrid", [
915
  endX = Math.max(startPos.x, endPos.x);
916
  endY = Math.max(startPos.y, endPos.y);
917
 
918
- // Expand end positon to include spans
919
  maxX = endX;
920
  maxY = endY;
921
 
@@ -965,14 +1007,13 @@ define("tinymce/tableplugin/TableGrid", [
965
  }
966
  }
967
 
968
- // Remove current selection
969
- dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected');
970
 
971
  // Add new selection
972
  for (y = startY; y <= maxY; y++) {
973
  for (x = startX; x <= maxX; x++) {
974
  if (grid[y][x]) {
975
- dom.addClass(grid[y][x].elm, 'mce-item-selected');
976
  }
977
  }
978
  }
@@ -1011,7 +1052,7 @@ define("tinymce/tableplugin/TableGrid", [
1011
 
1012
  buildGrid();
1013
 
1014
- selectedCell = dom.getParent(selection.getStart(true), 'th,td');
1015
 
1016
  if (selectedCell) {
1017
  startPos = getPos(selectedCell);
@@ -1059,10 +1100,11 @@ define("tinymce/tableplugin/TableGrid", [
1059
  */
1060
  define("tinymce/tableplugin/Quirks", [
1061
  "tinymce/util/VK",
 
1062
  "tinymce/Env",
1063
  "tinymce/util/Tools",
1064
  "tinymce/tableplugin/Utils"
1065
- ], function(VK, Env, Tools, Utils) {
1066
  var each = Tools.each, getSpanVal = Utils.getSpanVal;
1067
 
1068
  return function(editor) {
@@ -1211,7 +1253,7 @@ define("tinymce/tableplugin/Quirks", [
1211
 
1212
  if (isVerticalMovement() && isInTable(editor)) {
1213
  var preBrowserNode = editor.selection.getNode();
1214
- setTimeout(function() {
1215
  if (shouldFixCaret(preBrowserNode)) {
1216
  handle(!e.shiftKey && key === VK.UP, preBrowserNode, e);
1217
  }
@@ -1289,7 +1331,7 @@ define("tinymce/tableplugin/Quirks", [
1289
  editor.getBody(),
1290
  editor.settings.forced_root_block,
1291
  editor.settings.forced_root_block_attrs,
1292
- Env.ie && Env.ie < 11 ? '&nbsp;' : '<br data-mce-bogus="1" />'
1293
  );
1294
  } else {
1295
  editor.dom.add(editor.getBody(), 'br', {'data-mce-bogus': '1'});
@@ -1392,7 +1434,7 @@ define("tinymce/tableplugin/Quirks", [
1392
  if (table) {
1393
  tableCells = editor.dom.select('td,th', table);
1394
  selectedTableCells = Tools.grep(tableCells, function(cell) {
1395
- return editor.dom.hasClass(cell, 'mce-item-selected');
1396
  });
1397
 
1398
  if (selectedTableCells.length === 0) {
@@ -1434,7 +1476,7 @@ define("tinymce/tableplugin/Quirks", [
1434
  fixTableCaretPos();
1435
  }
1436
 
1437
- if (Env.ie > 10) {
1438
  fixBeforeTableCaretBug();
1439
  fixTableCaretPos();
1440
  }
@@ -1466,60 +1508,85 @@ define("tinymce/tableplugin/CellSelection", [
1466
  "tinymce/util/Tools"
1467
  ], function(TableGrid, TreeWalker, Tools) {
1468
  return function(editor) {
1469
- var dom = editor.dom, tableGrid, startCell, startTable, hasCellSelection = true, resizing;
1470
 
1471
  function clear(force) {
1472
  // Restore selection possibilities
1473
  editor.getBody().style.webkitUserSelect = '';
1474
 
1475
  if (force || hasCellSelection) {
1476
- editor.dom.removeClass(
1477
- editor.dom.select('td.mce-item-selected,th.mce-item-selected'),
1478
- 'mce-item-selected'
1479
- );
1480
-
1481
  hasCellSelection = false;
1482
  }
1483
  }
1484
 
 
 
 
 
 
 
 
 
1485
  function cellSelectionHandler(e) {
1486
- var sel, table, target = e.target;
1487
 
1488
  if (resizing) {
1489
  return;
1490
  }
1491
 
1492
- if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) {
1493
- table = dom.getParent(target, 'table');
1494
- if (table == startTable) {
1495
- if (!tableGrid) {
1496
- tableGrid = new TableGrid(editor, table);
1497
- tableGrid.setStartCell(startCell);
 
 
 
 
 
 
 
 
 
 
 
 
1498
 
 
 
 
 
 
1499
  editor.getBody().style.webkitUserSelect = 'none';
1500
  }
1501
 
1502
- tableGrid.setEndCell(target);
1503
  hasCellSelection = true;
1504
- }
1505
 
1506
- // Remove current selection
1507
- sel = editor.selection.getSel();
1508
 
1509
- try {
1510
- if (sel.removeAllRanges) {
1511
- sel.removeAllRanges();
1512
- } else {
1513
- sel.empty();
 
 
 
1514
  }
1515
- } catch (ex) {
1516
- // IE9 might throw errors here
1517
  }
1518
-
1519
- e.preventDefault();
1520
  }
1521
  }
1522
 
 
 
 
 
 
 
1523
  // Add cell selection logic
1524
  editor.on('MouseDown', function(e) {
1525
  if (e.button != 2 && !resizing) {
@@ -1534,6 +1601,7 @@ define("tinymce/tableplugin/CellSelection", [
1534
 
1535
  editor.on('remove', function() {
1536
  dom.unbind(editor.getDoc(), 'mouseover', cellSelectionHandler);
 
1537
  });
1538
 
1539
  editor.on('MouseUp', function() {
@@ -1574,7 +1642,7 @@ define("tinymce/tableplugin/CellSelection", [
1574
  }
1575
 
1576
  // Try to expand text selection as much as we can only Gecko supports cell selection
1577
- selectedCells = dom.select('td.mce-item-selected,th.mce-item-selected');
1578
  if (selectedCells.length > 0) {
1579
  rng = dom.createRng();
1580
  node = selectedCells[0];
@@ -1586,7 +1654,7 @@ define("tinymce/tableplugin/CellSelection", [
1586
 
1587
  do {
1588
  if (node.nodeName == 'TD' || node.nodeName == 'TH') {
1589
- if (!dom.hasClass(node, 'mce-item-selected')) {
1590
  break;
1591
  }
1592
 
@@ -1600,13 +1668,13 @@ define("tinymce/tableplugin/CellSelection", [
1600
  }
1601
 
1602
  editor.nodeChanged();
1603
- startCell = tableGrid = startTable = null;
1604
  }
1605
  });
1606
 
1607
  editor.on('KeyUp Drop SetContent', function(e) {
1608
  clear(e.type == 'setcontent');
1609
- startCell = tableGrid = startTable = null;
1610
  resizing = false;
1611
  });
1612
 
@@ -2111,7 +2179,7 @@ define("tinymce/tableplugin/Dialogs", [
2111
  }
2112
 
2113
  // Get selected cells or the current cell
2114
- cells = editor.dom.select('td.mce-item-selected,th.mce-item-selected');
2115
  cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th');
2116
  if (!cells.length && cellElm) {
2117
  cells.push(cellElm);
@@ -2334,7 +2402,7 @@ define("tinymce/tableplugin/Dialogs", [
2334
 
2335
  each(tableElm.rows, function(row) {
2336
  each(row.cells, function(cell) {
2337
- if (dom.hasClass(cell, 'mce-item-selected') || cell == cellElm) {
2338
  rows.push(row);
2339
  return false;
2340
  }
@@ -2447,6 +2515,993 @@ define("tinymce/tableplugin/Dialogs", [
2447
  };
2448
  });
2449
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2450
  // Included from: js/tinymce/plugins/table/classes/Plugin.js
2451
 
2452
  /**
@@ -2470,15 +3525,21 @@ define("tinymce/tableplugin/Plugin", [
2470
  "tinymce/tableplugin/Quirks",
2471
  "tinymce/tableplugin/CellSelection",
2472
  "tinymce/tableplugin/Dialogs",
 
2473
  "tinymce/util/Tools",
2474
  "tinymce/dom/TreeWalker",
2475
  "tinymce/Env",
2476
  "tinymce/PluginManager"
2477
- ], function(TableGrid, Quirks, CellSelection, Dialogs, Tools, TreeWalker, Env, PluginManager) {
2478
  var each = Tools.each;
2479
 
2480
  function Plugin(editor) {
2481
- var clipboardRows, self = this, dialogs = new Dialogs(editor);
 
 
 
 
 
2482
 
2483
  function cmd(command) {
2484
  return function() {
@@ -2495,7 +3556,7 @@ define("tinymce/tableplugin/Plugin", [
2495
  html += '<tr>';
2496
 
2497
  for (x = 0; x < cols; x++) {
2498
- html += '<td>' + (Env.ie ? " " : '<br>') + '</td>';
2499
  }
2500
 
2501
  html += '</tr>';
@@ -2509,6 +3570,18 @@ define("tinymce/tableplugin/Plugin", [
2509
  tableElm = editor.dom.get('__mce');
2510
  editor.dom.setAttrib(tableElm, 'id', null);
2511
 
 
 
 
 
 
 
 
 
 
 
 
 
2512
  editor.dom.setAttribs(tableElm, editor.settings.table_default_attributes || {});
2513
  editor.dom.setStyles(tableElm, editor.settings.table_default_styles || {});
2514
  });
@@ -2516,9 +3589,32 @@ define("tinymce/tableplugin/Plugin", [
2516
  return tableElm;
2517
  }
2518
 
2519
- function handleDisabledState(ctrl, selector) {
2520
  function bindStateListener() {
2521
- ctrl.disabled(!editor.dom.getParent(editor.selection.getStart(), selector));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2522
 
2523
  editor.selection.selectorChanged(selector, function(state) {
2524
  ctrl.disabled(!state);
@@ -2542,6 +3638,11 @@ define("tinymce/tableplugin/Plugin", [
2542
  handleDisabledState(this, 'td,th');
2543
  }
2544
 
 
 
 
 
 
2545
  function generateTableGrid() {
2546
  var html = '';
2547
 
@@ -2689,7 +3790,7 @@ define("tinymce/tableplugin/Plugin", [
2689
  context: 'table',
2690
  menu: [
2691
  {text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell},
2692
- {text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderCell},
2693
  {text: 'Split cell', onclick: cmd('mceTableSplitCells'), onPostRender: postRenderCell}
2694
  ]
2695
  });
@@ -2751,6 +3852,7 @@ define("tinymce/tableplugin/Plugin", [
2751
 
2752
  editor.on('Init', function() {
2753
  self.cellSelection = new CellSelection(editor);
 
2754
  });
2755
 
2756
  editor.on('PreInit', function() {
@@ -2778,7 +3880,7 @@ define("tinymce/tableplugin/Plugin", [
2778
 
2779
  cell = editor.dom.getParent(editor.selection.getStart(), 'th,td');
2780
 
2781
- if (!editor.dom.select('td.mce-item-selected,th.mce-item-selected').length) {
2782
  dialogs.merge(grid, cell);
2783
  } else {
2784
  grid.merge();
@@ -2826,6 +3928,9 @@ define("tinymce/tableplugin/Plugin", [
2826
  },
2827
 
2828
  mceTableDelete: function(grid) {
 
 
 
2829
  grid.deleteTable();
2830
  }
2831
  }, function(func, name) {
@@ -2854,6 +3959,119 @@ define("tinymce/tableplugin/Plugin", [
2854
  });
2855
  });
2856
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2857
  // Enable tab key cell navigation
2858
  if (editor.settings.table_tab_navigation !== false) {
2859
  editor.on('keydown', function(e) {
123
  }
124
 
125
  function paddCell(cell) {
126
+ if (!Env.ie || Env.ie > 9) {
127
+ if (!cell.hasChildNodes()) {
128
+ cell.innerHTML = '<br data-mce-bogus="1" />';
129
+ }
130
  }
131
  }
132
 
163
  ], function(Tools, Env, Utils) {
164
  var each = Tools.each, getSpanVal = Utils.getSpanVal;
165
 
166
+ return function(editor, table, selectedCell) {
167
+ var grid, gridWidth, startPos, endPos, selection = editor.selection, dom = selection.dom;
168
+
169
+ function removeCellSelection() {
170
+ editor.$('td[data-mce-selected],th[data-mce-selected]').removeAttr('data-mce-selected');
171
+ }
172
 
173
  function isEditorBody(node) {
174
  return node === editor.getBody();
175
  }
176
 
177
+ function getChildrenByName(node, names) {
178
+ if (!node) {
179
+ return [];
180
+ }
181
+
182
+ names = Tools.map(names.split(','), function(name) {
183
+ return name.toLowerCase();
184
+ });
185
+
186
+ return Tools.grep(node.childNodes, function(node) {
187
+ return Tools.inArray(names, node.nodeName.toLowerCase()) !== -1;
188
+ });
189
+ }
190
+
191
  function buildGrid() {
192
  var startY = 0;
193
 
195
  gridWidth = 0;
196
 
197
  each(['thead', 'tbody', 'tfoot'], function(part) {
198
+ var partElm = getChildrenByName(table, part)[0];
199
+ var rows = getChildrenByName(partElm, 'tr');
200
 
201
  each(rows, function(tr, y) {
202
  y += startY;
203
 
204
+ each(getChildrenByName(tr, 'td,th'), function(td, x) {
205
  var x2, y2, rowspan, colspan;
206
 
207
  // Skip over existing cells produced by rowspan
240
  });
241
  }
242
 
243
+ function fireNewRow(node) {
244
+ editor.fire('newrow', {
245
+ node: node
246
+ });
247
+
248
+ return node;
249
+ }
250
+
251
+ function fireNewCell(node) {
252
+ editor.fire('newcell', {
253
+ node: node
254
+ });
255
+
256
+ return node;
257
+ }
258
+
259
  function cloneNode(node, children) {
260
  node = node.cloneNode(children);
261
  node.removeAttribute('id');
285
  }
286
 
287
  function isCellSelected(cell) {
288
+ return cell && (!!dom.getAttrib(cell.elm, 'data-mce-selected') || cell == selectedCell);
289
  }
290
 
291
  function getSelectedRows() {
293
 
294
  each(table.rows, function(row) {
295
  each(row.cells, function(cell) {
296
+ if (dom.getAttrib(cell, 'data-mce-selected') || (selectedCell && cell == selectedCell.elm)) {
297
  rows.push(row);
298
  return false;
299
  }
351
 
352
  // Add something to the inner node
353
  if (curNode) {
354
+ curNode.innerHTML = Env.ie && Env.ie < 10 ? '&nbsp;' : '<br data-mce-bogus="1" />';
355
  }
356
 
357
  return false;
359
  }, 'childNodes');
360
 
361
  cell = cloneNode(cell, false);
362
+ fireNewCell(cell);
363
+
364
  setSpanVal(cell, 'rowSpan', 1);
365
  setSpanVal(cell, 'colSpan', 1);
366
 
544
  children = Tools.grep(startCell.childNodes);
545
  count = 0;
546
  each(children, function(node) {
547
+ if (node.nodeName == 'BR' && count++ < children.length - 1) {
548
  startCell.removeChild(node);
549
  }
550
  });
569
  if (isCellSelected(cell)) {
570
  cell = cell.elm;
571
  rowElm = cell.parentNode;
572
+ newRow = fireNewRow(cloneNode(rowElm, false));
573
  posY = y;
574
 
575
  if (before) {
849
  each(rows, function(row) {
850
  var i, cellCount = row.cells.length, cell;
851
 
852
+ fireNewRow(row);
853
+
854
  // Remove col/rowspans
855
  for (i = 0; i < cellCount; i++) {
856
  cell = row.cells[i];
857
+
858
+ fireNewCell(cell);
859
  setSpanVal(cell, 'colSpan', 1);
860
  setSpanVal(cell, 'rowSpan', 1);
861
  }
862
 
863
  // Needs more cells
864
  for (i = cellCount; i < targetCellCount; i++) {
865
+ row.appendChild(fireNewCell(cloneCell(row.cells[cellCount - 1])));
866
  }
867
 
868
  // Needs less cells
878
  }
879
  });
880
 
881
+ removeCellSelection();
 
882
  }
883
 
884
  function getPos(target) {
957
  endX = Math.max(startPos.x, endPos.x);
958
  endY = Math.max(startPos.y, endPos.y);
959
 
960
+ // Expand end position to include spans
961
  maxX = endX;
962
  maxY = endY;
963
 
1007
  }
1008
  }
1009
 
1010
+ removeCellSelection();
 
1011
 
1012
  // Add new selection
1013
  for (y = startY; y <= maxY; y++) {
1014
  for (x = startX; x <= maxX; x++) {
1015
  if (grid[y][x]) {
1016
+ dom.setAttrib(grid[y][x].elm, 'data-mce-selected', '1');
1017
  }
1018
  }
1019
  }
1052
 
1053
  buildGrid();
1054
 
1055
+ selectedCell = selectedCell || dom.getParent(selection.getStart(true), 'th,td');
1056
 
1057
  if (selectedCell) {
1058
  startPos = getPos(selectedCell);
1100
  */
1101
  define("tinymce/tableplugin/Quirks", [
1102
  "tinymce/util/VK",
1103
+ "tinymce/util/Delay",
1104
  "tinymce/Env",
1105
  "tinymce/util/Tools",
1106
  "tinymce/tableplugin/Utils"
1107
+ ], function(VK, Delay, Env, Tools, Utils) {
1108
  var each = Tools.each, getSpanVal = Utils.getSpanVal;
1109
 
1110
  return function(editor) {
1253
 
1254
  if (isVerticalMovement() && isInTable(editor)) {
1255
  var preBrowserNode = editor.selection.getNode();
1256
+ Delay.setEditorTimeout(editor, function() {
1257
  if (shouldFixCaret(preBrowserNode)) {
1258
  handle(!e.shiftKey && key === VK.UP, preBrowserNode, e);
1259
  }
1331
  editor.getBody(),
1332
  editor.settings.forced_root_block,
1333
  editor.settings.forced_root_block_attrs,
1334
+ Env.ie && Env.ie < 10 ? '&nbsp;' : '<br data-mce-bogus="1" />'
1335
  );
1336
  } else {
1337
  editor.dom.add(editor.getBody(), 'br', {'data-mce-bogus': '1'});
1434
  if (table) {
1435
  tableCells = editor.dom.select('td,th', table);
1436
  selectedTableCells = Tools.grep(tableCells, function(cell) {
1437
+ return !!editor.dom.getAttrib(cell, 'data-mce-selected');
1438
  });
1439
 
1440
  if (selectedTableCells.length === 0) {
1476
  fixTableCaretPos();
1477
  }
1478
 
1479
+ if (Env.ie > 9) {
1480
  fixBeforeTableCaretBug();
1481
  fixTableCaretPos();
1482
  }
1508
  "tinymce/util/Tools"
1509
  ], function(TableGrid, TreeWalker, Tools) {
1510
  return function(editor) {
1511
+ var dom = editor.dom, tableGrid, startCell, startTable, lastMouseOverTarget, hasCellSelection = true, resizing;
1512
 
1513
  function clear(force) {
1514
  // Restore selection possibilities
1515
  editor.getBody().style.webkitUserSelect = '';
1516
 
1517
  if (force || hasCellSelection) {
1518
+ editor.$('td[data-mce-selected],th[data-mce-selected]').removeAttr('data-mce-selected');
 
 
 
 
1519
  hasCellSelection = false;
1520
  }
1521
  }
1522
 
1523
+ function isCellInTable(table, cell) {
1524
+ if (!table || !cell) {
1525
+ return false;
1526
+ }
1527
+
1528
+ return table === dom.getParent(cell, 'table');
1529
+ }
1530
+
1531
  function cellSelectionHandler(e) {
1532
+ var sel, target = e.target, currentCell;
1533
 
1534
  if (resizing) {
1535
  return;
1536
  }
1537
 
1538
+ // Fake mouse enter by keeping track of last mouse over
1539
+ if (target === lastMouseOverTarget) {
1540
+ return;
1541
+ }
1542
+
1543
+ lastMouseOverTarget = target;
1544
+
1545
+ if (startTable && startCell) {
1546
+ currentCell = dom.getParent(target, 'td,th');
1547
+
1548
+ if (!isCellInTable(startTable, currentCell)) {
1549
+ currentCell = dom.getParent(startTable, 'td,th');
1550
+ }
1551
+
1552
+ // Selection inside first cell is normal until we have expanted
1553
+ if (startCell === currentCell && !hasCellSelection) {
1554
+ return;
1555
+ }
1556
 
1557
+ if (isCellInTable(startTable, currentCell)) {
1558
+ e.preventDefault();
1559
+
1560
+ if (!tableGrid) {
1561
+ tableGrid = new TableGrid(editor, startTable, startCell);
1562
  editor.getBody().style.webkitUserSelect = 'none';
1563
  }
1564
 
1565
+ tableGrid.setEndCell(currentCell);
1566
  hasCellSelection = true;
 
1567
 
1568
+ // Remove current selection
1569
+ sel = editor.selection.getSel();
1570
 
1571
+ try {
1572
+ if (sel.removeAllRanges) {
1573
+ sel.removeAllRanges();
1574
+ } else {
1575
+ sel.empty();
1576
+ }
1577
+ } catch (ex) {
1578
+ // IE9 might throw errors here
1579
  }
 
 
1580
  }
 
 
1581
  }
1582
  }
1583
 
1584
+ editor.on('SelectionChange', function(e) {
1585
+ if (hasCellSelection) {
1586
+ e.stopImmediatePropagation();
1587
+ }
1588
+ }, true);
1589
+
1590
  // Add cell selection logic
1591
  editor.on('MouseDown', function(e) {
1592
  if (e.button != 2 && !resizing) {
1601
 
1602
  editor.on('remove', function() {
1603
  dom.unbind(editor.getDoc(), 'mouseover', cellSelectionHandler);
1604
+ clear();
1605
  });
1606
 
1607
  editor.on('MouseUp', function() {
1642
  }
1643
 
1644
  // Try to expand text selection as much as we can only Gecko supports cell selection
1645
+ selectedCells = dom.select('td[data-mce-selected],th[data-mce-selected]');
1646
  if (selectedCells.length > 0) {
1647
  rng = dom.createRng();
1648
  node = selectedCells[0];
1654
 
1655
  do {
1656
  if (node.nodeName == 'TD' || node.nodeName == 'TH') {
1657
+ if (!dom.getAttrib(node, 'data-mce-selected')) {
1658
  break;
1659
  }
1660
 
1668
  }
1669
 
1670
  editor.nodeChanged();
1671
+ startCell = tableGrid = startTable = lastMouseOverTarget = null;
1672
  }
1673
  });
1674
 
1675
  editor.on('KeyUp Drop SetContent', function(e) {
1676
  clear(e.type == 'setcontent');
1677
+ startCell = tableGrid = startTable = lastMouseOverTarget = null;
1678
  resizing = false;
1679
  });
1680
 
2179
  }
2180
 
2181
  // Get selected cells or the current cell
2182
+ cells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]');
2183
  cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th');
2184
  if (!cells.length && cellElm) {
2185
  cells.push(cellElm);
2402
 
2403
  each(tableElm.rows, function(row) {
2404
  each(row.cells, function(cell) {
2405
+ if (dom.getAttrib(cell, 'data-mce-selected') || cell == cellElm) {
2406
  rows.push(row);
2407
  return false;
2408
  }
2515
  };
2516
  });
2517
 
2518
+ // Included from: js/tinymce/plugins/table/classes/ResizeBars.js
2519
+
2520
+ /**
2521
+ * ResizeBars.js
2522
+ *
2523
+ * Released under LGPL License.
2524
+ * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
2525
+ *
2526
+ * License: http://www.tinymce.com/license
2527
+ * Contributing: http://www.tinymce.com/contributing
2528
+ */
2529
+
2530
+ /**
2531
+ * This class handles table column and row resizing by adding divs over the columns and rows of the table.
2532
+ * These divs are then manipulated using mouse events to resize the underlying table.
2533
+ *
2534
+ * @class tinymce.tableplugin.ResizeBars
2535
+ * @private
2536
+ */
2537
+ define("tinymce/tableplugin/ResizeBars", [
2538
+ "tinymce/util/Tools",
2539
+ "tinymce/util/VK"
2540
+ ], function(Tools, VK) {
2541
+ var hoverTable;
2542
+
2543
+ return function(editor) {
2544
+ var RESIZE_BAR_CLASS = 'mce-resize-bar',
2545
+ RESIZE_BAR_ROW_CLASS = 'mce-resize-bar-row',
2546
+ RESIZE_BAR_ROW_CURSOR_STYLE = 'row-resize',
2547
+ RESIZE_BAR_ROW_DATA_ATTRIBUTE = 'data-row',
2548
+ RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE = 'data-initial-top',
2549
+ RESIZE_BAR_COL_CLASS = 'mce-resize-bar-col',
2550
+ RESIZE_BAR_COL_CURSOR_STYLE = 'col-resize',
2551
+ RESIZE_BAR_COL_DATA_ATTRIBUTE = 'data-col',
2552
+ RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE = 'data-initial-left',
2553
+ RESIZE_BAR_THICKNESS = 4,
2554
+ RESIZE_MINIMUM_WIDTH = 10,
2555
+ RESIZE_MINIMUM_HEIGHT = 10,
2556
+ RESIZE_BAR_DRAGGING_CLASS = 'mce-resize-bar-dragging';
2557
+
2558
+ var percentageBasedSizeRegex = new RegExp(/(\d+(\.\d+)?%)/),
2559
+ pixelBasedSizeRegex = new RegExp(/px|em/);
2560
+
2561
+ var delayDrop, dragging, blockerElement, dragBar, lastX, lastY;
2562
+
2563
+ // Get the absolute position's top edge.
2564
+ function getTopEdge(index, row) {
2565
+ return {
2566
+ index: index,
2567
+ y: editor.dom.getPos(row).y
2568
+ };
2569
+ }
2570
+
2571
+ // Get the absolute position's bottom edge.
2572
+ function getBottomEdge(index, row) {
2573
+ return {
2574
+ index: index,
2575
+ y: editor.dom.getPos(row).y + row.offsetHeight
2576
+ };
2577
+ }
2578
+
2579
+ // Get the absolute position's left edge.
2580
+ function getLeftEdge(index, cell) {
2581
+ return {
2582
+ index: index,
2583
+ x: editor.dom.getPos(cell).x
2584
+ };
2585
+ }
2586
+
2587
+ // Get the absolute position's right edge.
2588
+ function getRightEdge(index, cell) {
2589
+ return {
2590
+ index: index,
2591
+ x: editor.dom.getPos(cell).x + cell.offsetWidth
2592
+ };
2593
+ }
2594
+
2595
+ function isRtl() {
2596
+ var dir = editor.getBody().dir;
2597
+ return dir === 'rtl';
2598
+ }
2599
+
2600
+ function isInline() {
2601
+ return editor.inline;
2602
+ }
2603
+
2604
+ function getBody() {
2605
+ return isInline ? editor.getBody().ownerDocument.body : editor.getBody();
2606
+ }
2607
+
2608
+ function getInnerEdge(index, cell) {
2609
+ return isRtl() ? getRightEdge(index, cell) : getLeftEdge(index, cell);
2610
+ }
2611
+
2612
+ function getOuterEdge(index, cell) {
2613
+ return isRtl() ? getLeftEdge(index, cell) : getRightEdge(index, cell);
2614
+ }
2615
+
2616
+ function getPercentageWidthFallback(element, table) {
2617
+ return getComputedStyleSize(element, 'width') / getComputedStyleSize(table, 'width') * 100;
2618
+ }
2619
+
2620
+ function getComputedStyleSize(element, property) {
2621
+ var widthString = editor.dom.getStyle(element, property, true);
2622
+ var width = parseInt(widthString, 10);
2623
+ return width;
2624
+ }
2625
+
2626
+ function getCurrentTablePercentWidth(table) {
2627
+ var tableWidth = getComputedStyleSize(table, 'width');
2628
+ var tableParentWidth = getComputedStyleSize(table.parentElement, 'width');
2629
+ return tableWidth / tableParentWidth * 100;
2630
+ }
2631
+
2632
+ function getCellPercentDelta(table, delta) {
2633
+ var tableWidth = getComputedStyleSize(table, 'width');
2634
+ return delta / tableWidth * 100;
2635
+ }
2636
+
2637
+ function getTablePercentDelta(table, delta) {
2638
+ var tableParentWidth = getComputedStyleSize(table.parentElement, 'width');
2639
+ return delta / tableParentWidth * 100;
2640
+ }
2641
+
2642
+ // Find the left/right (ltr/rtl) or top side locations of the cells to measure.
2643
+ // This is the location of the borders we need to draw over.
2644
+ function findPositions(getInner, getOuter, thingsToMeasure) {
2645
+ var tablePositions = [];
2646
+
2647
+ // Skip the first item in the array = no left (LTR), right (RTL) or top bars
2648
+ for (var i = 1; i < thingsToMeasure.length; i++) {
2649
+ // Get the element from the details
2650
+ var item = thingsToMeasure[i].element;
2651
+
2652
+ // We need to zero index this again
2653
+ tablePositions.push(getInner(i - 1, item));
2654
+ }
2655
+
2656
+ var lastTableLineToMake = thingsToMeasure[thingsToMeasure.length - 1];
2657
+ tablePositions.push(getOuter(thingsToMeasure.length - 1, lastTableLineToMake.element));
2658
+
2659
+ return tablePositions;
2660
+ }
2661
+
2662
+ // Clear the bars.
2663
+ function clearBars() {
2664
+ var bars = editor.dom.select('.' + RESIZE_BAR_CLASS, getBody());
2665
+ Tools.each(bars, function(bar) {
2666
+ editor.dom.remove(bar);
2667
+ });
2668
+ }
2669
+
2670
+ // Refresh the bars.
2671
+ function refreshBars(tableElement) {
2672
+ clearBars();
2673
+ drawBars(tableElement);
2674
+ }
2675
+
2676
+ // Generates a resize bar object for the editor to add.
2677
+ function generateBar(classToAdd, cursor, left, top, height, width, indexAttr, index) {
2678
+ var bar = {
2679
+ 'data-mce-bogus': 'all',
2680
+ 'class': RESIZE_BAR_CLASS + ' ' + classToAdd,
2681
+ 'unselectable': 'on',
2682
+ 'data-mce-resize': false,
2683
+ style: 'cursor: ' + cursor + '; ' +
2684
+ 'margin: 0; ' +
2685
+ 'padding: 0; ' +
2686
+ 'position: absolute; ' +
2687
+ 'left: ' + left + 'px; ' +
2688
+ 'top: ' + top + 'px; ' +
2689
+ 'height: ' + height + 'px; ' +
2690
+ 'width: ' + width + 'px; '
2691
+ };
2692
+
2693
+ bar[indexAttr] = index;
2694
+
2695
+ return bar;
2696
+ }
2697
+
2698
+ // Draw the row bars over the row borders.
2699
+ function drawRows(rowPositions, tableWidth, tablePosition) {
2700
+ Tools.each(rowPositions, function(rowPosition) {
2701
+ var left = tablePosition.x,
2702
+ top = rowPosition.y - RESIZE_BAR_THICKNESS / 2,
2703
+ height = RESIZE_BAR_THICKNESS,
2704
+ width = tableWidth;
2705
+
2706
+ editor.dom.add(getBody(), 'div',
2707
+ generateBar(RESIZE_BAR_ROW_CLASS, RESIZE_BAR_ROW_CURSOR_STYLE,
2708
+ left, top, height, width, RESIZE_BAR_ROW_DATA_ATTRIBUTE, rowPosition.index));
2709
+ });
2710
+ }
2711
+
2712
+ // Draw the column bars over the column borders.
2713
+ function drawCols(cellPositions, tableHeight, tablePosition) {
2714
+ Tools.each(cellPositions, function(cellPosition) {
2715
+ var left = cellPosition.x - RESIZE_BAR_THICKNESS / 2,
2716
+ top = tablePosition.y,
2717
+ height = tableHeight,
2718
+ width = RESIZE_BAR_THICKNESS;
2719
+
2720
+ editor.dom.add(getBody(), 'div',
2721
+ generateBar(RESIZE_BAR_COL_CLASS, RESIZE_BAR_COL_CURSOR_STYLE,
2722
+ left, top, height, width, RESIZE_BAR_COL_DATA_ATTRIBUTE, cellPosition.index));
2723
+ });
2724
+ }
2725
+
2726
+ // Get a matrix of the cells in each row and the rows in the table.
2727
+ function getTableDetails(table) {
2728
+ return Tools.map(table.rows, function(row) {
2729
+
2730
+ var cells = Tools.map(row.cells, function(cell) {
2731
+
2732
+ var rowspan = cell.hasAttribute('rowspan') ? parseInt(cell.getAttribute('rowspan'), 10) : 1;
2733
+ var colspan = cell.hasAttribute('colspan') ? parseInt(cell.getAttribute('colspan'), 10) : 1;
2734
+
2735
+ return {
2736
+ element: cell,
2737
+ rowspan: rowspan,
2738
+ colspan: colspan
2739
+ };
2740
+ });
2741
+
2742
+ return {
2743
+ element: row,
2744
+ cells: cells
2745
+ };
2746
+
2747
+ });
2748
+
2749
+ }
2750
+
2751
+ // Get a grid model of the table.
2752
+ function getTableGrid(tableDetails) {
2753
+ function key(rowIndex, colIndex) {
2754
+ return rowIndex + ',' + colIndex;
2755
+ }
2756
+
2757
+ function getAt(rowIndex, colIndex) {
2758
+ return access[key(rowIndex, colIndex)];
2759
+ }
2760
+
2761
+ function getAllCells() {
2762
+ var allCells = [];
2763
+ Tools.each(rows, function(row) {
2764
+ allCells = allCells.concat(row.cells);
2765
+ });
2766
+ return allCells;
2767
+ }
2768
+
2769
+ function getAllRows() {
2770
+ return rows;
2771
+ }
2772
+
2773
+ var access = {};
2774
+ var rows = [];
2775
+
2776
+ var maxRows = 0;
2777
+ var maxCols = 0;
2778
+
2779
+ Tools.each(tableDetails, function(row, rowIndex) {
2780
+ var currentRow = [];
2781
+
2782
+ Tools.each(row.cells, function(cell) {
2783
+
2784
+ var start = 0;
2785
+
2786
+ while (access[key(rowIndex, start)] !== undefined) {
2787
+ start++;
2788
+ }
2789
+
2790
+ var current = {
2791
+ element: cell.element,
2792
+ colspan: cell.colspan,
2793
+ rowspan: cell.rowspan,
2794
+ rowIndex: rowIndex,
2795
+ colIndex: start
2796
+ };
2797
+
2798
+ for (var i = 0; i < cell.colspan; i++) {
2799
+ for (var j = 0; j < cell.rowspan; j++) {
2800
+ var cr = rowIndex + j;
2801
+ var cc = start + i;
2802
+ access[key(cr, cc)] = current;
2803
+ maxRows = Math.max(maxRows, cr + 1);
2804
+ maxCols = Math.max(maxCols, cc + 1);
2805
+ }
2806
+ }
2807
+
2808
+ currentRow.push(current);
2809
+ });
2810
+
2811
+ rows.push({
2812
+ element: row.element,
2813
+ cells: currentRow
2814
+ });
2815
+ });
2816
+
2817
+ return {
2818
+ grid: {
2819
+ maxRows: maxRows,
2820
+ maxCols: maxCols
2821
+ },
2822
+ getAt: getAt,
2823
+ getAllCells: getAllCells,
2824
+ getAllRows: getAllRows
2825
+ };
2826
+ }
2827
+
2828
+ function range(start, end) {
2829
+ var r = [];
2830
+
2831
+ for (var i = start; i < end; i++) {
2832
+ r.push(i);
2833
+ }
2834
+
2835
+ return r;
2836
+ }
2837
+
2838
+ // Attempt to get a representative single block for this column.
2839
+ // If we can't find a single block, all blocks in this row/column are spanned
2840
+ // and we'll need to fallback to getting the first cell in the row/column.
2841
+ function decide(getBlock, isSingle, getFallback) {
2842
+ var inBlock = getBlock();
2843
+ var singleInBlock;
2844
+
2845
+ for (var i = 0; i < inBlock.length; i++) {
2846
+ if (isSingle(inBlock[i])) {
2847
+ singleInBlock = inBlock[i];
2848
+ }
2849
+ }
2850
+ return singleInBlock ? singleInBlock : getFallback();
2851
+ }
2852
+
2853
+ // Attempt to get representative blocks for the width of each column.
2854
+ function getColumnBlocks(tableGrid) {
2855
+ var cols = range(0, tableGrid.grid.maxCols);
2856
+ var rows = range(0, tableGrid.grid.maxRows);
2857
+
2858
+ return Tools.map(cols, function(col) {
2859
+ function getBlock() {
2860
+ var details = [];
2861
+ for (var i = 0; i < rows.length; i++) {
2862
+ var detail = tableGrid.getAt(i, col);
2863
+ if (detail && detail.colIndex === col) {
2864
+ details.push(detail);
2865
+ }
2866
+ }
2867
+
2868
+ return details;
2869
+ }
2870
+
2871
+ function isSingle(detail) {
2872
+ return detail.colspan === 1;
2873
+ }
2874
+
2875
+ function getFallback() {
2876
+ var item;
2877
+
2878
+ for (var i = 0; i < rows.length; i++) {
2879
+ item = tableGrid.getAt(i, col);
2880
+ if (item) {
2881
+ return item;
2882
+ }
2883
+ }
2884
+
2885
+ return null;
2886
+ }
2887
+
2888
+ return decide(getBlock, isSingle, getFallback);
2889
+ });
2890
+ }
2891
+
2892
+ // Attempt to get representative blocks for the height of each row.
2893
+ function getRowBlocks(tableGrid) {
2894
+ var cols = range(0, tableGrid.grid.maxCols);
2895
+ var rows = range(0, tableGrid.grid.maxRows);
2896
+
2897
+ return Tools.map(rows, function(row) {
2898
+ function getBlock() {
2899
+ var details = [];
2900
+ for (var i = 0; i < cols.length; i++) {
2901
+ var detail = tableGrid.getAt(row, i);
2902
+ if (detail && detail.rowIndex === row) {
2903
+ details.push(detail);
2904
+ }
2905
+ }
2906
+ return details;
2907
+ }
2908
+
2909
+ function isSingle(detail) {
2910
+ return detail.rowspan === 1;
2911
+ }
2912
+
2913
+ function getFallback() {
2914
+ return tableGrid.getAt(row, 0);
2915
+ }
2916
+
2917
+ return decide(getBlock, isSingle, getFallback);
2918
+ });
2919
+ }
2920
+
2921
+ // Draw resize bars over the left/right (ltr/rtl) or top side locations of the cells to measure.
2922
+ // This is the location of the borders we need to draw over.
2923
+ function drawBars(table) {
2924
+ var tableDetails = getTableDetails(table);
2925
+ var tableGrid = getTableGrid(tableDetails);
2926
+ var rows = getRowBlocks(tableGrid);
2927
+ var cols = getColumnBlocks(tableGrid);
2928
+
2929
+ var tablePosition = editor.dom.getPos(table);
2930
+ var rowPositions = rows.length > 0 ? findPositions(getTopEdge, getBottomEdge, rows) : [];
2931
+ var colPositions = cols.length > 0 ? findPositions(getInnerEdge, getOuterEdge, cols) : [];
2932
+
2933
+ drawRows(rowPositions, table.offsetWidth, tablePosition);
2934
+ drawCols(colPositions, table.offsetHeight, tablePosition);
2935
+ }
2936
+
2937
+ // Attempt to deduce the width/height of a column/row that has more than one cell spanned.
2938
+ function deduceSize(deducables, index, isPercentageBased, table) {
2939
+ if (index < 0 || index >= deducables.length - 1) {
2940
+ return "";
2941
+ }
2942
+
2943
+ var current = deducables[index];
2944
+
2945
+ if (current) {
2946
+ current = {
2947
+ value: current,
2948
+ delta: 0
2949
+ };
2950
+ } else {
2951
+ var reversedUpToIndex = deducables.slice(0, index).reverse();
2952
+ for (var i = 0; i < reversedUpToIndex.length; i++) {
2953
+ if (reversedUpToIndex[i]) {
2954
+ current = {
2955
+ value: reversedUpToIndex[i],
2956
+ delta: i + 1
2957
+ };
2958
+ }
2959
+ }
2960
+ }
2961
+
2962
+ var next = deducables[index + 1];
2963
+
2964
+ if (next) {
2965
+ next = {
2966
+ value: next,
2967
+ delta: 1
2968
+ };
2969
+ } else {
2970
+ var rest = deducables.slice(index + 1);
2971
+ for (var j = 0; j < rest.length; j++) {
2972
+ if (rest[j]) {
2973
+ next = {
2974
+ value: rest[j],
2975
+ delta: j + 1
2976
+ };
2977
+ }
2978
+ }
2979
+ }
2980
+
2981
+ var extras = next.delta - current.delta;
2982
+ var pixelWidth = Math.abs(next.value - current.value) / extras;
2983
+ return isPercentageBased ? pixelWidth / getComputedStyleSize(table, 'width') * 100 : pixelWidth;
2984
+ }
2985
+
2986
+ function getStyleOrAttrib(element, property) {
2987
+ var sizeString = editor.dom.getStyle(element, property);
2988
+ if (!sizeString) {
2989
+ sizeString = editor.dom.getAttrib(element, property);
2990
+ }
2991
+ if (!sizeString) {
2992
+ sizeString = editor.dom.getStyle(element, property, true);
2993
+ }
2994
+ return sizeString;
2995
+ }
2996
+
2997
+ function getWidth(element, isPercentageBased, table) {
2998
+ var widthString = getStyleOrAttrib(element, 'width');
2999
+
3000
+ var widthNumber = parseInt(widthString, 10);
3001
+
3002
+ var getWidthFallback = isPercentageBased ? getPercentageWidthFallback(element, table) : getComputedStyleSize(element, 'width');
3003
+
3004
+ // If this is percentage based table, but this cell isn't percentage based.
3005
+ // Or if this is a pixel based table, but this cell isn't pixel based.
3006
+ if (isPercentageBased && !isPercentageBasedSize(widthString) ||
3007
+ !isPercentageBased && !isPixelBasedSize(widthString)) {
3008
+ // set the widthnumber to 0
3009
+ widthNumber = 0;
3010
+ }
3011
+
3012
+ return !isNaN(widthNumber) && widthNumber > 0 ?
3013
+ widthNumber : getWidthFallback;
3014
+ }
3015
+
3016
+ // Attempt to get the css width from column representative cells.
3017
+ function getWidths(tableGrid, isPercentageBased, table) {
3018
+
3019
+ var cols = getColumnBlocks(tableGrid);
3020
+
3021
+ var backups = Tools.map(cols, function(col) {
3022
+ return getInnerEdge(col.colIndex, col.element).x;
3023
+ });
3024
+
3025
+ var widths = [];
3026
+
3027
+ for (var i = 0; i < cols.length; i++) {
3028
+ var span = cols[i].element.hasAttribute('colspan') ? parseInt(cols[i].element.getAttribute('colspan'), 10) : 1;
3029
+ // Deduce if the column has colspan of more than 1
3030
+ var width = span > 1 ? deduceSize(backups, i) : getWidth(cols[i].element, isPercentageBased, table);
3031
+ // If everything's failed and we still don't have a width
3032
+ width = width ? width : RESIZE_MINIMUM_WIDTH;
3033
+ widths.push(width);
3034
+ }
3035
+
3036
+ return widths;
3037
+ }
3038
+
3039
+ // Attempt to get the pixel height from a cell.
3040
+ function getPixelHeight(element) {
3041
+
3042
+ var heightString = getStyleOrAttrib(element, 'height');
3043
+
3044
+ var heightNumber = parseInt(heightString, 10);
3045
+
3046
+ if (isPercentageBasedSize(heightString)) {
3047
+ heightNumber = 0;
3048
+ }
3049
+
3050
+ return !isNaN(heightNumber) && heightNumber > 0 ?
3051
+ heightNumber : getComputedStyleSize(element, 'height');
3052
+ }
3053
+
3054
+ // Attempt to get the css height from row representative cells.
3055
+ function getPixelHeights(tableGrid) {
3056
+
3057
+ var rows = getRowBlocks(tableGrid);
3058
+
3059
+ var backups = Tools.map(rows, function(row) {
3060
+ return getTopEdge(row.rowIndex, row.element).y;
3061
+ });
3062
+
3063
+ var heights = [];
3064
+
3065
+ for (var i = 0; i < rows.length; i++) {
3066
+ var span = rows[i].element.hasAttribute('rowspan') ? parseInt(rows[i].element.getAttribute('rowspan'), 10) : 1;
3067
+
3068
+ var height = span > 1 ? deduceSize(backups, i) : getPixelHeight(rows[i].element);
3069
+
3070
+ height = height ? height : RESIZE_MINIMUM_HEIGHT;
3071
+ heights.push(height);
3072
+ }
3073
+
3074
+ return heights;
3075
+ }
3076
+
3077
+ // Determine how much each column's css width will need to change.
3078
+ // Sizes = result = pixels widths OR percentage based widths
3079
+ function determineDeltas(sizes, column, step, min, isPercentageBased) {
3080
+
3081
+ var result = sizes.slice(0);
3082
+
3083
+ function generateZeros(array) {
3084
+ return Tools.map(array, function() {
3085
+ return 0;
3086
+ });
3087
+ }
3088
+
3089
+ function onOneColumn() {
3090
+ var deltas;
3091
+ if (isPercentageBased) {
3092
+ // If we have one column in a percent based table, that column should be 100% of the width of the table.
3093
+ deltas = [100 - result[0]];
3094
+ } else {
3095
+ var newNext = Math.max(min, result[0] + step);
3096
+ deltas = [newNext - result[0]];
3097
+ }
3098
+ return deltas;
3099
+ }
3100
+
3101
+ function onLeftOrMiddle(index, next) {
3102
+
3103
+ var startZeros = generateZeros(result.slice(0, index));
3104
+ var endZeros = generateZeros(result.slice(next + 1));
3105
+ var deltas;
3106
+
3107
+ if (step >= 0) {
3108
+ var newNext = Math.max(min, result[next] - step);
3109
+ deltas = startZeros.concat([step, newNext - result[next]]).concat(endZeros);
3110
+ } else {
3111
+ var newThis = Math.max(min, result[index] + step);
3112
+ var diffx = result[index] - newThis;
3113
+ deltas = startZeros.concat([newThis - result[index], diffx]).concat(endZeros);
3114
+ }
3115
+
3116
+ return deltas;
3117
+ }
3118
+
3119
+ function onRight(previous, index) {
3120
+ var startZeros = generateZeros(result.slice(0, index));
3121
+ var deltas;
3122
+
3123
+ if (step >= 0) {
3124
+ deltas = startZeros.concat([step]);
3125
+ } else {
3126
+ var size = Math.max(min, result[index] + step);
3127
+ deltas = startZeros.concat([size - result[index]]);
3128
+ }
3129
+
3130
+ return deltas;
3131
+
3132
+ }
3133
+
3134
+ var deltas;
3135
+
3136
+ if (sizes.length === 0) { // No Columns
3137
+ deltas = [];
3138
+ } else if (sizes.length === 1) { // One Column
3139
+ deltas = onOneColumn();
3140
+ } else if (column === 0) { // Left Column
3141
+ deltas = onLeftOrMiddle(0, 1);
3142
+ } else if (column > 0 && column < sizes.length - 1) { // Middle Column
3143
+ deltas = onLeftOrMiddle(column, column + 1);
3144
+ } else if (column === sizes.length - 1) { // Right Column
3145
+ deltas = onRight(column - 1, column);
3146
+ } else {
3147
+ deltas = [];
3148
+ }
3149
+
3150
+ return deltas;
3151
+ }
3152
+
3153
+ function total(start, end, measures) {
3154
+ var r = 0;
3155
+ for (var i = start; i < end; i++) {
3156
+ r += measures[i];
3157
+ }
3158
+ return r;
3159
+ }
3160
+
3161
+ // Combine cell's css widths to determine widths of colspan'd cells.
3162
+ function recalculateWidths(tableGrid, widths) {
3163
+ var allCells = tableGrid.getAllCells();
3164
+ return Tools.map(allCells, function(cell) {
3165
+ var width = total(cell.colIndex, cell.colIndex + cell.colspan, widths);
3166
+ return {
3167
+ element: cell.element,
3168
+ width: width,
3169
+ colspan: cell.colspan
3170
+ };
3171
+ });
3172
+ }
3173
+
3174
+ // Combine cell's css heights to determine heights of rowspan'd cells.
3175
+ function recalculateCellHeights(tableGrid, heights) {
3176
+ var allCells = tableGrid.getAllCells();
3177
+ return Tools.map(allCells, function(cell) {
3178
+ var height = total(cell.rowIndex, cell.rowIndex + cell.rowspan, heights);
3179
+ return {
3180
+ element: cell.element,
3181
+ height: height,
3182
+ rowspan: cell.rowspan
3183
+ };
3184
+ });
3185
+ }
3186
+
3187
+ // Calculate row heights.
3188
+ function recalculateRowHeights(tableGrid, heights) {
3189
+ var allRows = tableGrid.getAllRows();
3190
+ return Tools.map(allRows, function(row, i) {
3191
+ return {
3192
+ element: row.element,
3193
+ height: heights[i]
3194
+ };
3195
+ });
3196
+ }
3197
+
3198
+ function isPercentageBasedSize(size) {
3199
+ return percentageBasedSizeRegex.test(size);
3200
+ }
3201
+
3202
+ function isPixelBasedSize(size) {
3203
+ return pixelBasedSizeRegex.test(size);
3204
+ }
3205
+
3206
+ // Adjust the width of the column of table at index, with delta.
3207
+ function adjustWidth(table, delta, index) {
3208
+ var tableDetails = getTableDetails(table);
3209
+ var tableGrid = getTableGrid(tableDetails);
3210
+
3211
+ function setSizes(newSizes, styleExtension) {
3212
+ Tools.each(newSizes, function(cell) {
3213
+ editor.dom.setStyle(cell.element, 'width', cell.width + styleExtension);
3214
+ editor.dom.setAttrib(cell.element, 'width', null);
3215
+ });
3216
+ }
3217
+
3218
+ function getNewTablePercentWidth() {
3219
+ return index < tableGrid.grid.maxCols - 1 ? getCurrentTablePercentWidth(table) :
3220
+ getCurrentTablePercentWidth(table) + getTablePercentDelta(table, delta);
3221
+ }
3222
+
3223
+ function getNewTablePixelWidth() {
3224
+ return index < tableGrid.grid.maxCols - 1 ? getComputedStyleSize(table, 'width') :
3225
+ getComputedStyleSize(table, 'width') + delta;
3226
+ }
3227
+
3228
+ function setTableSize(newTableWidth, styleExtension, isPercentBased) {
3229
+ if (index == tableGrid.grid.maxCols - 1 || !isPercentBased) {
3230
+ editor.dom.setStyle(table, 'width', newTableWidth + styleExtension);
3231
+ editor.dom.setAttrib(table, 'width', null);
3232
+ }
3233
+ }
3234
+
3235
+ var percentageBased = isPercentageBasedSize(table.width) ||
3236
+ isPercentageBasedSize(table.style.width);
3237
+
3238
+ var widths = getWidths(tableGrid, percentageBased, table);
3239
+
3240
+ var step = percentageBased ? getCellPercentDelta(table, delta) : delta;
3241
+ // TODO: change the min for percentage maybe?
3242
+ var deltas = determineDeltas(widths, index, step, RESIZE_MINIMUM_WIDTH, percentageBased, table);
3243
+ var newWidths = [];
3244
+
3245
+ for (var i = 0; i < deltas.length; i++) {
3246
+ newWidths.push(deltas[i] + widths[i]);
3247
+ }
3248
+
3249
+ var newSizes = recalculateWidths(tableGrid, newWidths);
3250
+ var styleExtension = percentageBased ? '%' : 'px';
3251
+ var newTableWidth = percentageBased ? getNewTablePercentWidth() :
3252
+ getNewTablePixelWidth();
3253
+
3254
+ editor.undoManager.transact(function() {
3255
+ setSizes(newSizes, styleExtension);
3256
+ setTableSize(newTableWidth, styleExtension, percentageBased);
3257
+ });
3258
+ }
3259
+
3260
+ // Adjust the height of the row of table at index, with delta.
3261
+ function adjustHeight(table, delta, index) {
3262
+ var tableDetails = getTableDetails(table);
3263
+ var tableGrid = getTableGrid(tableDetails);
3264
+
3265
+ var heights = getPixelHeights(tableGrid);
3266
+
3267
+ var newHeights = [], newTotalHeight = 0;
3268
+
3269
+ for (var i = 0; i < heights.length; i++) {
3270
+ newHeights.push(i === index ? delta + heights[i] : heights[i]);
3271
+ newTotalHeight += newTotalHeight[i];
3272
+ }
3273
+
3274
+ var newCellSizes = recalculateCellHeights(tableGrid, newHeights);
3275
+ var newRowSizes = recalculateRowHeights(tableGrid, newHeights);
3276
+
3277
+ editor.undoManager.transact(function() {
3278
+
3279
+ Tools.each(newRowSizes, function(row) {
3280
+ editor.dom.setStyle(row.element, 'height', row.height + 'px');
3281
+ editor.dom.setAttrib(row.element, 'height', null);
3282
+ });
3283
+
3284
+ Tools.each(newCellSizes, function(cell) {
3285
+ editor.dom.setStyle(cell.element, 'height', cell.height + 'px');
3286
+ editor.dom.setAttrib(cell.element, 'height', null);
3287
+ });
3288
+
3289
+ editor.dom.setStyle(table, 'height', newTotalHeight + 'px');
3290
+ editor.dom.setAttrib(table, 'height', null);
3291
+ });
3292
+ }
3293
+
3294
+ function scheduleDelayedDropEvent() {
3295
+ delayDrop = setTimeout(function() {
3296
+ drop();
3297
+ }, 200);
3298
+ }
3299
+
3300
+ function cancelDelayedDropEvent() {
3301
+ clearTimeout(delayDrop);
3302
+ }
3303
+
3304
+ function getBlockerElement() {
3305
+ var blocker = document.createElement('div');
3306
+
3307
+ blocker.setAttribute('style', 'margin: 0; ' +
3308
+ 'padding: 0; ' +
3309
+ 'position: fixed; ' +
3310
+ 'left: 0px; ' +
3311
+ 'top: 0px; ' +
3312
+ 'height: 100%; ' +
3313
+ 'width: 100%;');
3314
+ blocker.setAttribute('data-mce-bogus', 'all');
3315
+
3316
+ return blocker;
3317
+ }
3318
+
3319
+ function bindBlockerEvents(blocker, dragHandler) {
3320
+ editor.dom.bind(blocker, 'mouseup', function() {
3321
+ drop();
3322
+ });
3323
+
3324
+ editor.dom.bind(blocker, 'mousemove', function(e) {
3325
+ cancelDelayedDropEvent();
3326
+
3327
+ if (dragging) {
3328
+ dragHandler(e);
3329
+ }
3330
+ });
3331
+
3332
+ editor.dom.bind(blocker, 'mouseout', function() {
3333
+ scheduleDelayedDropEvent();
3334
+ });
3335
+
3336
+ }
3337
+
3338
+ function drop() {
3339
+ editor.dom.remove(blockerElement);
3340
+
3341
+ if (dragging) {
3342
+ editor.dom.removeClass(dragBar, RESIZE_BAR_DRAGGING_CLASS);
3343
+ dragging = false;
3344
+
3345
+ var index, delta;
3346
+
3347
+ if (isCol(dragBar)) {
3348
+ var initialLeft = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE), 10);
3349
+ var newLeft = editor.dom.getPos(dragBar).x;
3350
+ index = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_COL_DATA_ATTRIBUTE), 10);
3351
+ delta = isRtl() ? initialLeft - newLeft : newLeft - initialLeft;
3352
+ adjustWidth(hoverTable, delta, index);
3353
+ } else if (isRow(dragBar)) {
3354
+ var initialTop = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE), 10);
3355
+ var newTop = editor.dom.getPos(dragBar).y;
3356
+ index = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_ROW_DATA_ATTRIBUTE), 10);
3357
+ delta = newTop - initialTop;
3358
+ adjustHeight(hoverTable, delta, index);
3359
+ }
3360
+ refreshBars(hoverTable);
3361
+ editor.nodeChanged();
3362
+ }
3363
+ }
3364
+
3365
+ function setupBaseDrag(bar, dragHandler) {
3366
+ blockerElement = blockerElement ? blockerElement : getBlockerElement();
3367
+ dragging = true;
3368
+ editor.dom.addClass(bar, RESIZE_BAR_DRAGGING_CLASS);
3369
+ dragBar = bar;
3370
+ bindBlockerEvents(blockerElement, dragHandler);
3371
+ editor.dom.add(getBody(), blockerElement);
3372
+ }
3373
+
3374
+ function isCol(target) {
3375
+ return editor.dom.hasClass(target, RESIZE_BAR_COL_CLASS);
3376
+ }
3377
+
3378
+ function isRow(target) {
3379
+ return editor.dom.hasClass(target, RESIZE_BAR_ROW_CLASS);
3380
+ }
3381
+
3382
+ function colDragHandler(event) {
3383
+ lastX = lastX !== undefined ? lastX : event.clientX; // we need a firstX
3384
+ var deltaX = event.clientX - lastX;
3385
+ lastX = event.clientX;
3386
+ var oldLeft = editor.dom.getPos(dragBar).x;
3387
+ editor.dom.setStyle(dragBar, 'left', oldLeft + deltaX + 'px');
3388
+ }
3389
+
3390
+ function rowDragHandler(event) {
3391
+ lastY = lastY !== undefined ? lastY : event.clientY;
3392
+ var deltaY = event.clientY - lastY;
3393
+ lastY = event.clientY;
3394
+ var oldTop = editor.dom.getPos(dragBar).y;
3395
+ editor.dom.setStyle(dragBar, 'top', oldTop + deltaY + 'px');
3396
+ }
3397
+
3398
+ function setupColDrag(bar) {
3399
+ lastX = undefined;
3400
+ setupBaseDrag(bar, colDragHandler);
3401
+ }
3402
+
3403
+ function setupRowDrag(bar) {
3404
+ lastY = undefined;
3405
+ setupBaseDrag(bar, rowDragHandler);
3406
+ }
3407
+
3408
+ function mouseDownHandler(e) {
3409
+ var target = e.target, body = editor.getBody();
3410
+
3411
+ // Since this code is working on global events we need to work on a global hoverTable state
3412
+ // and make sure that the state is correct according to the events fired
3413
+ if (!editor.$.contains(body, hoverTable) && hoverTable !== body) {
3414
+ return;
3415
+ }
3416
+
3417
+ if (isCol(target)) {
3418
+ e.preventDefault();
3419
+ var initialLeft = editor.dom.getPos(target).x;
3420
+ editor.dom.setAttrib(target, RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE, initialLeft);
3421
+ setupColDrag(target);
3422
+ } else if (isRow(target)) {
3423
+ e.preventDefault();
3424
+ var initialTop = editor.dom.getPos(target).y;
3425
+ editor.dom.setAttrib(target, RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE, initialTop);
3426
+ setupRowDrag(target);
3427
+ }
3428
+ }
3429
+
3430
+ editor.on('init', function() {
3431
+ // Needs to be like this for inline mode, editor.on does not bind to elements in the document body otherwise
3432
+ editor.dom.bind(getBody(), 'mousedown', mouseDownHandler);
3433
+ });
3434
+
3435
+ // If we're updating the table width via the old mechanic, we need to update the constituent cells' widths/heights too.
3436
+ editor.on('ObjectResized', function(e) {
3437
+ var table = e.target;
3438
+ if (table.nodeName === 'TABLE') {
3439
+ var newCellSizes = [];
3440
+ Tools.each(table.rows, function(row) {
3441
+ Tools.each(row.cells, function(cell) {
3442
+ var width = editor.dom.getStyle(cell, 'width', true);
3443
+ newCellSizes.push({
3444
+ cell: cell,
3445
+ width: width
3446
+ });
3447
+ });
3448
+ });
3449
+ Tools.each(newCellSizes, function(newCellSize) {
3450
+ editor.dom.setStyle(newCellSize.cell, 'width', newCellSize.width);
3451
+ editor.dom.setAttrib(newCellSize.cell, 'width', null);
3452
+ });
3453
+ }
3454
+ });
3455
+
3456
+ editor.on('mouseover', function(e) {
3457
+ if (!dragging) {
3458
+ var tableElement = editor.dom.getParent(e.target, 'table');
3459
+
3460
+ if (e.target.nodeName === 'TABLE' || tableElement) {
3461
+ hoverTable = tableElement;
3462
+ refreshBars(tableElement);
3463
+ }
3464
+ }
3465
+ });
3466
+
3467
+ // Prevents the user from moving the caret inside the resize bars on Chrome
3468
+ // Only does it on arrow keys since clearBars might be an epxensive operation
3469
+ // since it's querying the DOM
3470
+ editor.on('keydown', function(e) {
3471
+ switch (e.keyCode) {
3472
+ case VK.LEFT:
3473
+ case VK.RIGHT:
3474
+ case VK.UP:
3475
+ case VK.DOWN:
3476
+ clearBars();
3477
+ break;
3478
+ }
3479
+ });
3480
+
3481
+ editor.on('remove', function() {
3482
+ clearBars();
3483
+ editor.dom.unbind(getBody(), 'mousedown', mouseDownHandler);
3484
+ });
3485
+
3486
+ return {
3487
+ adjustWidth: adjustWidth,
3488
+ adjustHeight: adjustHeight,
3489
+ clearBars: clearBars,
3490
+ drawBars: drawBars,
3491
+ determineDeltas: determineDeltas,
3492
+ getTableGrid: getTableGrid,
3493
+ getTableDetails: getTableDetails,
3494
+ getWidths: getWidths,
3495
+ getPixelHeights: getPixelHeights,
3496
+ isPercentageBasedSize: isPercentageBasedSize,
3497
+ isPixelBasedSize: isPixelBasedSize,
3498
+ recalculateWidths: recalculateWidths,
3499
+ recalculateCellHeights: recalculateCellHeights,
3500
+ recalculateRowHeights: recalculateRowHeights
3501
+ };
3502
+ };
3503
+ });
3504
+
3505
  // Included from: js/tinymce/plugins/table/classes/Plugin.js
3506
 
3507
  /**
3525
  "tinymce/tableplugin/Quirks",
3526
  "tinymce/tableplugin/CellSelection",
3527
  "tinymce/tableplugin/Dialogs",
3528
+ "tinymce/tableplugin/ResizeBars",
3529
  "tinymce/util/Tools",
3530
  "tinymce/dom/TreeWalker",
3531
  "tinymce/Env",
3532
  "tinymce/PluginManager"
3533
+ ], function(TableGrid, Quirks, CellSelection, Dialogs, ResizeBars, Tools, TreeWalker, Env, PluginManager) {
3534
  var each = Tools.each;
3535
 
3536
  function Plugin(editor) {
3537
+ var clipboardRows, self = this, dialogs = new Dialogs(editor), resizeBars;
3538
+
3539
+ if (editor.settings.object_resizing && editor.settings.table_resize_bars !== false &&
3540
+ (editor.settings.object_resizing === true || editor.settings.object_resizing === 'table')) {
3541
+ resizeBars = ResizeBars(editor);
3542
+ }
3543
 
3544
  function cmd(command) {
3545
  return function() {
3556
  html += '<tr>';
3557
 
3558
  for (x = 0; x < cols; x++) {
3559
+ html += '<td>' + (Env.ie && Env.ie < 10 ? '&nbsp;' : '<br>') + '</td>';
3560
  }
3561
 
3562
  html += '</tr>';
3570
  tableElm = editor.dom.get('__mce');
3571
  editor.dom.setAttrib(tableElm, 'id', null);
3572
 
3573
+ editor.$('tr', tableElm).each(function(index, row) {
3574
+ editor.fire('newrow', {
3575
+ node: row
3576
+ });
3577
+
3578
+ editor.$('th,td', row).each(function(index, cell) {
3579
+ editor.fire('newcell', {
3580
+ node: cell
3581
+ });
3582
+ });
3583
+ });
3584
+
3585
  editor.dom.setAttribs(tableElm, editor.settings.table_default_attributes || {});
3586
  editor.dom.setStyles(tableElm, editor.settings.table_default_styles || {});
3587
  });
3589
  return tableElm;
3590
  }
3591
 
3592
+ function handleDisabledState(ctrl, selector, sameParts) {
3593
  function bindStateListener() {
3594
+ var selectedElm, selectedCells, parts = {}, sum = 0, state;
3595
+
3596
+ selectedCells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]');
3597
+ selectedElm = selectedCells[0];
3598
+ if (!selectedElm) {
3599
+ selectedElm = editor.selection.getStart();
3600
+ }
3601
+
3602
+ // Make sure that we don't have a selection inside thead and tbody at the same time
3603
+ if (sameParts && selectedCells.length > 0) {
3604
+ each(selectedCells, function(cell) {
3605
+ return parts[cell.parentNode.parentNode.nodeName] = 1;
3606
+ });
3607
+
3608
+ each(parts, function(value) {
3609
+ sum += value;
3610
+ });
3611
+
3612
+ state = sum !== 1;
3613
+ } else {
3614
+ state = !editor.dom.getParent(selectedElm, selector);
3615
+ }
3616
+
3617
+ ctrl.disabled(state);
3618
 
3619
  editor.selection.selectorChanged(selector, function(state) {
3620
  ctrl.disabled(!state);
3638
  handleDisabledState(this, 'td,th');
3639
  }
3640
 
3641
+ function postRenderMergeCell() {
3642
+ /*jshint validthis:true*/
3643
+ handleDisabledState(this, 'td,th', true);
3644
+ }
3645
+
3646
  function generateTableGrid() {
3647
  var html = '';
3648
 
3790
  context: 'table',
3791
  menu: [
3792
  {text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell},
3793
+ {text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderMergeCell},
3794
  {text: 'Split cell', onclick: cmd('mceTableSplitCells'), onPostRender: postRenderCell}
3795
  ]
3796
  });
3852
 
3853
  editor.on('Init', function() {
3854
  self.cellSelection = new CellSelection(editor);
3855
+ self.resizeBars = resizeBars;
3856
  });
3857
 
3858
  editor.on('PreInit', function() {
3880
 
3881
  cell = editor.dom.getParent(editor.selection.getStart(), 'th,td');
3882
 
3883
+ if (!editor.dom.select('td[data-mce-selected],th[data-mce-selected]').length) {
3884
  dialogs.merge(grid, cell);
3885
  } else {
3886
  grid.merge();
3928
  },
3929
 
3930
  mceTableDelete: function(grid) {
3931
+ if (resizeBars) {
3932
+ resizeBars.clearBars();
3933
+ }
3934
  grid.deleteTable();
3935
  }
3936
  }, function(func, name) {
3959
  });
3960
  });
3961
 
3962
+ function addButtons() {
3963
+ editor.addButton('tableprops', {
3964
+ title: 'Table properties',
3965
+ onclick: dialogs.tableProps,
3966
+ icon: 'table'
3967
+ });
3968
+
3969
+ editor.addButton('tabledelete', {
3970
+ title: 'Delete table',
3971
+ onclick: cmd('mceTableDelete')
3972
+ });
3973
+
3974
+ editor.addButton('tablecellprops', {
3975
+ title: 'Cell properties',
3976
+ onclick: cmd('mceTableCellProps')
3977
+ });
3978
+
3979
+ editor.addButton('tablemergecells', {
3980
+ title: 'Merge cells',
3981
+ onclick: cmd('mceTableMergeCells')
3982
+ });
3983
+
3984
+ editor.addButton('tablesplitcells', {
3985
+ title: 'Split cell',
3986
+ onclick: cmd('mceTableSplitCells')
3987
+ });
3988
+
3989
+ editor.addButton('tableinsertrowbefore', {
3990
+ title: 'Insert row before',
3991
+ onclick: cmd('mceTableInsertRowBefore')
3992
+ });
3993
+
3994
+ editor.addButton('tableinsertrowafter', {
3995
+ title: 'Insert row after',
3996
+ onclick: cmd('mceTableInsertRowAfter')
3997
+ });
3998
+
3999
+ editor.addButton('tabledeleterow', {
4000
+ title: 'Delete row',
4001
+ onclick: cmd('mceTableDeleteRow')
4002
+ });
4003
+
4004
+ editor.addButton('tablerowprops', {
4005
+ title: 'Row properties',
4006
+ onclick: cmd('mceTableRowProps')
4007
+ });
4008
+
4009
+ editor.addButton('tablecutrow', {
4010
+ title: 'Cut row',
4011
+ onclick: cmd('mceTableCutRow')
4012
+ });
4013
+
4014
+ editor.addButton('tablecopyrow', {
4015
+ title: 'Copy row',
4016
+ onclick: cmd('mceTableCopyRow')
4017
+ });
4018
+
4019
+ editor.addButton('tablepasterowbefore', {
4020
+ title: 'Paste row before',
4021
+ onclick: cmd('mceTablePasteRowBefore')
4022
+ });
4023
+
4024
+ editor.addButton('tablepasterowafter', {
4025
+ title: 'Paste row after',
4026
+ onclick: cmd('mceTablePasteRowAfter')
4027
+ });
4028
+
4029
+ editor.addButton('tableinsertcolbefore', {
4030
+ title: 'Insert column before',
4031
+ onclick: cmd('mceTableInsertColBefore')
4032
+ });
4033
+
4034
+ editor.addButton('tableinsertcolafter', {
4035
+ title: 'Insert column after',
4036
+ onclick: cmd('mceTableInsertColAfter')
4037
+ });
4038
+
4039
+ editor.addButton('tabledeletecol', {
4040
+ title: 'Delete column',
4041
+ onclick: cmd('mceTableDeleteCol')
4042
+ });
4043
+
4044
+ }
4045
+
4046
+ function isTable(table) {
4047
+
4048
+ var selectorMatched = editor.dom.is(table, 'table') && editor.getBody().contains(table);
4049
+
4050
+ return selectorMatched;
4051
+ }
4052
+
4053
+ function addToolbars() {
4054
+ var toolbarItems = editor.settings.table_toolbar;
4055
+
4056
+ if (toolbarItems === '' || toolbarItems === false) {
4057
+ return;
4058
+ }
4059
+
4060
+ if (!toolbarItems) {
4061
+ toolbarItems = 'tableprops tabledelete | ' +
4062
+ 'tableinsertrowbefore tableinsertrowafter tabledeleterow | ' +
4063
+ 'tableinsertcolbefore tableinsertcolafter tabledeletecol';
4064
+ }
4065
+
4066
+ editor.addContextToolbar(
4067
+ isTable,
4068
+ toolbarItems
4069
+ );
4070
+ }
4071
+
4072
+ addButtons();
4073
+ addToolbars();
4074
+
4075
  // Enable tab key cell navigation
4076
  if (editor.settings.table_tab_navigation !== false) {
4077
  editor.on('keydown', function(e) {
mce/table/plugin.min.js CHANGED
@@ -1 +1,2 @@
1
- !function(a,b){"use strict";function c(a,b){for(var c,d=[],g=0;g<a.length;++g){if(c=f[a[g]]||e(a[g]),!c)throw"module definition dependecy not found: "+a[g];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){f[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}var f={};d("tinymce/tableplugin/Utils",["tinymce/Env"],function(a){function b(a,b){return parseInt(a.getAttribute(b)||1,10)}function c(b){(!a.ie||a.ie>10)&&(b.innerHTML='<br data-mce-bogus="1" />')}return{getSpanVal:b,paddCell:c}}),d("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env","tinymce/tableplugin/Utils"],function(a,c,d){var e=a.each,f=d.getSpanVal;return function(g,h){function i(a){return a===g.getBody()}function j(){var a=0;J=[],K=0,e(["thead","tbody","tfoot"],function(b){var c=P.select("> "+b+" tr",h);e(c,function(c,d){d+=a,e(P.select("> td, > th",c),function(a,c){var e,g,h,i;if(J[d])for(;J[d][c];)c++;for(h=f(a,"rowspan"),i=f(a,"colspan"),g=d;d+h>g;g++)for(J[g]||(J[g]=[]),e=c;c+i>e;e++)J[g][e]={part:b,real:g==d&&e==c,elm:a,rowspan:h,colspan:i};K=Math.max(K,c+1)})}),a+=c.length})}function k(a,b){return a=a.cloneNode(b),a.removeAttribute("id"),a}function l(a,b){var c;return c=J[b],c?c[a]:void 0}function m(a,b,c){a&&(c=parseInt(c,10),1===c?a.removeAttribute(b,1):a.setAttribute(b,c,1))}function n(a){return a&&(P.hasClass(a.elm,"mce-item-selected")||a==N)}function o(){var a=[];return e(h.rows,function(b){e(b.cells,function(c){return P.hasClass(c,"mce-item-selected")||N&&c==N.elm?(a.push(b),!1):void 0})}),a}function p(){var a=P.createRng();i(h)||(a.setStartAfter(h),a.setEndAfter(h),O.setRng(a),P.remove(h))}function q(b){var f,h={};return g.settings.table_clone_elements!==!1&&(h=a.makeMap((g.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),a.walk(b,function(a){var d;return 3==a.nodeType?(e(P.getParents(a.parentNode,null,b).reverse(),function(a){h[a.nodeName]&&(a=k(a,!1),f?d&&d.appendChild(a):f=d=a,d=a)}),d&&(d.innerHTML=c.ie?"&nbsp;":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),b=k(b,!1),m(b,"rowSpan",1),m(b,"colSpan",1),f?b.appendChild(f):d.paddCell(b),b}function r(){var a,b=P.createRng();return e(P.select("tr",h),function(a){0===a.cells.length&&P.remove(a)}),0===P.select("tr",h).length?(b.setStartBefore(h),b.setEndBefore(h),O.setRng(b),void P.remove(h)):(e(P.select("thead,tbody,tfoot",h),function(a){0===a.rows.length&&P.remove(a)}),j(),void(L&&(a=J[Math.min(J.length-1,L.y)],a&&(O.select(a[Math.min(a.length-1,L.x)].elm,!0),O.collapse(!0)))))}function s(a,b,c,d){var e,f,g,h,i;for(e=J[b][a].elm.parentNode,g=1;c>=g;g++)if(e=P.getNext(e,"tr")){for(f=a;f>=0;f--)if(i=J[b+g][f].elm,i.parentNode==e){for(h=1;d>=h;h++)P.insertAfter(q(i),i);break}if(-1==f)for(h=1;d>=h;h++)e.insertBefore(q(e.cells[0]),e.cells[0])}}function t(){e(J,function(a,b){e(a,function(a,c){var d,e,g;if(n(a)&&(a=a.elm,d=f(a,"colspan"),e=f(a,"rowspan"),d>1||e>1)){for(m(a,"rowSpan",1),m(a,"colSpan",1),g=0;d-1>g;g++)P.insertAfter(q(a),a);s(c,b,e-1,d)}})})}function u(b,c,d){var f,g,h,i,k,o,p,q,s,u,v;if(b?(f=E(b),g=f.x,h=f.y,i=g+(c-1),k=h+(d-1)):(L=M=null,e(J,function(a,b){e(a,function(a,c){n(a)&&(L||(L={x:c,y:b}),M={x:c,y:b})})}),L&&(g=L.x,h=L.y,i=M.x,k=M.y)),q=l(g,h),s=l(i,k),q&&s&&q.part==s.part){for(t(),j(),q=l(g,h).elm,m(q,"colSpan",i-g+1),m(q,"rowSpan",k-h+1),p=h;k>=p;p++)for(o=g;i>=o;o++)J[p]&&J[p][o]&&(b=J[p][o].elm,b!=q&&(u=a.grep(b.childNodes),e(u,function(a){q.appendChild(a)}),u.length&&(u=a.grep(q.childNodes),v=0,e(u,function(a){"BR"==a.nodeName&&P.getAttrib(a,"data-mce-bogus")&&v++<u.length-1&&q.removeChild(a)})),P.remove(b)));r()}}function v(a){var c,d,g,h,i,j,l,o,p;if(e(J,function(b,d){return e(b,function(b){return n(b)&&(b=b.elm,i=b.parentNode,j=k(i,!1),c=d,a)?!1:void 0}),a?!c:void 0}),c!==b){for(h=0;h<J[0].length;h++)if(J[c][h]&&(d=J[c][h].elm,d!=g)){if(a){if(c>0&&J[c-1][h]&&(o=J[c-1][h].elm,p=f(o,"rowSpan"),p>1)){m(o,"rowSpan",p+1);continue}}else if(p=f(d,"rowspan"),p>1){m(d,"rowSpan",p+1);continue}l=q(d),m(l,"colSpan",d.colSpan),j.appendChild(l),g=d}j.hasChildNodes()&&(a?i.parentNode.insertBefore(j,i):P.insertAfter(j,i))}}function w(a){var b,c;e(J,function(c){return e(c,function(c,d){return n(c)&&(b=d,a)?!1:void 0}),a?!b:void 0}),e(J,function(d,e){var g,h,i;d[b]&&(g=d[b].elm,g!=c&&(i=f(g,"colspan"),h=f(g,"rowspan"),1==i?a?(g.parentNode.insertBefore(q(g),g),s(b,e,h-1,i)):(P.insertAfter(q(g),g),s(b,e,h-1,i)):m(g,"colSpan",g.colSpan+1),c=g))})}function x(b){return a.grep(y(b),n)}function y(a){var b=[];return e(a,function(a){e(a,function(a){b.push(a)})}),b}function z(){var b=[];if(i(h)){if(1==J[0].length)return;if(x(J).length==y(J).length)return}e(J,function(c){e(c,function(c,d){n(c)&&-1===a.inArray(b,d)&&(e(J,function(a){var b,c=a[d].elm;b=f(c,"colSpan"),b>1?m(c,"colSpan",b-1):P.remove(c)}),b.push(d))})}),r()}function A(){function a(a){var b,c;e(a.cells,function(a){var c=f(a,"rowSpan");c>1&&(m(a,"rowSpan",c-1),b=E(a),s(b.x,b.y,1,1))}),b=E(a.cells[0]),e(J[b.y],function(a){var b;a=a.elm,a!=c&&(b=f(a,"rowSpan"),1>=b?P.remove(a):m(a,"rowSpan",b-1),c=a)})}var b;b=o(),i(h)&&b.length==h.rows.length||(e(b.reverse(),function(b){a(b)}),r())}function B(){var a=o();if(!i(h)||a.length!=h.rows.length)return P.remove(a),r(),a}function C(){var a=o();return e(a,function(b,c){a[c]=k(b,!0)}),a}function D(a,b){var c=o(),d=c[b?0:c.length-1],f=d.cells.length;a&&(e(J,function(a){var b;return f=0,e(a,function(a){a.real&&(f+=a.colspan),a.elm.parentNode==d&&(b=1)}),b?!1:void 0}),b||a.reverse(),e(a,function(a){var c,e,g=a.cells.length;for(c=0;g>c;c++)e=a.cells[c],m(e,"colSpan",1),m(e,"rowSpan",1);for(c=g;f>c;c++)a.appendChild(q(a.cells[g-1]));for(c=f;g>c;c++)P.remove(a.cells[c]);b?d.parentNode.insertBefore(a,d):P.insertAfter(a,d)}),P.removeClass(P.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function E(a){var b;return e(J,function(c,d){return e(c,function(c,e){return c.elm==a?(b={x:e,y:d},!1):void 0}),!b}),b}function F(a){L=E(a)}function G(){var a,b;return a=b=0,e(J,function(c,d){e(c,function(c,e){var f,g;n(c)&&(c=J[d][e],e>a&&(a=e),d>b&&(b=d),c.real&&(f=c.colspan-1,g=c.rowspan-1,f&&e+f>a&&(a=e+f),g&&d+g>b&&(b=d+g)))})}),{x:a,y:b}}function H(a){var b,c,d,e,f,g,h,i,j,k;if(M=E(a),L&&M){for(b=Math.min(L.x,M.x),c=Math.min(L.y,M.y),d=Math.max(L.x,M.x),e=Math.max(L.y,M.y),f=d,g=e,k=c;g>=k;k++)a=J[k][b],a.real||b-(a.colspan-1)<b&&(b-=a.colspan-1);for(j=b;f>=j;j++)a=J[c][j],a.real||c-(a.rowspan-1)<c&&(c-=a.rowspan-1);for(k=c;e>=k;k++)for(j=b;d>=j;j++)a=J[k][j],a.real&&(h=a.colspan-1,i=a.rowspan-1,h&&j+h>f&&(f=j+h),i&&k+i>g&&(g=k+i));for(P.removeClass(P.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),k=c;g>=k;k++)for(j=b;f>=j;j++)J[k][j]&&P.addClass(J[k][j].elm,"mce-item-selected")}}function I(a,b){var c,d,e;c=E(a),d=c.y*K+c.x;do{if(d+=b,e=l(d%K,Math.floor(d/K)),!e)break;if(e.elm!=a)return O.select(e.elm,!0),P.isEmpty(e.elm)&&O.collapse(!0),!0}while(e.elm==a);return!1}var J,K,L,M,N,O=g.selection,P=O.dom;h=h||P.getParent(O.getStart(!0),"table"),j(),N=P.getParent(O.getStart(!0),"th,td"),N&&(L=E(N),M=G(),N=l(L.x,L.y)),a.extend(this,{deleteTable:p,split:t,merge:u,insertRow:v,insertCol:w,deleteCols:z,deleteRows:A,cutRows:B,copyRows:C,pasteRows:D,getPos:E,setStartCell:F,setEndCell:H,moveRelIdx:I,refresh:j})}}),d("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/Env","tinymce/util/Tools","tinymce/tableplugin/Utils"],function(a,b,c,d){var e=c.each,f=d.getSpanVal;return function(g){function h(){function b(b){function c(a,c){var e=a?"previousSibling":"nextSibling",f=g.dom.getParent(c,"tr"),h=f[e];if(h)return q(g,c,h,a),b.preventDefault(),!0;var k=g.dom.getParent(f,"table"),l=f.parentNode,m=l.nodeName.toLowerCase();if("tbody"===m||m===(a?"tfoot":"thead")){var n=d(a,k,l,"tbody");if(null!==n)return i(a,n,c)}return j(a,f,e,k)}function d(a,b,c,d){var e=g.dom.select(">"+d,b),f=e.indexOf(c);if(a&&0===f||!a&&f===e.length-1)return h(a,b);if(-1===f){var i="thead"===c.tagName.toLowerCase()?0:e.length-1;return e[i]}return e[f+(a?-1:1)]}function h(a,b){var c=a?"thead":"tfoot",d=g.dom.select(">"+c,b);return 0!==d.length?d[0]:null}function i(a,c,d){var e=k(c,a);return e&&q(g,d,e,a),b.preventDefault(),!0}function j(a,d,e,f){var h=f[e];if(h)return l(h),!0;var i=g.dom.getParent(f,"td,th");if(i)return c(a,i,b);var j=k(d,!a);return l(j),b.preventDefault(),!1}function k(a,b){var c=a&&a[b?"lastChild":"firstChild"];return c&&"BR"===c.nodeName?g.dom.getParent(c,"td,th"):c}function l(a){g.selection.setCursorLocation(a,0)}function m(){return t==a.UP||t==a.DOWN}function n(a){var b=a.selection.getNode(),c=a.dom.getParent(b,"tr");return null!==c}function o(a){for(var b=0,c=a;c.previousSibling;)c=c.previousSibling,b+=f(c,"colspan");return b}function p(a,b){var c=0,d=0;return e(a.children,function(a,e){return c+=f(a,"colspan"),d=e,c>b?!1:void 0}),d}function q(a,b,c,d){var e=o(g.dom.getParent(b,"td,th")),f=p(c,e),h=c.childNodes[f],i=k(h,d);l(i||h)}function r(a){var b=g.selection.getNode(),c=g.dom.getParent(b,"td,th"),d=g.dom.getParent(a,"td,th");return c&&c!==d&&s(c,d)}function s(a,b){return g.dom.getParent(a,"TABLE")===g.dom.getParent(b,"TABLE")}var t=b.keyCode;if(m()&&n(g)){var u=g.selection.getNode();setTimeout(function(){r(u)&&c(!b.shiftKey&&t===a.UP,u,b)},0)}}g.on("KeyDown",function(a){b(a)})}function i(){function a(a,b){var c,d=b.ownerDocument,e=d.createRange();return e.setStartBefore(b),e.setEnd(a.endContainer,a.endOffset),c=d.createElement("body"),c.appendChild(e.cloneContents()),0===c.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}g.on("KeyDown",function(b){var c,d,e=g.dom;(37==b.keyCode||38==b.keyCode)&&(c=g.selection.getRng(),d=e.getParent(c.startContainer,"table"),d&&g.getBody().firstChild==d&&a(c,d)&&(c=e.createRng(),c.setStartBefore(d),c.setEndBefore(d),g.selection.setRng(c),b.preventDefault()))})}function j(){g.on("KeyDown SetContent VisualAid",function(){var a;for(a=g.getBody().lastChild;a;a=a.previousSibling)if(3==a.nodeType){if(a.nodeValue.length>0)break}else if(1==a.nodeType&&("BR"==a.tagName||!a.getAttribute("data-mce-bogus")))break;a&&"TABLE"==a.nodeName&&(g.settings.forced_root_block?g.dom.add(g.getBody(),g.settings.forced_root_block,g.settings.forced_root_block_attrs,b.ie&&b.ie<11?"&nbsp;":'<br data-mce-bogus="1" />'):g.dom.add(g.getBody(),"br",{"data-mce-bogus":"1"}))}),g.on("PreProcess",function(a){var b=a.node.lastChild;b&&("BR"==b.nodeName||1==b.childNodes.length&&("BR"==b.firstChild.nodeName||"\xa0"==b.firstChild.nodeValue))&&b.previousSibling&&"TABLE"==b.previousSibling.nodeName&&g.dom.remove(b)})}function k(){function a(a,b,c,d){var e,f,g,h=3,i=a.dom.getParent(b.startContainer,"TABLE");return i&&(e=i.parentNode),f=b.startContainer.nodeType==h&&0===b.startOffset&&0===b.endOffset&&d&&("TR"==c.nodeName||c==e),g=("TD"==c.nodeName||"TH"==c.nodeName)&&!d,f||g}function b(){var b=g.selection.getRng(),c=g.selection.getNode(),d=g.dom.getParent(b.startContainer,"TD,TH");if(a(g,b,c,d)){d||(d=c);for(var e=d.lastChild;e.lastChild;)e=e.lastChild;3==e.nodeType&&(b.setEnd(e,e.data.length),g.selection.setRng(b))}}g.on("KeyDown",function(){b()}),g.on("MouseDown",function(a){2!=a.button&&b()})}function l(){function b(a){g.selection.select(a,!0),g.selection.collapse(!0)}function e(a){g.$(a).empty(),d.paddCell(a)}g.on("keydown",function(d){if((d.keyCode==a.DELETE||d.keyCode==a.BACKSPACE)&&!d.isDefaultPrevented()){var f,h,i,j;if(f=g.dom.getParent(g.selection.getStart(),"table")){if(h=g.dom.select("td,th",f),i=c.grep(h,function(a){return g.dom.hasClass(a,"mce-item-selected")}),0===i.length)return j=g.dom.getParent(g.selection.getStart(),"td,th"),void(g.selection.isCollapsed()&&j&&g.dom.isEmpty(j)&&(d.preventDefault(),e(j),b(j)));d.preventDefault(),g.undoManager.transact(function(){h.length==i.length?g.execCommand("mceTableDelete"):(c.each(i,e),b(i[0]))})}}})}l(),b.webkit&&(h(),k()),b.gecko&&(i(),j()),b.ie>10&&(i(),j())}}),d("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(a,b,c){return function(d){function e(a){d.getBody().style.webkitUserSelect="",(a||l)&&(d.dom.removeClass(d.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),l=!1)}function f(b){var c,e,f=b.target;if(!j&&h&&(g||f!=h)&&("TD"==f.nodeName||"TH"==f.nodeName)){e=k.getParent(f,"table"),e==i&&(g||(g=new a(d,e),g.setStartCell(h),d.getBody().style.webkitUserSelect="none"),g.setEndCell(f),l=!0),c=d.selection.getSel();try{c.removeAllRanges?c.removeAllRanges():c.empty()}catch(m){}b.preventDefault()}}var g,h,i,j,k=d.dom,l=!0;return d.on("MouseDown",function(a){2==a.button||j||(e(),h=k.getParent(a.target,"td,th"),i=k.getParent(h,"table"))}),d.on("mouseover",f),d.on("remove",function(){k.unbind(d.getDoc(),"mouseover",f)}),d.on("MouseUp",function(){function a(a,d){var f=new b(a,a);do{if(3==a.nodeType&&0!==c.trim(a.nodeValue).length)return void(d?e.setStart(a,0):e.setEnd(a,a.nodeValue.length));if("BR"==a.nodeName)return void(d?e.setStartBefore(a):e.setEndBefore(a))}while(a=d?f.next():f.prev())}var e,f,j,l,m,n=d.selection;if(h){if(g&&(d.getBody().style.webkitUserSelect=""),f=k.select("td.mce-item-selected,th.mce-item-selected"),f.length>0){e=k.createRng(),l=f[0],e.setStartBefore(l),e.setEndAfter(l),a(l,1),j=new b(l,k.getParent(f[0],"table"));do if("TD"==l.nodeName||"TH"==l.nodeName){if(!k.hasClass(l,"mce-item-selected"))break;m=l}while(l=j.next());a(m),n.setRng(e)}d.nodeChanged(),h=g=i=null}}),d.on("KeyUp Drop SetContent",function(a){e("setcontent"==a.type),h=g=i=null,j=!1}),d.on("ObjectResizeStart ObjectResized",function(a){j="objectresized"!=a.type}),{clear:e}}}),d("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(a,b){var c=a.each;return function(d){function e(){var a=d.settings.color_picker_callback;return a?function(){var b=this;a.call(d,function(a){b.value(a).fire("change")},b.value())}:void 0}function f(a){return{title:"Advanced",type:"form",defaults:{onchange:function(){l(a,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}}function g(a){return a?a.replace(/px$/,""):""}function h(a){return/^[0-9]+$/.test(a)&&(a+="px"),a}function i(a){c("left center right".split(" "),function(b){d.formatter.remove("align"+b,{},a)})}function j(a){c("top middle bottom".split(" "),function(b){d.formatter.remove("valign"+b,{},a)})}function k(b,c,d){function e(b,d){return d=d||[],a.each(b,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d}return e(b,d||[])}function l(a,b,c){var d=b.toJSON(),e=a.parseStyle(d.style);c?(b.find("#borderColor").value(e["border-color"]||"")[0].fire("change"),b.find("#backgroundColor").value(e["background-color"]||"")[0].fire("change")):(e["border-color"]=d.borderColor,e["background-color"]=d.backgroundColor),b.find("#style").value(a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}function m(a,b,c){var d=a.parseStyle(a.getAttrib(c,"style"));d["border-color"]&&(b.borderColor=d["border-color"]),d["background-color"]&&(b.backgroundColor=d["background-color"]),b.style=a.serializeStyle(d)}function n(a,b,d){var e=a.parseStyle(a.getAttrib(b,"style"));c(d,function(a){e[a.name]=a.value}),a.setAttrib(b,"style",a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}var o=this;o.tableProps=function(){o.table(!0)},o.table=function(e){function j(){function c(a,b,d){if("TD"===a.tagName||"TH"===a.tagName)v.setStyle(a,b,d);else if(a.children)for(var e=0;e<a.children.length;e++)c(a.children[e],b,d)}var e;l(v,this),w=a.extend(w,this.toJSON()),w["class"]===!1&&delete w["class"],d.undoManager.transact(function(){if(p||(p=d.plugins.table.insertTable(w.cols||1,w.rows||1)),d.dom.setAttribs(p,{style:w.style,"class":w["class"]}),d.settings.table_style_by_css){if(u=[],u.push({name:"border",value:w.border}),u.push({name:"border-spacing",value:h(w.cellspacing)}),n(v,p,u),v.setAttribs(p,{"data-mce-border-color":w.borderColor,"data-mce-cell-padding":w.cellpadding,"data-mce-border":w.border}),p.children)for(var a=0;a<p.children.length;a++)c(p.children[a],"border",w.border),c(p.children[a],"padding",h(w.cellpadding))}else d.dom.setAttribs(p,{border:w.border,cellpadding:w.cellpadding,cellspacing:w.cellspacing});v.getAttrib(p,"width")&&!d.settings.table_style_by_css?v.setAttrib(p,"width",g(w.width)):v.setStyle(p,"width",h(w.width)),v.setStyle(p,"height",h(w.height)),e=v.select("caption",p)[0],e&&!w.caption&&v.remove(e),!e&&w.caption&&(e=v.create("caption"),e.innerHTML=b.ie?"\xa0":'<br data-mce-bogus="1"/>',p.insertBefore(e,p.firstChild)),i(p),w.align&&d.formatter.apply("align"+w.align,{},p),d.focus(),d.addVisual()})}function o(a,b){function c(a,c){for(var d=0;d<c.length;d++){var e=v.getStyle(c[d],b);if("undefined"==typeof a&&(a=e),a!=e)return""}return a}var e,f=d.dom.select("td,th",a);return e=c(e,f)}var p,q,r,s,t,u,v=d.dom,w={};e===!0?(p=v.getParent(d.selection.getStart(),"table"),p&&(w={width:g(v.getStyle(p,"width")||v.getAttrib(p,"width")),height:g(v.getStyle(p,"height")||v.getAttrib(p,"height")),cellspacing:g(v.getStyle(p,"border-spacing")||v.getAttrib(p,"cellspacing")),cellpadding:v.getAttrib(p,"data-mce-cell-padding")||v.getAttrib(p,"cellpadding")||o(p,"padding"),border:v.getAttrib(p,"data-mce-border")||v.getAttrib(p,"border")||o(p,"border"),borderColor:v.getAttrib(p,"data-mce-border-color"),caption:!!v.select("caption",p)[0],"class":v.getAttrib(p,"class")},c("left center right".split(" "),function(a){d.formatter.matchNode(p,"align"+a)&&(w.align=a)}))):(q={label:"Cols",name:"cols"},r={label:"Rows",name:"rows"}),d.settings.table_class_list&&(w["class"]&&(w["class"]=w["class"].replace(/\s*mce\-item\-table\s*/g,"")),s={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"table",classes:[a.value]})})})}),t={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:d.settings.table_appearance_options!==!1?[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},s]},d.settings.table_advtab!==!1?(m(v,w,p),d.windowManager.open({title:"Table properties",data:w,bodyType:"tabpanel",body:[{title:"General",type:"form",items:t},f(v)],onsubmit:j})):d.windowManager.open({title:"Table properties",data:w,body:t,onsubmit:j})},o.merge=function(a,b){d.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var c=this.toJSON();d.undoManager.transact(function(){a.merge(b,c.cols,c.rows)})}})},o.cell=function(){function b(){l(p,this),n=a.extend(n,this.toJSON()),d.undoManager.transact(function(){c(q,function(a){d.dom.setAttribs(a,{scope:n.scope,style:n.style,"class":n["class"]}),d.dom.setStyles(a,{width:h(n.width),height:h(n.height)}),n.type&&a.nodeName.toLowerCase()!=n.type&&(a=p.rename(a,n.type)),i(a),n.align&&d.formatter.apply("align"+n.align,{},a),j(a),n.valign&&d.formatter.apply("valign"+n.valign,{},a)}),d.focus()})}var e,n,o,p=d.dom,q=[];if(q=d.dom.select("td.mce-item-selected,th.mce-item-selected"),e=d.dom.getParent(d.selection.getStart(),"td,th"),!q.length&&e&&q.push(e),e=e||q[0]){n={width:g(p.getStyle(e,"width")||p.getAttrib(e,"width")),height:g(p.getStyle(e,"height")||p.getAttrib(e,"height")),scope:p.getAttrib(e,"scope"),"class":p.getAttrib(e,"class")},n.type=e.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(e,"align"+a)&&(n.align=a)}),c("top middle bottom".split(" "),function(a){d.formatter.matchNode(e,"valign"+a)&&(n.valign=a)}),d.settings.table_cell_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_cell_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"td",classes:[a.value]})})})});var r={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},o]};d.settings.table_cell_advtab!==!1?(m(p,n,e),d.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:r},f(p)],onsubmit:b})):d.windowManager.open({title:"Cell properties",data:n,body:r,onsubmit:b})}},o.row=function(){function b(){var b,e,f;l(r,this),p=a.extend(p,this.toJSON()),d.undoManager.transact(function(){var a=p.type;c(s,function(c){d.dom.setAttribs(c,{scope:p.scope,style:p.style,"class":p["class"]}),d.dom.setStyles(c,{height:h(p.height)}),a!=c.parentNode.nodeName.toLowerCase()&&(b=r.getParent(c,"table"),e=c.parentNode,f=r.select(a,b)[0],f||(f=r.create(a),b.firstChild?b.insertBefore(f,b.firstChild):b.appendChild(f)),f.appendChild(c),e.hasChildNodes()||r.remove(e)),i(c),p.align&&d.formatter.apply("align"+p.align,{},c)}),d.focus()})}var e,j,n,o,p,q,r=d.dom,s=[];e=d.dom.getParent(d.selection.getStart(),"table"),j=d.dom.getParent(d.selection.getStart(),"td,th"),c(e.rows,function(a){c(a.cells,function(b){return r.hasClass(b,"mce-item-selected")||b==j?(s.push(a),!1):void 0})}),n=s[0],n&&(p={height:g(r.getStyle(n,"height")||r.getAttrib(n,"height")),scope:r.getAttrib(n,"scope"),"class":r.getAttrib(n,"class")},p.type=n.parentNode.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(n,"align"+a)&&(p.align=a)}),d.settings.table_row_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_row_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"tr",classes:[a.value]})})})}),q={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},d.settings.table_row_advtab!==!1?(m(r,p,n),d.windowManager.open({title:"Row properties",data:p,bodyType:"tabpanel",body:[{title:"General",type:"form",items:q},f(r)],onsubmit:b})):d.windowManager.open({title:"Row properties",data:p,body:q,onsubmit:b}))}}}),d("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(a,b,c,d,e,f,g,h){function i(e){function f(a){return function(){e.execCommand(a)}}function h(a,b){var c,d,f,h;for(f='<table id="__mce"><tbody>',c=0;b>c;c++){for(f+="<tr>",d=0;a>d;d++)f+="<td>"+(g.ie?" ":"<br>")+"</td>";f+="</tr>"}return f+="</tbody></table>",e.undoManager.transact(function(){e.insertContent(f),h=e.dom.get("__mce"),e.dom.setAttrib(h,"id",null),e.dom.setAttribs(h,e.settings.table_default_attributes||{}),e.dom.setStyles(h,e.settings.table_default_styles||{})}),h}function i(a,b){function c(){a.disabled(!e.dom.getParent(e.selection.getStart(),b)),e.selection.selectorChanged(b,function(b){a.disabled(!b)})}e.initialized?c():e.on("init",c)}function k(){i(this,"table")}function l(){i(this,"td,th")}function m(){var a="";a='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var b=0;10>b;b++){a+="<tr>";for(var c=0;10>c;c++)a+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*b+c)+'" href="#" data-mce-x="'+c+'" data-mce-y="'+b+'"></a></td>';a+="</tr>"}return a+="</table>",a+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function n(a,b,c){var d,f,g,h,i,j=c.getEl().getElementsByTagName("table")[0],k=c.isRtl()||"tl-tr"==c.parent().rel;for(j.nextSibling.innerHTML=a+1+" x "+(b+1),k&&(a=9-a),f=0;10>f;f++)for(d=0;10>d;d++)h=j.rows[f].childNodes[d].firstChild,i=(k?d>=a:a>=d)&&b>=f,e.dom.toggleClass(h,"mce-active",i),i&&(g=h);return g.parentNode}var o,p=this,q=new d(e);e.settings.table_grid===!1?e.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:q.table}):e.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(a){a.aria&&(this.parent().hideAll(),a.stopImmediatePropagation(),q.table())},onshow:function(){n(0,0,this.menu.items()[0])},onhide:function(){var a=this.menu.items()[0].getEl().getElementsByTagName("a");e.dom.removeClass(a,"mce-active"),e.dom.addClass(a[0],"mce-active")},menu:[{type:"container",html:m(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(a){var b,c,d=a.target;"A"==d.tagName.toUpperCase()&&(b=parseInt(d.getAttribute("data-mce-x"),10),c=parseInt(d.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(b=9-b),(b!==this.lastX||c!==this.lastY)&&(n(b,c,a.control),this.lastX=b,this.lastY=c))},onclick:function(a){var b=this;"A"==a.target.tagName.toUpperCase()&&(a.preventDefault(),a.stopPropagation(),b.parent().cancel(),e.undoManager.transact(function(){h(b.lastX+1,b.lastY+1)}),e.addVisual())}}]}),e.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:k,onclick:q.tableProps}),e.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:k,cmd:"mceTableDelete"}),e.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:f("mceTableCellProps"),onPostRender:l},{text:"Merge cells",onclick:f("mceTableMergeCells"),onPostRender:l},{text:"Split cell",onclick:f("mceTableSplitCells"),onPostRender:l}]}),e.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:f("mceTableInsertRowBefore"),onPostRender:l},{text:"Insert row after",onclick:f("mceTableInsertRowAfter"),onPostRender:l},{text:"Delete row",onclick:f("mceTableDeleteRow"),onPostRender:l},{text:"Row properties",onclick:f("mceTableRowProps"),onPostRender:l},{text:"-"},{text:"Cut row",onclick:f("mceTableCutRow"),onPostRender:l},{text:"Copy row",onclick:f("mceTableCopyRow"),onPostRender:l},{text:"Paste row before",onclick:f("mceTablePasteRowBefore"),onPostRender:l},{text:"Paste row after",onclick:f("mceTablePasteRowAfter"),onPostRender:l}]}),e.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:f("mceTableInsertColBefore"),onPostRender:l},{text:"Insert column after",onclick:f("mceTableInsertColAfter"),onPostRender:l},{text:"Delete column",onclick:f("mceTableDeleteCol"),onPostRender:l}]});var r=[];j("inserttable tableprops deletetable | cell row column".split(" "),function(a){"|"==a?r.push({text:"-"}):r.push(e.menuItems[a])}),e.addButton("table",{type:"menubutton",title:"Table",menu:r}),g.isIE||e.on("click",function(a){a=a.target,"TABLE"===a.nodeName&&(e.selection.select(a),e.nodeChanged())}),p.quirks=new b(e),e.on("Init",function(){p.cellSelection=new c(e)}),e.on("PreInit",function(){e.serializer.addAttributeFilter("data-mce-cell-padding,data-mce-border,data-mce-border-color",function(a,b){for(var c=a.length;c--;)a[c].attr(b,null)})}),j({mceTableSplitCells:function(a){a.split()},mceTableMergeCells:function(a){var b;b=e.dom.getParent(e.selection.getStart(),"th,td"),e.dom.select("td.mce-item-selected,th.mce-item-selected").length?a.merge():q.merge(a,b)},mceTableInsertRowBefore:function(a){a.insertRow(!0)},mceTableInsertRowAfter:function(a){a.insertRow()},mceTableInsertColBefore:function(a){a.insertCol(!0)},mceTableInsertColAfter:function(a){a.insertCol()},mceTableDeleteCol:function(a){a.deleteCols()},mceTableDeleteRow:function(a){a.deleteRows()},mceTableCutRow:function(a){o=a.cutRows()},mceTableCopyRow:function(a){o=a.copyRows()},mceTablePasteRowBefore:function(a){a.pasteRows(o,!0)},mceTablePasteRowAfter:function(a){a.pasteRows(o)},mceTableDelete:function(a){a.deleteTable()}},function(b,c){e.addCommand(c,function(){var c=new a(e);c&&(b(c),e.execCommand("mceRepaint"),p.cellSelection.clear())})}),j({mceInsertTable:q.table,mceTableProps:function(){q.table(!0)},mceTableRowProps:q.row,mceTableCellProps:q.cell},function(a,b){e.addCommand(b,function(b,c){a(c)})}),e.settings.table_tab_navigation!==!1&&e.on("keydown",function(b){var c,d,f;9==b.keyCode&&(c=e.dom.getParent(e.selection.getStart(),"th,td"),c&&(b.preventDefault(),d=new a(e),f=b.shiftKey?-1:1,e.undoManager.transact(function(){!d.moveRelIdx(c,f)&&f>0&&(d.insertRow(),d.refresh(),d.moveRelIdx(c,f))})))}),p.insertTable=h}var j=e.each;h.add("table",i)})}(this);
 
1
+ !function(a,b){"use strict";function c(a,b){for(var c,d=[],g=0;g<a.length;++g){if(c=f[a[g]]||e(a[g]),!c)throw"module definition dependecy not found: "+a[g];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){f[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}var f={};d("tinymce/tableplugin/Utils",["tinymce/Env"],function(a){function b(a,b){return parseInt(a.getAttribute(b)||1,10)}function c(b){(!a.ie||a.ie>9)&&(b.hasChildNodes()||(b.innerHTML='<br data-mce-bogus="1" />'))}return{getSpanVal:b,paddCell:c}}),d("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env","tinymce/tableplugin/Utils"],function(a,c,d){var e=a.each,f=d.getSpanVal;return function(g,h,i){function j(){g.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected")}function k(a){return a===g.getBody()}function l(b,c){return b?(c=a.map(c.split(","),function(a){return a.toLowerCase()}),a.grep(b.childNodes,function(b){return-1!==a.inArray(c,b.nodeName.toLowerCase())})):[]}function m(){var a=0;O=[],P=0,e(["thead","tbody","tfoot"],function(b){var c=l(h,b)[0],d=l(c,"tr");e(d,function(c,d){d+=a,e(l(c,"td,th"),function(a,c){var e,g,h,i;if(O[d])for(;O[d][c];)c++;for(h=f(a,"rowspan"),i=f(a,"colspan"),g=d;d+h>g;g++)for(O[g]||(O[g]=[]),e=c;c+i>e;e++)O[g][e]={part:b,real:g==d&&e==c,elm:a,rowspan:h,colspan:i};P=Math.max(P,c+1)})}),a+=d.length})}function n(a){return g.fire("newrow",{node:a}),a}function o(a){return g.fire("newcell",{node:a}),a}function p(a,b){return a=a.cloneNode(b),a.removeAttribute("id"),a}function q(a,b){var c;return c=O[b],c?c[a]:void 0}function r(a,b,c){a&&(c=parseInt(c,10),1===c?a.removeAttribute(b,1):a.setAttribute(b,c,1))}function s(a){return a&&(!!T.getAttrib(a.elm,"data-mce-selected")||a==i)}function t(){var a=[];return e(h.rows,function(b){e(b.cells,function(c){return T.getAttrib(c,"data-mce-selected")||i&&c==i.elm?(a.push(b),!1):void 0})}),a}function u(){var a=T.createRng();k(h)||(a.setStartAfter(h),a.setEndAfter(h),S.setRng(a),T.remove(h))}function v(b){var f,h={};return g.settings.table_clone_elements!==!1&&(h=a.makeMap((g.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),a.walk(b,function(a){var d;return 3==a.nodeType?(e(T.getParents(a.parentNode,null,b).reverse(),function(a){h[a.nodeName]&&(a=p(a,!1),f?d&&d.appendChild(a):f=d=a,d=a)}),d&&(d.innerHTML=c.ie&&c.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),b=p(b,!1),o(b),r(b,"rowSpan",1),r(b,"colSpan",1),f?b.appendChild(f):d.paddCell(b),b}function w(){var a,b=T.createRng();return e(T.select("tr",h),function(a){0===a.cells.length&&T.remove(a)}),0===T.select("tr",h).length?(b.setStartBefore(h),b.setEndBefore(h),S.setRng(b),void T.remove(h)):(e(T.select("thead,tbody,tfoot",h),function(a){0===a.rows.length&&T.remove(a)}),m(),void(Q&&(a=O[Math.min(O.length-1,Q.y)],a&&(S.select(a[Math.min(a.length-1,Q.x)].elm,!0),S.collapse(!0)))))}function x(a,b,c,d){var e,f,g,h,i;for(e=O[b][a].elm.parentNode,g=1;c>=g;g++)if(e=T.getNext(e,"tr")){for(f=a;f>=0;f--)if(i=O[b+g][f].elm,i.parentNode==e){for(h=1;d>=h;h++)T.insertAfter(v(i),i);break}if(-1==f)for(h=1;d>=h;h++)e.insertBefore(v(e.cells[0]),e.cells[0])}}function y(){e(O,function(a,b){e(a,function(a,c){var d,e,g;if(s(a)&&(a=a.elm,d=f(a,"colspan"),e=f(a,"rowspan"),d>1||e>1)){for(r(a,"rowSpan",1),r(a,"colSpan",1),g=0;d-1>g;g++)T.insertAfter(v(a),a);x(c,b,e-1,d)}})})}function z(b,c,d){var f,g,h,i,j,k,l,n,o,p,t;if(b?(f=J(b),g=f.x,h=f.y,i=g+(c-1),j=h+(d-1)):(Q=R=null,e(O,function(a,b){e(a,function(a,c){s(a)&&(Q||(Q={x:c,y:b}),R={x:c,y:b})})}),Q&&(g=Q.x,h=Q.y,i=R.x,j=R.y)),n=q(g,h),o=q(i,j),n&&o&&n.part==o.part){for(y(),m(),n=q(g,h).elm,r(n,"colSpan",i-g+1),r(n,"rowSpan",j-h+1),l=h;j>=l;l++)for(k=g;i>=k;k++)O[l]&&O[l][k]&&(b=O[l][k].elm,b!=n&&(p=a.grep(b.childNodes),e(p,function(a){n.appendChild(a)}),p.length&&(p=a.grep(n.childNodes),t=0,e(p,function(a){"BR"==a.nodeName&&t++<p.length-1&&n.removeChild(a)})),T.remove(b)));w()}}function A(a){var c,d,g,h,i,j,k,l,m;if(e(O,function(b,d){return e(b,function(b){return s(b)&&(b=b.elm,i=b.parentNode,j=n(p(i,!1)),c=d,a)?!1:void 0}),a?!c:void 0}),c!==b){for(h=0;h<O[0].length;h++)if(O[c][h]&&(d=O[c][h].elm,d!=g)){if(a){if(c>0&&O[c-1][h]&&(l=O[c-1][h].elm,m=f(l,"rowSpan"),m>1)){r(l,"rowSpan",m+1);continue}}else if(m=f(d,"rowspan"),m>1){r(d,"rowSpan",m+1);continue}k=v(d),r(k,"colSpan",d.colSpan),j.appendChild(k),g=d}j.hasChildNodes()&&(a?i.parentNode.insertBefore(j,i):T.insertAfter(j,i))}}function B(a){var b,c;e(O,function(c){return e(c,function(c,d){return s(c)&&(b=d,a)?!1:void 0}),a?!b:void 0}),e(O,function(d,e){var g,h,i;d[b]&&(g=d[b].elm,g!=c&&(i=f(g,"colspan"),h=f(g,"rowspan"),1==i?a?(g.parentNode.insertBefore(v(g),g),x(b,e,h-1,i)):(T.insertAfter(v(g),g),x(b,e,h-1,i)):r(g,"colSpan",g.colSpan+1),c=g))})}function C(b){return a.grep(D(b),s)}function D(a){var b=[];return e(a,function(a){e(a,function(a){b.push(a)})}),b}function E(){var b=[];if(k(h)){if(1==O[0].length)return;if(C(O).length==D(O).length)return}e(O,function(c){e(c,function(c,d){s(c)&&-1===a.inArray(b,d)&&(e(O,function(a){var b,c=a[d].elm;b=f(c,"colSpan"),b>1?r(c,"colSpan",b-1):T.remove(c)}),b.push(d))})}),w()}function F(){function a(a){var b,c;e(a.cells,function(a){var c=f(a,"rowSpan");c>1&&(r(a,"rowSpan",c-1),b=J(a),x(b.x,b.y,1,1))}),b=J(a.cells[0]),e(O[b.y],function(a){var b;a=a.elm,a!=c&&(b=f(a,"rowSpan"),1>=b?T.remove(a):r(a,"rowSpan",b-1),c=a)})}var b;b=t(),k(h)&&b.length==h.rows.length||(e(b.reverse(),function(b){a(b)}),w())}function G(){var a=t();if(!k(h)||a.length!=h.rows.length)return T.remove(a),w(),a}function H(){var a=t();return e(a,function(b,c){a[c]=p(b,!0)}),a}function I(a,b){var c=t(),d=c[b?0:c.length-1],f=d.cells.length;a&&(e(O,function(a){var b;return f=0,e(a,function(a){a.real&&(f+=a.colspan),a.elm.parentNode==d&&(b=1)}),b?!1:void 0}),b||a.reverse(),e(a,function(a){var c,e,g=a.cells.length;for(n(a),c=0;g>c;c++)e=a.cells[c],o(e),r(e,"colSpan",1),r(e,"rowSpan",1);for(c=g;f>c;c++)a.appendChild(o(v(a.cells[g-1])));for(c=f;g>c;c++)T.remove(a.cells[c]);b?d.parentNode.insertBefore(a,d):T.insertAfter(a,d)}),j())}function J(a){var b;return e(O,function(c,d){return e(c,function(c,e){return c.elm==a?(b={x:e,y:d},!1):void 0}),!b}),b}function K(a){Q=J(a)}function L(){var a,b;return a=b=0,e(O,function(c,d){e(c,function(c,e){var f,g;s(c)&&(c=O[d][e],e>a&&(a=e),d>b&&(b=d),c.real&&(f=c.colspan-1,g=c.rowspan-1,f&&e+f>a&&(a=e+f),g&&d+g>b&&(b=d+g)))})}),{x:a,y:b}}function M(a){var b,c,d,e,f,g,h,i,k,l;if(R=J(a),Q&&R){for(b=Math.min(Q.x,R.x),c=Math.min(Q.y,R.y),d=Math.max(Q.x,R.x),e=Math.max(Q.y,R.y),f=d,g=e,l=c;g>=l;l++)a=O[l][b],a.real||b-(a.colspan-1)<b&&(b-=a.colspan-1);for(k=b;f>=k;k++)a=O[c][k],a.real||c-(a.rowspan-1)<c&&(c-=a.rowspan-1);for(l=c;e>=l;l++)for(k=b;d>=k;k++)a=O[l][k],a.real&&(h=a.colspan-1,i=a.rowspan-1,h&&k+h>f&&(f=k+h),i&&l+i>g&&(g=l+i));for(j(),l=c;g>=l;l++)for(k=b;f>=k;k++)O[l][k]&&T.setAttrib(O[l][k].elm,"data-mce-selected","1")}}function N(a,b){var c,d,e;c=J(a),d=c.y*P+c.x;do{if(d+=b,e=q(d%P,Math.floor(d/P)),!e)break;if(e.elm!=a)return S.select(e.elm,!0),T.isEmpty(e.elm)&&S.collapse(!0),!0}while(e.elm==a);return!1}var O,P,Q,R,S=g.selection,T=S.dom;h=h||T.getParent(S.getStart(!0),"table"),m(),i=i||T.getParent(S.getStart(!0),"th,td"),i&&(Q=J(i),R=L(),i=q(Q.x,Q.y)),a.extend(this,{deleteTable:u,split:y,merge:z,insertRow:A,insertCol:B,deleteCols:E,deleteRows:F,cutRows:G,copyRows:H,pasteRows:I,getPos:J,setStartCell:K,setEndCell:M,moveRelIdx:N,refresh:m})}}),d("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/util/Delay","tinymce/Env","tinymce/util/Tools","tinymce/tableplugin/Utils"],function(a,b,c,d,e){var f=d.each,g=e.getSpanVal;return function(h){function i(){function c(c){function d(a,b){var d=a?"previousSibling":"nextSibling",f=h.dom.getParent(b,"tr"),g=f[d];if(g)return r(h,b,g,a),c.preventDefault(),!0;var i=h.dom.getParent(f,"table"),l=f.parentNode,m=l.nodeName.toLowerCase();if("tbody"===m||m===(a?"tfoot":"thead")){var n=e(a,i,l,"tbody");if(null!==n)return j(a,n,b)}return k(a,f,d,i)}function e(a,b,c,d){var e=h.dom.select(">"+d,b),f=e.indexOf(c);if(a&&0===f||!a&&f===e.length-1)return i(a,b);if(-1===f){var g="thead"===c.tagName.toLowerCase()?0:e.length-1;return e[g]}return e[f+(a?-1:1)]}function i(a,b){var c=a?"thead":"tfoot",d=h.dom.select(">"+c,b);return 0!==d.length?d[0]:null}function j(a,b,d){var e=l(b,a);return e&&r(h,d,e,a),c.preventDefault(),!0}function k(a,b,e,f){var g=f[e];if(g)return m(g),!0;var i=h.dom.getParent(f,"td,th");if(i)return d(a,i,c);var j=l(b,!a);return m(j),c.preventDefault(),!1}function l(a,b){var c=a&&a[b?"lastChild":"firstChild"];return c&&"BR"===c.nodeName?h.dom.getParent(c,"td,th"):c}function m(a){h.selection.setCursorLocation(a,0)}function n(){return u==a.UP||u==a.DOWN}function o(a){var b=a.selection.getNode(),c=a.dom.getParent(b,"tr");return null!==c}function p(a){for(var b=0,c=a;c.previousSibling;)c=c.previousSibling,b+=g(c,"colspan");return b}function q(a,b){var c=0,d=0;return f(a.children,function(a,e){return c+=g(a,"colspan"),d=e,c>b?!1:void 0}),d}function r(a,b,c,d){var e=p(h.dom.getParent(b,"td,th")),f=q(c,e),g=c.childNodes[f],i=l(g,d);m(i||g)}function s(a){var b=h.selection.getNode(),c=h.dom.getParent(b,"td,th"),d=h.dom.getParent(a,"td,th");return c&&c!==d&&t(c,d)}function t(a,b){return h.dom.getParent(a,"TABLE")===h.dom.getParent(b,"TABLE")}var u=c.keyCode;if(n()&&o(h)){var v=h.selection.getNode();b.setEditorTimeout(h,function(){s(v)&&d(!c.shiftKey&&u===a.UP,v,c)},0)}}h.on("KeyDown",function(a){c(a)})}function j(){function a(a,b){var c,d=b.ownerDocument,e=d.createRange();return e.setStartBefore(b),e.setEnd(a.endContainer,a.endOffset),c=d.createElement("body"),c.appendChild(e.cloneContents()),0===c.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}h.on("KeyDown",function(b){var c,d,e=h.dom;37!=b.keyCode&&38!=b.keyCode||(c=h.selection.getRng(),d=e.getParent(c.startContainer,"table"),d&&h.getBody().firstChild==d&&a(c,d)&&(c=e.createRng(),c.setStartBefore(d),c.setEndBefore(d),h.selection.setRng(c),b.preventDefault()))})}function k(){h.on("KeyDown SetContent VisualAid",function(){var a;for(a=h.getBody().lastChild;a;a=a.previousSibling)if(3==a.nodeType){if(a.nodeValue.length>0)break}else if(1==a.nodeType&&("BR"==a.tagName||!a.getAttribute("data-mce-bogus")))break;a&&"TABLE"==a.nodeName&&(h.settings.forced_root_block?h.dom.add(h.getBody(),h.settings.forced_root_block,h.settings.forced_root_block_attrs,c.ie&&c.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'):h.dom.add(h.getBody(),"br",{"data-mce-bogus":"1"}))}),h.on("PreProcess",function(a){var b=a.node.lastChild;b&&("BR"==b.nodeName||1==b.childNodes.length&&("BR"==b.firstChild.nodeName||"\xa0"==b.firstChild.nodeValue))&&b.previousSibling&&"TABLE"==b.previousSibling.nodeName&&h.dom.remove(b)})}function l(){function a(a,b,c,d){var e,f,g,h=3,i=a.dom.getParent(b.startContainer,"TABLE");return i&&(e=i.parentNode),f=b.startContainer.nodeType==h&&0===b.startOffset&&0===b.endOffset&&d&&("TR"==c.nodeName||c==e),g=("TD"==c.nodeName||"TH"==c.nodeName)&&!d,f||g}function b(){var b=h.selection.getRng(),c=h.selection.getNode(),d=h.dom.getParent(b.startContainer,"TD,TH");if(a(h,b,c,d)){d||(d=c);for(var e=d.lastChild;e.lastChild;)e=e.lastChild;3==e.nodeType&&(b.setEnd(e,e.data.length),h.selection.setRng(b))}}h.on("KeyDown",function(){b()}),h.on("MouseDown",function(a){2!=a.button&&b()})}function m(){function b(a){h.selection.select(a,!0),h.selection.collapse(!0)}function c(a){h.$(a).empty(),e.paddCell(a)}h.on("keydown",function(e){if((e.keyCode==a.DELETE||e.keyCode==a.BACKSPACE)&&!e.isDefaultPrevented()){var f,g,i,j;if(f=h.dom.getParent(h.selection.getStart(),"table")){if(g=h.dom.select("td,th",f),i=d.grep(g,function(a){return!!h.dom.getAttrib(a,"data-mce-selected")}),0===i.length)return j=h.dom.getParent(h.selection.getStart(),"td,th"),void(h.selection.isCollapsed()&&j&&h.dom.isEmpty(j)&&(e.preventDefault(),c(j),b(j)));e.preventDefault(),h.undoManager.transact(function(){g.length==i.length?h.execCommand("mceTableDelete"):(d.each(i,c),b(i[0]))})}}})}m(),c.webkit&&(i(),l()),c.gecko&&(j(),k()),c.ie>9&&(j(),k())}}),d("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(a,b,c){return function(d){function e(a){d.getBody().style.webkitUserSelect="",(a||n)&&(d.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected"),n=!1)}function f(a,b){return a&&b?a===m.getParent(b,"table"):!1}function g(b){var c,e,g=b.target;if(!l&&g!==k&&(k=g,j&&i)){if(e=m.getParent(g,"td,th"),f(j,e)||(e=m.getParent(j,"td,th")),i===e&&!n)return;if(f(j,e)){b.preventDefault(),h||(h=new a(d,j,i),d.getBody().style.webkitUserSelect="none"),h.setEndCell(e),n=!0,c=d.selection.getSel();try{c.removeAllRanges?c.removeAllRanges():c.empty()}catch(o){}}}}var h,i,j,k,l,m=d.dom,n=!0;return d.on("SelectionChange",function(a){n&&a.stopImmediatePropagation()},!0),d.on("MouseDown",function(a){2==a.button||l||(e(),i=m.getParent(a.target,"td,th"),j=m.getParent(i,"table"))}),d.on("mouseover",g),d.on("remove",function(){m.unbind(d.getDoc(),"mouseover",g),e()}),d.on("MouseUp",function(){function a(a,d){var f=new b(a,a);do{if(3==a.nodeType&&0!==c.trim(a.nodeValue).length)return void(d?e.setStart(a,0):e.setEnd(a,a.nodeValue.length));if("BR"==a.nodeName)return void(d?e.setStartBefore(a):e.setEndBefore(a))}while(a=d?f.next():f.prev())}var e,f,g,l,n,o=d.selection;if(i){if(h&&(d.getBody().style.webkitUserSelect=""),f=m.select("td[data-mce-selected],th[data-mce-selected]"),f.length>0){e=m.createRng(),l=f[0],e.setStartBefore(l),e.setEndAfter(l),a(l,1),g=new b(l,m.getParent(f[0],"table"));do if("TD"==l.nodeName||"TH"==l.nodeName){if(!m.getAttrib(l,"data-mce-selected"))break;n=l}while(l=g.next());a(n),o.setRng(e)}d.nodeChanged(),i=h=j=k=null}}),d.on("KeyUp Drop SetContent",function(a){e("setcontent"==a.type),i=h=j=k=null,l=!1}),d.on("ObjectResizeStart ObjectResized",function(a){l="objectresized"!=a.type}),{clear:e}}}),d("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(a,b){var c=a.each;return function(d){function e(){var a=d.settings.color_picker_callback;return a?function(){var b=this;a.call(d,function(a){b.value(a).fire("change")},b.value())}:void 0}function f(a){return{title:"Advanced",type:"form",defaults:{onchange:function(){l(a,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}}function g(a){return a?a.replace(/px$/,""):""}function h(a){return/^[0-9]+$/.test(a)&&(a+="px"),a}function i(a){c("left center right".split(" "),function(b){d.formatter.remove("align"+b,{},a)})}function j(a){c("top middle bottom".split(" "),function(b){d.formatter.remove("valign"+b,{},a)})}function k(b,c,d){function e(b,d){return d=d||[],a.each(b,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d}return e(b,d||[])}function l(a,b,c){var d=b.toJSON(),e=a.parseStyle(d.style);c?(b.find("#borderColor").value(e["border-color"]||"")[0].fire("change"),b.find("#backgroundColor").value(e["background-color"]||"")[0].fire("change")):(e["border-color"]=d.borderColor,e["background-color"]=d.backgroundColor),b.find("#style").value(a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}function m(a,b,c){var d=a.parseStyle(a.getAttrib(c,"style"));d["border-color"]&&(b.borderColor=d["border-color"]),d["background-color"]&&(b.backgroundColor=d["background-color"]),b.style=a.serializeStyle(d)}function n(a,b,d){var e=a.parseStyle(a.getAttrib(b,"style"));c(d,function(a){e[a.name]=a.value}),a.setAttrib(b,"style",a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}var o=this;o.tableProps=function(){o.table(!0)},o.table=function(e){function j(){function c(a,b,d){if("TD"===a.tagName||"TH"===a.tagName)v.setStyle(a,b,d);else if(a.children)for(var e=0;e<a.children.length;e++)c(a.children[e],b,d)}var e;l(v,this),w=a.extend(w,this.toJSON()),w["class"]===!1&&delete w["class"],d.undoManager.transact(function(){if(p||(p=d.plugins.table.insertTable(w.cols||1,w.rows||1)),d.dom.setAttribs(p,{style:w.style,"class":w["class"]}),d.settings.table_style_by_css){if(u=[],u.push({name:"border",value:w.border}),u.push({name:"border-spacing",value:h(w.cellspacing)}),n(v,p,u),v.setAttribs(p,{"data-mce-border-color":w.borderColor,"data-mce-cell-padding":w.cellpadding,"data-mce-border":w.border}),p.children)for(var a=0;a<p.children.length;a++)c(p.children[a],"border",w.border),c(p.children[a],"padding",h(w.cellpadding))}else d.dom.setAttribs(p,{border:w.border,cellpadding:w.cellpadding,cellspacing:w.cellspacing});v.getAttrib(p,"width")&&!d.settings.table_style_by_css?v.setAttrib(p,"width",g(w.width)):v.setStyle(p,"width",h(w.width)),v.setStyle(p,"height",h(w.height)),e=v.select("caption",p)[0],e&&!w.caption&&v.remove(e),!e&&w.caption&&(e=v.create("caption"),e.innerHTML=b.ie?"\xa0":'<br data-mce-bogus="1"/>',p.insertBefore(e,p.firstChild)),i(p),w.align&&d.formatter.apply("align"+w.align,{},p),d.focus(),d.addVisual()})}function o(a,b){function c(a,c){for(var d=0;d<c.length;d++){var e=v.getStyle(c[d],b);if("undefined"==typeof a&&(a=e),a!=e)return""}return a}var e,f=d.dom.select("td,th",a);return e=c(e,f)}var p,q,r,s,t,u,v=d.dom,w={};e===!0?(p=v.getParent(d.selection.getStart(),"table"),p&&(w={width:g(v.getStyle(p,"width")||v.getAttrib(p,"width")),height:g(v.getStyle(p,"height")||v.getAttrib(p,"height")),cellspacing:g(v.getStyle(p,"border-spacing")||v.getAttrib(p,"cellspacing")),cellpadding:v.getAttrib(p,"data-mce-cell-padding")||v.getAttrib(p,"cellpadding")||o(p,"padding"),border:v.getAttrib(p,"data-mce-border")||v.getAttrib(p,"border")||o(p,"border"),borderColor:v.getAttrib(p,"data-mce-border-color"),caption:!!v.select("caption",p)[0],"class":v.getAttrib(p,"class")},c("left center right".split(" "),function(a){d.formatter.matchNode(p,"align"+a)&&(w.align=a)}))):(q={label:"Cols",name:"cols"},r={label:"Rows",name:"rows"}),d.settings.table_class_list&&(w["class"]&&(w["class"]=w["class"].replace(/\s*mce\-item\-table\s*/g,"")),s={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"table",classes:[a.value]})})})}),t={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:d.settings.table_appearance_options!==!1?[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},s]},d.settings.table_advtab!==!1?(m(v,w,p),d.windowManager.open({title:"Table properties",data:w,bodyType:"tabpanel",body:[{title:"General",type:"form",items:t},f(v)],onsubmit:j})):d.windowManager.open({title:"Table properties",data:w,body:t,onsubmit:j})},o.merge=function(a,b){d.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var c=this.toJSON();d.undoManager.transact(function(){a.merge(b,c.cols,c.rows)})}})},o.cell=function(){function b(){l(p,this),n=a.extend(n,this.toJSON()),d.undoManager.transact(function(){c(q,function(a){d.dom.setAttribs(a,{scope:n.scope,style:n.style,"class":n["class"]}),d.dom.setStyles(a,{width:h(n.width),height:h(n.height)}),n.type&&a.nodeName.toLowerCase()!=n.type&&(a=p.rename(a,n.type)),i(a),n.align&&d.formatter.apply("align"+n.align,{},a),j(a),n.valign&&d.formatter.apply("valign"+n.valign,{},a)}),d.focus()})}var e,n,o,p=d.dom,q=[];if(q=d.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=d.dom.getParent(d.selection.getStart(),"td,th"),!q.length&&e&&q.push(e),e=e||q[0]){n={width:g(p.getStyle(e,"width")||p.getAttrib(e,"width")),height:g(p.getStyle(e,"height")||p.getAttrib(e,"height")),scope:p.getAttrib(e,"scope"),"class":p.getAttrib(e,"class")},n.type=e.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(e,"align"+a)&&(n.align=a)}),c("top middle bottom".split(" "),function(a){d.formatter.matchNode(e,"valign"+a)&&(n.valign=a)}),d.settings.table_cell_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_cell_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"td",classes:[a.value]})})})});var r={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},o]};d.settings.table_cell_advtab!==!1?(m(p,n,e),d.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:r},f(p)],onsubmit:b})):d.windowManager.open({title:"Cell properties",data:n,body:r,onsubmit:b})}},o.row=function(){function b(){var b,e,f;l(r,this),p=a.extend(p,this.toJSON()),d.undoManager.transact(function(){var a=p.type;c(s,function(c){d.dom.setAttribs(c,{scope:p.scope,style:p.style,"class":p["class"]}),d.dom.setStyles(c,{height:h(p.height)}),a!=c.parentNode.nodeName.toLowerCase()&&(b=r.getParent(c,"table"),e=c.parentNode,f=r.select(a,b)[0],f||(f=r.create(a),b.firstChild?b.insertBefore(f,b.firstChild):b.appendChild(f)),f.appendChild(c),e.hasChildNodes()||r.remove(e)),i(c),p.align&&d.formatter.apply("align"+p.align,{},c)}),d.focus()})}var e,j,n,o,p,q,r=d.dom,s=[];e=d.dom.getParent(d.selection.getStart(),"table"),j=d.dom.getParent(d.selection.getStart(),"td,th"),c(e.rows,function(a){c(a.cells,function(b){return r.getAttrib(b,"data-mce-selected")||b==j?(s.push(a),!1):void 0})}),n=s[0],n&&(p={height:g(r.getStyle(n,"height")||r.getAttrib(n,"height")),scope:r.getAttrib(n,"scope"),"class":r.getAttrib(n,"class")},p.type=n.parentNode.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(n,"align"+a)&&(p.align=a)}),d.settings.table_row_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_row_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"tr",classes:[a.value]})})})}),q={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},d.settings.table_row_advtab!==!1?(m(r,p,n),d.windowManager.open({title:"Row properties",data:p,bodyType:"tabpanel",body:[{title:"General",type:"form",items:q},f(r)],onsubmit:b})):d.windowManager.open({title:"Row properties",data:p,body:q,onsubmit:b}))}}}),d("tinymce/tableplugin/ResizeBars",["tinymce/util/Tools","tinymce/util/VK"],function(a,c){var d;return function(e){function f(a,b){return{index:a,y:e.dom.getPos(b).y}}function g(a,b){return{index:a,y:e.dom.getPos(b).y+b.offsetHeight}}function h(a,b){return{index:a,x:e.dom.getPos(b).x}}function i(a,b){return{index:a,x:e.dom.getPos(b).x+b.offsetWidth}}function j(){var a=e.getBody().dir;return"rtl"===a}function k(){return e.inline}function l(){return k?e.getBody().ownerDocument.body:e.getBody()}function m(a,b){return j()?i(a,b):h(a,b)}function n(a,b){return j()?h(a,b):i(a,b)}function o(a,b){return p(a,"width")/p(b,"width")*100}function p(a,b){var c=e.dom.getStyle(a,b,!0),d=parseInt(c,10);return d}function q(a){var b=p(a,"width"),c=p(a.parentElement,"width");return b/c*100}function r(a,b){var c=p(a,"width");return b/c*100}function s(a,b){var c=p(a.parentElement,"width");return b/c*100}function t(a,b,c){for(var d=[],e=1;e<c.length;e++){var f=c[e].element;d.push(a(e-1,f))}var g=c[c.length-1];return d.push(b(c.length-1,g.element)),d}function u(){var b=e.dom.select("."+ma,l());a.each(b,function(a){e.dom.remove(a)})}function v(a){u(),F(a)}function w(a,b,c,d,e,f,g,h){var i={"data-mce-bogus":"all","class":ma+" "+a,unselectable:"on","data-mce-resize":!1,style:"cursor: "+b+"; margin: 0; padding: 0; position: absolute; left: "+c+"px; top: "+d+"px; height: "+e+"px; width: "+f+"px; "};return i[g]=h,i}function x(b,c,d){a.each(b,function(a){var b=d.x,f=a.y-va/2,g=va,h=c;e.dom.add(l(),"div",w(na,oa,b,f,g,h,pa,a.index))})}function y(b,c,d){a.each(b,function(a){var b=a.x-va/2,f=d.y,g=c,h=va;e.dom.add(l(),"div",w(ra,sa,b,f,g,h,ta,a.index))})}function z(b){return a.map(b.rows,function(b){var c=a.map(b.cells,function(a){var b=a.hasAttribute("rowspan")?parseInt(a.getAttribute("rowspan"),10):1,c=a.hasAttribute("colspan")?parseInt(a.getAttribute("colspan"),10):1;return{element:a,rowspan:b,colspan:c}});return{element:b,cells:c}})}function A(c){function d(a,b){return a+","+b}function e(a,b){return h[d(a,b)]}function f(){var b=[];return a.each(i,function(a){b=b.concat(a.cells)}),b}function g(){return i}var h={},i=[],j=0,k=0;return a.each(c,function(c,e){var f=[];a.each(c.cells,function(a){for(var c=0;h[d(e,c)]!==b;)c++;for(var g={element:a.element,colspan:a.colspan,rowspan:a.rowspan,rowIndex:e,colIndex:c},i=0;i<a.colspan;i++)for(var l=0;l<a.rowspan;l++){var m=e+l,n=c+i;h[d(m,n)]=g,j=Math.max(j,m+1),k=Math.max(k,n+1)}f.push(g)}),i.push({element:c.element,cells:f})}),{grid:{maxRows:j,maxCols:k},getAt:e,getAllCells:f,getAllRows:g}}function B(a,b){for(var c=[],d=a;b>d;d++)c.push(d);return c}function C(a,b,c){for(var d,e=a(),f=0;f<e.length;f++)b(e[f])&&(d=e[f]);return d?d:c()}function D(b){var c=B(0,b.grid.maxCols),d=B(0,b.grid.maxRows);return a.map(c,function(a){function c(){for(var c=[],e=0;e<d.length;e++){var f=b.getAt(e,a);f&&f.colIndex===a&&c.push(f)}return c}function e(a){return 1===a.colspan}function f(){for(var c,e=0;e<d.length;e++)if(c=b.getAt(e,a))return c;return null}return C(c,e,f)})}function E(b){var c=B(0,b.grid.maxCols),d=B(0,b.grid.maxRows);return a.map(d,function(a){function d(){for(var d=[],e=0;e<c.length;e++){var f=b.getAt(a,e);f&&f.rowIndex===a&&d.push(f)}return d}function e(a){return 1===a.rowspan}function f(){return b.getAt(a,0)}return C(d,e,f)})}function F(a){var b=z(a),c=A(b),d=E(c),h=D(c),i=e.dom.getPos(a),j=d.length>0?t(f,g,d):[],k=h.length>0?t(m,n,h):[];x(j,a.offsetWidth,i),y(k,a.offsetHeight,i)}function G(a,b,c,d){if(0>b||b>=a.length-1)return"";var e=a[b];if(e)e={value:e,delta:0};else for(var f=a.slice(0,b).reverse(),g=0;g<f.length;g++)f[g]&&(e={value:f[g],delta:g+1});var h=a[b+1];if(h)h={value:h,delta:1};else for(var i=a.slice(b+1),j=0;j<i.length;j++)i[j]&&(h={value:i[j],delta:j+1});var k=h.delta-e.delta,l=Math.abs(h.value-e.value)/k;return c?l/p(d,"width")*100:l}function H(a,b){var c=e.dom.getStyle(a,b);return c||(c=e.dom.getAttrib(a,b)),c||(c=e.dom.getStyle(a,b,!0)),c}function I(a,b,c){var d=H(a,"width"),e=parseInt(d,10),f=b?o(a,c):p(a,"width");return(b&&!R(d)||!b&&!S(d))&&(e=0),!isNaN(e)&&e>0?e:f}function J(b,c,d){for(var e=D(b),f=a.map(e,function(a){return m(a.colIndex,a.element).x}),g=[],h=0;h<e.length;h++){var i=e[h].element.hasAttribute("colspan")?parseInt(e[h].element.getAttribute("colspan"),10):1,j=i>1?G(f,h):I(e[h].element,c,d);j=j?j:wa,g.push(j)}return g}function K(a){var b=H(a,"height"),c=parseInt(b,10);return R(b)&&(c=0),!isNaN(c)&&c>0?c:p(a,"height")}function L(b){for(var c=E(b),d=a.map(c,function(a){return f(a.rowIndex,a.element).y}),e=[],g=0;g<c.length;g++){var h=c[g].element.hasAttribute("rowspan")?parseInt(c[g].element.getAttribute("rowspan"),10):1,i=h>1?G(d,g):K(c[g].element);i=i?i:xa,e.push(i)}return e}function M(b,c,d,e,f){function g(b){return a.map(b,function(){return 0})}function h(){var a;if(f)a=[100-l[0]];else{var b=Math.max(e,l[0]+d);a=[b-l[0]]}return a}function i(a,b){var c,f=g(l.slice(0,a)),h=g(l.slice(b+1));if(d>=0){var i=Math.max(e,l[b]-d);c=f.concat([d,i-l[b]]).concat(h)}else{var j=Math.max(e,l[a]+d),k=l[a]-j;c=f.concat([j-l[a],k]).concat(h)}return c}function j(a,b){var c,f=g(l.slice(0,b));if(d>=0)c=f.concat([d]);else{var h=Math.max(e,l[b]+d);c=f.concat([h-l[b]])}return c}var k,l=b.slice(0);return k=0===b.length?[]:1===b.length?h():0===c?i(0,1):c>0&&c<b.length-1?i(c,c+1):c===b.length-1?j(c-1,c):[]}function N(a,b,c){for(var d=0,e=a;b>e;e++)d+=c[e];return d}function O(b,c){var d=b.getAllCells();return a.map(d,function(a){var b=N(a.colIndex,a.colIndex+a.colspan,c);return{element:a.element,width:b,colspan:a.colspan}})}function P(b,c){var d=b.getAllCells();return a.map(d,function(a){var b=N(a.rowIndex,a.rowIndex+a.rowspan,c);return{element:a.element,height:b,rowspan:a.rowspan}})}function Q(b,c){var d=b.getAllRows();return a.map(d,function(a,b){return{element:a.element,height:c[b]}})}function R(a){return za.test(a)}function S(a){return Aa.test(a)}function T(b,c,d){function f(b,c){a.each(b,function(a){e.dom.setStyle(a.element,"width",a.width+c),e.dom.setAttrib(a.element,"width",null)})}function g(){return d<k.grid.maxCols-1?q(b):q(b)+s(b,c)}function h(){return d<k.grid.maxCols-1?p(b,"width"):p(b,"width")+c}function i(a,c,f){d!=k.grid.maxCols-1&&f||(e.dom.setStyle(b,"width",a+c),e.dom.setAttrib(b,"width",null))}for(var j=z(b),k=A(j),l=R(b.width)||R(b.style.width),m=J(k,l,b),n=l?r(b,c):c,o=M(m,d,n,wa,l,b),t=[],u=0;u<o.length;u++)t.push(o[u]+m[u]);var v=O(k,t),w=l?"%":"px",x=l?g():h();e.undoManager.transact(function(){f(v,w),i(x,w,l)})}function U(b,c,d){for(var f=z(b),g=A(f),h=L(g),i=[],j=0,k=0;k<h.length;k++)i.push(k===d?c+h[k]:h[k]),j+=j[k];var l=P(g,i),m=Q(g,i);e.undoManager.transact(function(){a.each(m,function(a){e.dom.setStyle(a.element,"height",a.height+"px"),e.dom.setAttrib(a.element,"height",null)}),a.each(l,function(a){e.dom.setStyle(a.element,"height",a.height+"px"),e.dom.setAttrib(a.element,"height",null)}),e.dom.setStyle(b,"height",j+"px"),e.dom.setAttrib(b,"height",null)})}function V(){ga=setTimeout(function(){Z()},200)}function W(){clearTimeout(ga)}function X(){var a=document.createElement("div");return a.setAttribute("style","margin: 0; padding: 0; position: fixed; left: 0px; top: 0px; height: 100%; width: 100%;"),a.setAttribute("data-mce-bogus","all"),a}function Y(a,b){e.dom.bind(a,"mouseup",function(){Z()}),e.dom.bind(a,"mousemove",function(a){
2
+ W(),ha&&b(a)}),e.dom.bind(a,"mouseout",function(){V()})}function Z(){if(e.dom.remove(ia),ha){e.dom.removeClass(ja,ya),ha=!1;var a,b;if(_(ja)){var c=parseInt(e.dom.getAttrib(ja,ua),10),f=e.dom.getPos(ja).x;a=parseInt(e.dom.getAttrib(ja,ta),10),b=j()?c-f:f-c,T(d,b,a)}else if(aa(ja)){var g=parseInt(e.dom.getAttrib(ja,qa),10),h=e.dom.getPos(ja).y;a=parseInt(e.dom.getAttrib(ja,pa),10),b=h-g,U(d,b,a)}v(d),e.nodeChanged()}}function $(a,b){ia=ia?ia:X(),ha=!0,e.dom.addClass(a,ya),ja=a,Y(ia,b),e.dom.add(l(),ia)}function _(a){return e.dom.hasClass(a,ra)}function aa(a){return e.dom.hasClass(a,na)}function ba(a){ka=ka!==b?ka:a.clientX;var c=a.clientX-ka;ka=a.clientX;var d=e.dom.getPos(ja).x;e.dom.setStyle(ja,"left",d+c+"px")}function ca(a){la=la!==b?la:a.clientY;var c=a.clientY-la;la=a.clientY;var d=e.dom.getPos(ja).y;e.dom.setStyle(ja,"top",d+c+"px")}function da(a){ka=b,$(a,ba)}function ea(a){la=b,$(a,ca)}function fa(a){var b=a.target,c=e.getBody();if(e.$.contains(c,d)||d===c)if(_(b)){a.preventDefault();var f=e.dom.getPos(b).x;e.dom.setAttrib(b,ua,f),da(b)}else if(aa(b)){a.preventDefault();var g=e.dom.getPos(b).y;e.dom.setAttrib(b,qa,g),ea(b)}}var ga,ha,ia,ja,ka,la,ma="mce-resize-bar",na="mce-resize-bar-row",oa="row-resize",pa="data-row",qa="data-initial-top",ra="mce-resize-bar-col",sa="col-resize",ta="data-col",ua="data-initial-left",va=4,wa=10,xa=10,ya="mce-resize-bar-dragging",za=new RegExp(/(\d+(\.\d+)?%)/),Aa=new RegExp(/px|em/);return e.on("init",function(){e.dom.bind(l(),"mousedown",fa)}),e.on("ObjectResized",function(b){var c=b.target;if("TABLE"===c.nodeName){var d=[];a.each(c.rows,function(b){a.each(b.cells,function(a){var b=e.dom.getStyle(a,"width",!0);d.push({cell:a,width:b})})}),a.each(d,function(a){e.dom.setStyle(a.cell,"width",a.width),e.dom.setAttrib(a.cell,"width",null)})}}),e.on("mouseover",function(a){if(!ha){var b=e.dom.getParent(a.target,"table");("TABLE"===a.target.nodeName||b)&&(d=b,v(b))}}),e.on("keydown",function(a){switch(a.keyCode){case c.LEFT:case c.RIGHT:case c.UP:case c.DOWN:u()}}),e.on("remove",function(){u(),e.dom.unbind(l(),"mousedown",fa)}),{adjustWidth:T,adjustHeight:U,clearBars:u,drawBars:F,determineDeltas:M,getTableGrid:A,getTableDetails:z,getWidths:J,getPixelHeights:L,isPercentageBasedSize:R,isPixelBasedSize:S,recalculateWidths:O,recalculateCellHeights:P,recalculateRowHeights:Q}}}),d("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/tableplugin/ResizeBars","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(a,b,c,d,e,f,g,h,i){function j(f){function g(a){return function(){f.execCommand(a)}}function i(a,b){var c,d,e,g;for(e='<table id="__mce"><tbody>',c=0;b>c;c++){for(e+="<tr>",d=0;a>d;d++)e+="<td>"+(h.ie&&h.ie<10?"&nbsp;":"<br>")+"</td>";e+="</tr>"}return e+="</tbody></table>",f.undoManager.transact(function(){f.insertContent(e),g=f.dom.get("__mce"),f.dom.setAttrib(g,"id",null),f.$("tr",g).each(function(a,b){f.fire("newrow",{node:b}),f.$("th,td",b).each(function(a,b){f.fire("newcell",{node:b})})}),f.dom.setAttribs(g,f.settings.table_default_attributes||{}),f.dom.setStyles(g,f.settings.table_default_styles||{})}),g}function j(a,b,c){function d(){var d,e,g,h={},i=0;e=f.dom.select("td[data-mce-selected],th[data-mce-selected]"),d=e[0],d||(d=f.selection.getStart()),c&&e.length>0?(k(e,function(a){return h[a.parentNode.parentNode.nodeName]=1}),k(h,function(a){i+=a}),g=1!==i):g=!f.dom.getParent(d,b),a.disabled(g),f.selection.selectorChanged(b,function(b){a.disabled(!b)})}f.initialized?d():f.on("init",d)}function l(){j(this,"table")}function m(){j(this,"td,th")}function n(){j(this,"td,th",!0)}function o(){var a="";a='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var b=0;10>b;b++){a+="<tr>";for(var c=0;10>c;c++)a+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*b+c)+'" href="#" data-mce-x="'+c+'" data-mce-y="'+b+'"></a></td>';a+="</tr>"}return a+="</table>",a+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function p(a,b,c){var d,e,g,h,i,j=c.getEl().getElementsByTagName("table")[0],k=c.isRtl()||"tl-tr"==c.parent().rel;for(j.nextSibling.innerHTML=a+1+" x "+(b+1),k&&(a=9-a),e=0;10>e;e++)for(d=0;10>d;d++)h=j.rows[e].childNodes[d].firstChild,i=(k?d>=a:a>=d)&&b>=e,f.dom.toggleClass(h,"mce-active",i),i&&(g=h);return g.parentNode}function q(){f.addButton("tableprops",{title:"Table properties",onclick:w.tableProps,icon:"table"}),f.addButton("tabledelete",{title:"Delete table",onclick:g("mceTableDelete")}),f.addButton("tablecellprops",{title:"Cell properties",onclick:g("mceTableCellProps")}),f.addButton("tablemergecells",{title:"Merge cells",onclick:g("mceTableMergeCells")}),f.addButton("tablesplitcells",{title:"Split cell",onclick:g("mceTableSplitCells")}),f.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:g("mceTableInsertRowBefore")}),f.addButton("tableinsertrowafter",{title:"Insert row after",onclick:g("mceTableInsertRowAfter")}),f.addButton("tabledeleterow",{title:"Delete row",onclick:g("mceTableDeleteRow")}),f.addButton("tablerowprops",{title:"Row properties",onclick:g("mceTableRowProps")}),f.addButton("tablecutrow",{title:"Cut row",onclick:g("mceTableCutRow")}),f.addButton("tablecopyrow",{title:"Copy row",onclick:g("mceTableCopyRow")}),f.addButton("tablepasterowbefore",{title:"Paste row before",onclick:g("mceTablePasteRowBefore")}),f.addButton("tablepasterowafter",{title:"Paste row after",onclick:g("mceTablePasteRowAfter")}),f.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:g("mceTableInsertColBefore")}),f.addButton("tableinsertcolafter",{title:"Insert column after",onclick:g("mceTableInsertColAfter")}),f.addButton("tabledeletecol",{title:"Delete column",onclick:g("mceTableDeleteCol")})}function r(a){var b=f.dom.is(a,"table")&&f.getBody().contains(a);return b}function s(){var a=f.settings.table_toolbar;""!==a&&a!==!1&&(a||(a="tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"),f.addContextToolbar(r,a))}var t,u,v=this,w=new d(f);!f.settings.object_resizing||f.settings.table_resize_bars===!1||f.settings.object_resizing!==!0&&"table"!==f.settings.object_resizing||(u=e(f)),f.settings.table_grid===!1?f.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:w.table}):f.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(a){a.aria&&(this.parent().hideAll(),a.stopImmediatePropagation(),w.table())},onshow:function(){p(0,0,this.menu.items()[0])},onhide:function(){var a=this.menu.items()[0].getEl().getElementsByTagName("a");f.dom.removeClass(a,"mce-active"),f.dom.addClass(a[0],"mce-active")},menu:[{type:"container",html:o(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(a){var b,c,d=a.target;"A"==d.tagName.toUpperCase()&&(b=parseInt(d.getAttribute("data-mce-x"),10),c=parseInt(d.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(b=9-b),b===this.lastX&&c===this.lastY||(p(b,c,a.control),this.lastX=b,this.lastY=c))},onclick:function(a){var b=this;"A"==a.target.tagName.toUpperCase()&&(a.preventDefault(),a.stopPropagation(),b.parent().cancel(),f.undoManager.transact(function(){i(b.lastX+1,b.lastY+1)}),f.addVisual())}}]}),f.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:l,onclick:w.tableProps}),f.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:l,cmd:"mceTableDelete"}),f.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:g("mceTableCellProps"),onPostRender:m},{text:"Merge cells",onclick:g("mceTableMergeCells"),onPostRender:n},{text:"Split cell",onclick:g("mceTableSplitCells"),onPostRender:m}]}),f.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:g("mceTableInsertRowBefore"),onPostRender:m},{text:"Insert row after",onclick:g("mceTableInsertRowAfter"),onPostRender:m},{text:"Delete row",onclick:g("mceTableDeleteRow"),onPostRender:m},{text:"Row properties",onclick:g("mceTableRowProps"),onPostRender:m},{text:"-"},{text:"Cut row",onclick:g("mceTableCutRow"),onPostRender:m},{text:"Copy row",onclick:g("mceTableCopyRow"),onPostRender:m},{text:"Paste row before",onclick:g("mceTablePasteRowBefore"),onPostRender:m},{text:"Paste row after",onclick:g("mceTablePasteRowAfter"),onPostRender:m}]}),f.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:g("mceTableInsertColBefore"),onPostRender:m},{text:"Insert column after",onclick:g("mceTableInsertColAfter"),onPostRender:m},{text:"Delete column",onclick:g("mceTableDeleteCol"),onPostRender:m}]});var x=[];k("inserttable tableprops deletetable | cell row column".split(" "),function(a){"|"==a?x.push({text:"-"}):x.push(f.menuItems[a])}),f.addButton("table",{type:"menubutton",title:"Table",menu:x}),h.isIE||f.on("click",function(a){a=a.target,"TABLE"===a.nodeName&&(f.selection.select(a),f.nodeChanged())}),v.quirks=new b(f),f.on("Init",function(){v.cellSelection=new c(f),v.resizeBars=u}),f.on("PreInit",function(){f.serializer.addAttributeFilter("data-mce-cell-padding,data-mce-border,data-mce-border-color",function(a,b){for(var c=a.length;c--;)a[c].attr(b,null)})}),k({mceTableSplitCells:function(a){a.split()},mceTableMergeCells:function(a){var b;b=f.dom.getParent(f.selection.getStart(),"th,td"),f.dom.select("td[data-mce-selected],th[data-mce-selected]").length?a.merge():w.merge(a,b)},mceTableInsertRowBefore:function(a){a.insertRow(!0)},mceTableInsertRowAfter:function(a){a.insertRow()},mceTableInsertColBefore:function(a){a.insertCol(!0)},mceTableInsertColAfter:function(a){a.insertCol()},mceTableDeleteCol:function(a){a.deleteCols()},mceTableDeleteRow:function(a){a.deleteRows()},mceTableCutRow:function(a){t=a.cutRows()},mceTableCopyRow:function(a){t=a.copyRows()},mceTablePasteRowBefore:function(a){a.pasteRows(t,!0)},mceTablePasteRowAfter:function(a){a.pasteRows(t)},mceTableDelete:function(a){u&&u.clearBars(),a.deleteTable()}},function(b,c){f.addCommand(c,function(){var c=new a(f);c&&(b(c),f.execCommand("mceRepaint"),v.cellSelection.clear())})}),k({mceInsertTable:w.table,mceTableProps:function(){w.table(!0)},mceTableRowProps:w.row,mceTableCellProps:w.cell},function(a,b){f.addCommand(b,function(b,c){a(c)})}),q(),s(),f.settings.table_tab_navigation!==!1&&f.on("keydown",function(b){var c,d,e;9==b.keyCode&&(c=f.dom.getParent(f.selection.getStart(),"th,td"),c&&(b.preventDefault(),d=new a(f),e=b.shiftKey?-1:1,f.undoManager.transact(function(){!d.moveRelIdx(c,e)&&e>0&&(d.insertRow(),d.refresh(),d.moveRelIdx(c,e))})))}),v.insertTable=i}var k=f.each;i.add("table",j)})}(this);
mce/visualblocks/css/visualblocks.css CHANGED
@@ -47,7 +47,7 @@
47
  background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
48
  }
49
 
50
- .mce-visualblocks div {
51
  padding-top: 10px;
52
  border: 1px dashed #BBB;
53
  margin-left: 3px;
47
  background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
48
  }
49
 
50
+ .mce-visualblocks div:not([data-mce-bogus]) {
51
  padding-top: 10px;
52
  border: 1px dashed #BBB;
53
  margin-left: 3px;
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: wysiwyg, formatting, tinymce, write, editor
4
- Requires at least: 4.4
5
- Tested up to: 4.4
6
- Stable tag: 4.2.5
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -30,8 +30,15 @@ Best is to install directly from WordPress. If manual installation is required,
30
 
31
  == Changelog ==
32
 
 
 
 
 
 
 
33
  = 4.2.8 =
34
  * Updated for WordPress 4.4 and TinyMCE 4.2.8.
 
35
 
36
  = 4.2.5 =
37
  * Updated for WordPress 4.3.1 and TinyMCE 4.2.5.
@@ -43,6 +50,7 @@ Best is to install directly from WordPress. If manual installation is required,
43
  = 4.2.3 =
44
  * Updated for WordPress 4.3 and TinyMCE 4.2.3.
45
  * Removed the 'textpattern' plugin as WordPress 4.3 includes similar functionality by default.
 
46
 
47
  = 4.1.9 =
48
  * Updated for WordPress 4.2 and TinyMCE 4.1.9.
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: wysiwyg, formatting, tinymce, write, editor
4
+ Requires at least: 4.5
5
+ Tested up to: 4.5
6
+ Stable tag: 4.3.8
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
30
 
31
  == Changelog ==
32
 
33
+ = 4.3.8 =
34
+ * Updated for WordPress 4.5 and TinyMCE 4.3.8.
35
+ * Separated standard options and admin options.
36
+ * Added settings that can disable the plugin for the main editor, other editors in wp-admin or editors on the front-end.
37
+ * Korean translation by Josh Kim and Greek translation by Stathis Mellios.
38
+
39
  = 4.2.8 =
40
  * Updated for WordPress 4.4 and TinyMCE 4.2.8.
41
+ * Japanese translation by Manabu Miwa.
42
 
43
  = 4.2.5 =
44
  * Updated for WordPress 4.3.1 and TinyMCE 4.2.5.
50
  = 4.2.3 =
51
  * Updated for WordPress 4.3 and TinyMCE 4.2.3.
52
  * Removed the 'textpattern' plugin as WordPress 4.3 includes similar functionality by default.
53
+ * French translation by Nicolas Schneider.
54
 
55
  = 4.1.9 =
56
  * Updated for WordPress 4.2 and TinyMCE 4.1.9.
tadv_admin.php CHANGED
@@ -17,7 +17,7 @@ $settings = $admin_settings = array();
17
 
18
  if ( isset( $_POST['tadv-save'] ) ) {
19
  check_admin_referer( 'tadv-save-buttons-order' );
20
- $options_array = $admin_settings_array = $disabled_plugins = $plugins_array = array();
21
 
22
  // User settings
23
  for ( $i = 1; $i < 5; $i++ ) {
@@ -52,6 +52,10 @@ if ( isset( $_POST['tadv-save'] ) ) {
52
  $plugins_array = array( 'anchor', 'code', 'insertdatetime', 'nonbreaking', 'print', 'searchreplace',
53
  'table', 'visualblocks', 'visualchars' );
54
  }
 
 
 
 
55
 
56
  // Admin settings, TODO
57
  if ( ! empty( $_POST['importcss'] ) ) {
@@ -66,10 +70,6 @@ if ( isset( $_POST['tadv-save'] ) ) {
66
  $admin_settings_array[] = 'paste_images';
67
  }
68
 
69
- if ( ! empty( $_POST['fontsize_formats'] ) ) {
70
- $admin_settings_array[] = 'fontsize_formats';
71
- }
72
-
73
  if ( ! empty( $_POST['editorstyle'] ) ) {
74
  $admin_settings_array[] = 'editorstyle';
75
  }
@@ -82,9 +82,24 @@ if ( isset( $_POST['tadv-save'] ) ) {
82
  }
83
  }
84
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  // Admin options
86
  $admin_settings['options'] = implode( ',', $admin_settings_array );
87
  $admin_settings['disabled_plugins'] = implode( ',', $disabled_plugins );
 
88
 
89
  $this->admin_settings = $admin_settings;
90
  update_option( 'tadv_admin_settings', $admin_settings );
@@ -257,8 +272,6 @@ if ( isset( $_POST['tadv-save'] ) && empty( $message ) ) {
257
 
258
  <div id="tadvzones">
259
 
260
- <p><?php _e( 'New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, most buttons are also available as menu items.', 'tinymce-advanced' ); ?></p>
261
-
262
  <p><label>
263
  <input type="checkbox" name="menubar" id="menubar" <?php if ( $this->check_setting( 'menubar' ) ) { echo ' checked="checked"'; } ?>>
264
  <?php _e( 'Enable the editor menu.', 'tinymce-advanced' ); ?>
@@ -417,69 +430,69 @@ foreach( $all_buttons as $button => $name ) {
417
  </ul>
418
  </div>
419
 
420
- <p class="tadv-more-plugins"><?php _e( 'Also enable:', 'tinymce-advanced' ); ?>
421
- <label>
422
- <input type="checkbox" name="advlist" id="advlist" <?php if ( $this->check_setting('advlist') ) echo ' checked="checked"'; ?> />
423
- <?php _e( 'List Style Options', 'tinymce-advanced' ); ?>
424
- </label>
425
-
426
- <label>
427
- <input type="checkbox" name="contextmenu" id="contextmenu" <?php if ( $this->check_setting('contextmenu') ) echo ' checked="checked"'; ?> />
428
- <?php _e( 'Context Menu', 'tinymce-advanced' ); ?>
429
- </label>
430
-
431
- <label>
432
- <input type="checkbox" name="advlink" id="advlink" <?php if ( $this->check_setting('advlink') ) echo ' checked="checked"'; ?> />
433
- <?php _e( 'Link (replaces the Insert/Edit Link dialog)', 'tinymce-advanced' ); ?>
434
- </label>
435
- </p>
436
-
 
 
 
 
 
 
 
 
 
 
 
 
437
  <?php
438
 
439
  if ( ! is_multisite() || current_user_can( 'manage_sites' ) ) {
440
-
441
  ?>
442
  <div class="advanced-options">
443
  <h3><?php _e( 'Advanced Options', 'tinymce-advanced' ); ?></h3>
444
  <?php
445
 
446
- if ( ! is_multisite() && ! current_theme_supports( 'editor-style' ) ) {
447
 
 
448
  ?>
449
  <div>
450
- <label><input type="checkbox" name="editorstyle" id="editorstyle" <?php if ( $this->check_admin_setting( 'editorstyle' ) ) echo ' checked="checked"'; ?> />
451
- <?php _e( 'Import editor-style.css.', 'tinymce-advanced' ); ?></label>
452
  <p>
453
- <?php _e( 'It seems your theme does not support customised styles for the editor.', 'tinymce-advanced' ); ?>
454
- <?php _e( 'You can create a CSS file named <code>editor-style.css</code> and upload it to your theme\'s directory.', 'tinymce-advanced' ); ?>
455
- <?php _e( 'After that, enable this setting.', 'tinymce-advanced' ); ?>
456
  </p>
457
  </div>
458
  <?php
459
  }
460
 
461
  ?>
462
- <div>
463
- <label><input type="checkbox" name="importcss" id="importcss" <?php if ( $this->check_admin_setting( 'importcss' ) ) echo ' checked="checked"'; ?> />
464
- <?php _e( 'Load the CSS classes used in editor-style.css and replace the Formats button and sub-menu.', 'tinymce-advanced' ); ?></label>
465
- </div>
466
 
467
  <div>
468
  <label><input type="checkbox" name="no_autop" id="no_autop" <?php if ( $this->check_admin_setting( 'no_autop' ) ) echo ' checked="checked"'; ?> />
469
- <?php _e( 'Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them in the Text editor', 'tinymce-advanced' ); ?></label>
470
  <p>
471
- <?php _e( 'This will make it possible to use more advanced coding in the HTML editor without the back-end filtering affecting it much.', 'tinymce-advanced' ); ?>
 
472
  <?php _e( 'However it may behave unexpectedly in rare cases, so test it thoroughly before enabling it permanently.', 'tinymce-advanced' ); ?>
473
- <?php _e( 'Line breaks in the HTML editor would still affect the output, in particular do not use empty lines, line breaks inside HTML tags or multiple &lt;br /&gt; tags.', 'tinymce-advanced' ); ?>
474
  </p>
475
  </div>
476
-
477
- <div>
478
- <label><input type="checkbox" name="fontsize_formats" id="fontsize_formats" <?php if ( $this->check_admin_setting( 'fontsize_formats' ) ) echo ' checked="checked"'; ?> />
479
- <?php _e( 'Replace font size settings', 'tinymce-advanced' ); ?></label>
480
- <p><?php _e( 'Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px 20px 24px 28px 32px 36px.', 'tinymce-advanced' ); ?></p>
481
- </div>
482
-
483
  <div>
484
  <label><input type="checkbox" name="paste_images" id="paste_images" <?php if ( $this->check_admin_setting( 'paste_images' ) ) echo ' checked="checked"'; ?> />
485
  <?php _e( 'Enable pasting of image source', 'tinymce-advanced' ); ?></label>
@@ -494,8 +507,26 @@ if ( ! is_multisite() || current_user_can( 'manage_sites' ) ) {
494
  <div class="advanced-options">
495
  <h3><?php _e( 'Administration', 'tinymce-advanced' ); ?></h3>
496
  <div>
497
- <input type="submit" class="button" name="tadv-export-settings" value="<?php _e( 'Export Settings', 'tinymce-advanced' ); ?>" /> &nbsp;
498
- <input type="submit" class="button" name="tadv-import-settings" value="<?php _e( 'Import Settings', 'tinymce-advanced' ); ?>" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
499
  </div>
500
  </div>
501
  <?php
17
 
18
  if ( isset( $_POST['tadv-save'] ) ) {
19
  check_admin_referer( 'tadv-save-buttons-order' );
20
+ $options_array = $admin_settings_array = $disabled_editors = $disabled_plugins = $plugins_array = array();
21
 
22
  // User settings
23
  for ( $i = 1; $i < 5; $i++ ) {
52
  $plugins_array = array( 'anchor', 'code', 'insertdatetime', 'nonbreaking', 'print', 'searchreplace',
53
  'table', 'visualblocks', 'visualchars' );
54
  }
55
+
56
+ if ( ! empty( $_POST['fontsize_formats'] ) ) {
57
+ $options_array[] = 'fontsize_formats';
58
+ }
59
 
60
  // Admin settings, TODO
61
  if ( ! empty( $_POST['importcss'] ) ) {
70
  $admin_settings_array[] = 'paste_images';
71
  }
72
 
 
 
 
 
73
  if ( ! empty( $_POST['editorstyle'] ) ) {
74
  $admin_settings_array[] = 'editorstyle';
75
  }
82
  }
83
  }
84
 
85
+ $enable_at = ( ! empty( $_POST['tadv_enable_at'] ) && is_array( $_POST['tadv_enable_at'] ) ) ? $_POST['tadv_enable_at'] : array();
86
+
87
+ if ( ! array_key_exists( 'edit_post_screen', $enable_at ) ) {
88
+ $disabled_editors[] = 'edit_post_screen';
89
+ }
90
+
91
+ if ( ! array_key_exists( 'rest_of_wpadmin', $enable_at ) ) {
92
+ $disabled_editors[] = 'rest_of_wpadmin';
93
+ }
94
+
95
+ if ( ! array_key_exists( 'on_front_end', $enable_at ) ) {
96
+ $disabled_editors[] = 'on_front_end';
97
+ }
98
+
99
  // Admin options
100
  $admin_settings['options'] = implode( ',', $admin_settings_array );
101
  $admin_settings['disabled_plugins'] = implode( ',', $disabled_plugins );
102
+ $admin_settings['disabled_editors'] = implode( ',', $disabled_editors );
103
 
104
  $this->admin_settings = $admin_settings;
105
  update_option( 'tadv_admin_settings', $admin_settings );
272
 
273
  <div id="tadvzones">
274
 
 
 
275
  <p><label>
276
  <input type="checkbox" name="menubar" id="menubar" <?php if ( $this->check_setting( 'menubar' ) ) { echo ' checked="checked"'; } ?>>
277
  <?php _e( 'Enable the editor menu.', 'tinymce-advanced' ); ?>
430
  </ul>
431
  </div>
432
 
433
+ <div class="advanced-options">
434
+ <h3><?php _e( 'Options', 'tinymce-advanced' ); ?></h3>
435
+ <div>
436
+ <label><input type="checkbox" name="advlist" id="advlist" <?php if ( $this->check_setting('advlist') ) echo ' checked="checked"'; ?> />
437
+ <?php _e( 'List Style Options', 'tinymce-advanced' ); ?></label>
438
+ <p>
439
+ <?php _e( 'Enable more list options: upper or lower case letters for ordered lists, disk or square for unordered lists, etc.', 'tinymce-advanced' ); ?>
440
+ </p>
441
+ </div>
442
+ <div>
443
+ <label><input type="checkbox" name="contextmenu" id="contextmenu" <?php if ( $this->check_setting('contextmenu') ) echo ' checked="checked"'; ?> />
444
+ <?php _e( 'Context Menu', 'tinymce-advanced' ); ?></label>
445
+ <p>
446
+ <?php _e( 'Replace the browser context (right-click) menu.', 'tinymce-advanced' ); ?>
447
+ </p>
448
+ </div>
449
+ <div>
450
+ <label><input type="checkbox" name="advlink" id="advlink" <?php if ( $this->check_setting('advlink') ) echo ' checked="checked"'; ?> />
451
+ <?php _e( 'Alternative link dialog', 'tinymce-advanced' ); ?></label>
452
+ <p>
453
+ <?php _e( 'Open the TinyMCE link dialog when using the link button on the toolbar or the link menu item.', 'tinymce-advanced' ); ?>
454
+ </p>
455
+ </div>
456
+ <div>
457
+ <label><input type="checkbox" name="fontsize_formats" id="fontsize_formats" <?php if ( $this->check_setting( 'fontsize_formats' ) ) echo ' checked="checked"'; ?> />
458
+ <?php _e( 'Font sizes', 'tinymce-advanced' ); ?></label>
459
+ <p><?php _e( 'Replace the size setting available for fonts with: 8px 10px 12px 14px 16px 20px 24px 28px 32px 36px 48px 60px.', 'tinymce-advanced' ); ?></p>
460
+ </div>
461
+ </div>
462
  <?php
463
 
464
  if ( ! is_multisite() || current_user_can( 'manage_sites' ) ) {
 
465
  ?>
466
  <div class="advanced-options">
467
  <h3><?php _e( 'Advanced Options', 'tinymce-advanced' ); ?></h3>
468
  <?php
469
 
470
+ // The 'editorstyle' option for (very) old themes was deprecated. Still supported if present.
471
 
472
+ if ( current_theme_supports( 'editor-style' ) ) {
473
  ?>
474
  <div>
475
+ <label><input type="checkbox" name="importcss" id="importcss" <?php if ( $this->check_admin_setting( 'importcss' ) ) echo ' checked="checked"'; ?> />
476
+ <?php _e( 'Create CSS classes menu', 'tinymce-advanced' ); ?></label>
477
  <p>
478
+ <?php _e( 'Load the CSS classes used in editor-style.css and replace the Formats button and sub-menu.', 'tinymce-advanced' ); ?>
 
 
479
  </p>
480
  </div>
481
  <?php
482
  }
483
 
484
  ?>
 
 
 
 
485
 
486
  <div>
487
  <label><input type="checkbox" name="no_autop" id="no_autop" <?php if ( $this->check_admin_setting( 'no_autop' ) ) echo ' checked="checked"'; ?> />
488
+ <?php _e( 'Keep paragraph tags', 'tinymce-advanced' ); ?></label>
489
  <p>
490
+ <?php _e( 'Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them in the Text editor.', 'tinymce-advanced' ); ?>
491
+ <?php _e( 'This will make it possible to use more advanced coding in the Text editor without the back-end filtering affecting it much.', 'tinymce-advanced' ); ?>
492
  <?php _e( 'However it may behave unexpectedly in rare cases, so test it thoroughly before enabling it permanently.', 'tinymce-advanced' ); ?>
493
+ <?php _e( 'Line breaks in the Text editor would still affect the output, in particular do not use empty lines, line breaks inside HTML tags or multiple &lt;br /&gt; tags.', 'tinymce-advanced' ); ?>
494
  </p>
495
  </div>
 
 
 
 
 
 
 
496
  <div>
497
  <label><input type="checkbox" name="paste_images" id="paste_images" <?php if ( $this->check_admin_setting( 'paste_images' ) ) echo ' checked="checked"'; ?> />
498
  <?php _e( 'Enable pasting of image source', 'tinymce-advanced' ); ?></label>
507
  <div class="advanced-options">
508
  <h3><?php _e( 'Administration', 'tinymce-advanced' ); ?></h3>
509
  <div>
510
+ <h4><?php _e( 'Settings import and export', 'tinymce-advanced' ); ?></h4>
511
+ <p>
512
+ <input type="submit" class="button" name="tadv-export-settings" value="<?php _e( 'Export Settings', 'tinymce-advanced' ); ?>" /> &nbsp;
513
+ <input type="submit" class="button" name="tadv-import-settings" value="<?php _e( 'Import Settings', 'tinymce-advanced' ); ?>" />
514
+ </p>
515
+ </div>
516
+ <div>
517
+ <h4><?php _e( 'Enable the editor enhancements for:', 'tinymce-advanced' ); ?></h4>
518
+ <p>
519
+ <label><input type="checkbox" name="tadv_enable_at[edit_post_screen]" <?php if ( $this->check_admin_setting( 'enable_edit_post_screen' ) ) echo ' checked="checked"'; ?> />
520
+ <?php _e( 'The main editor (Add New and Edit posts and pages)', 'tinymce-advanced' ); ?></label>
521
+ </p>
522
+ <p>
523
+ <label><input type="checkbox" name="tadv_enable_at[rest_of_wpadmin]" <?php if ( $this->check_admin_setting( 'enable_rest_of_wpadmin' ) ) echo ' checked="checked"'; ?> />
524
+ <?php _e( 'Other editors in wp-admin', 'tinymce-advanced' ); ?></label>
525
+ </p>
526
+ <p>
527
+ <label><input type="checkbox" name="tadv_enable_at[on_front_end]" <?php if ( $this->check_admin_setting( 'enable_on_front_end' ) ) echo ' checked="checked"'; ?> />
528
+ <?php _e( 'Editors on the front end of the site', 'tinymce-advanced' ); ?></label>
529
+ </p>
530
  </div>
531
  </div>
532
  <?php
tinymce-advanced.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
  Description: Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
6
- Version: 4.2.8
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2
@@ -23,16 +23,20 @@ Domain Path: /langs
23
 
24
  You should have received a copy of the GNU General Public License along
25
  with TinyMCE Advanced. If not, see https://www.gnu.org/licenses/gpl-2.0.html.
 
 
26
  */
27
 
28
  if ( ! class_exists('Tinymce_Advanced') ) :
29
 
30
  class Tinymce_Advanced {
31
 
32
- private $required_version = '4.4';
33
  private $settings;
34
  private $admin_settings;
35
  private $admin_options;
 
 
36
 
37
  private $plugins;
38
  private $options;
@@ -73,35 +77,69 @@ class Tinymce_Advanced {
73
 
74
  private $default_admin_settings = array( 'options' => array() );
75
 
76
- function __construct() {
77
  // Don't run outside of WP
78
  if ( ! defined('ABSPATH') ) {
79
  return;
80
  }
81
 
82
- add_action( 'plugins_loaded', array( &$this, 'set_paths' ), 50 );
83
 
84
  if ( is_admin() ) {
85
- add_action( 'admin_menu', array( &$this, 'add_menu' ) );
86
- add_action( 'admin_enqueue_scripts', array( &$this, 'enqueue_scripts' ) );
87
- add_action( 'plugins_loaded', array( &$this, 'load_textdomain' ) );
 
 
88
  }
89
 
90
- add_filter( 'mce_buttons', array( &$this, 'mce_buttons_1' ), 999, 2 );
91
- add_filter( 'mce_buttons_2', array( &$this, 'mce_buttons_2' ), 999 );
92
- add_filter( 'mce_buttons_3', array( &$this, 'mce_buttons_3' ), 999 );
93
- add_filter( 'mce_buttons_4', array( &$this, 'mce_buttons_4' ), 999 );
94
 
95
- add_filter( 'tiny_mce_before_init', array( &$this, 'mce_options' ) );
96
- add_filter( 'mce_external_plugins', array( &$this, 'mce_external_plugins' ), 999 );
97
- add_filter( 'tiny_mce_plugins', array( &$this, 'tiny_mce_plugins' ), 999 );
98
- add_action( 'after_wp_tiny_mce', array( &$this, 'after_wp_tiny_mce' ) );
99
 
100
- add_action( 'before_wp_tiny_mce', array( &$this, 'show_version_warning' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  }
102
 
103
  // When using a plugin that changes the paths dinamically, set these earlier than 'plugins_loaded' 50.
104
- function set_paths() {
105
  if ( ! defined( 'TADV_URL' ) )
106
  define( 'TADV_URL', plugin_dir_url( __FILE__ ) );
107
 
@@ -109,21 +147,21 @@ class Tinymce_Advanced {
109
  define( 'TADV_PATH', plugin_dir_path( __FILE__ ) );
110
  }
111
 
112
- function load_textdomain() {
113
  load_plugin_textdomain( 'tinymce-advanced', false, 'tinymce-advanced/langs' );
114
  }
115
 
116
- function enqueue_scripts( $page ) {
117
  if ( 'settings_page_tinymce-advanced' == $page ) {
118
  wp_enqueue_script( 'tadv-js', TADV_URL . 'js/tadv.js', array( 'jquery-ui-sortable' ), '4.0', true );
119
  wp_enqueue_style( 'tadv-mce-skin', includes_url( 'js/tinymce/skins/lightgray/skin.min.css' ), array(), '4.0' );
120
  wp_enqueue_style( 'tadv-css', TADV_URL . 'css/tadv-styles.css', array( 'editor-buttons' ), '4.0' );
121
 
122
- add_action( 'admin_footer', array( &$this, 'load_mce_translation' ) );
123
  }
124
  }
125
 
126
- function load_mce_translation() {
127
  if ( ! class_exists( '_WP_Editors' ) ) {
128
  require( ABSPATH . WPINC . '/class-wp-editor.php' );
129
  }
@@ -133,7 +171,7 @@ class Tinymce_Advanced {
133
  <?php
134
  }
135
 
136
- function load_settings() {
137
  if ( empty( $_POST ) ) {
138
  $this->check_plugin_version();
139
  }
@@ -144,13 +182,15 @@ class Tinymce_Advanced {
144
  }
145
 
146
  // load defaults if the options don't exist...
147
- if ( $this->admin_settings === false )
148
  $this->admin_settings = $this->default_admin_settings;
 
149
 
150
  $this->admin_options = ! empty( $this->admin_settings['options'] ) ? explode( ',', $this->admin_settings['options'] ) : array();
151
 
152
- if ( $this->settings === false )
153
  $this->settings = $this->default_settings;
 
154
 
155
  $this->options = ! empty( $this->settings['options'] ) ? explode( ',', $this->settings['options'] ) : array();
156
  $this->plugins = ! empty( $this->settings['plugins'] ) ? explode( ',', $this->settings['plugins'] ) : array();
@@ -228,7 +268,7 @@ class Tinymce_Advanced {
228
  }
229
  }
230
 
231
- function get_all_buttons() {
232
  if ( ! empty( $this->all_buttons ) )
233
  return $this->all_buttons;
234
 
@@ -303,7 +343,7 @@ class Tinymce_Advanced {
303
  return $buttons;
304
  }
305
 
306
- function get_plugins( $plugins = array() ) {
307
 
308
  if ( ! is_array( $this->used_buttons ) ) {
309
  $this->load_settings();
@@ -358,20 +398,37 @@ class Tinymce_Advanced {
358
  return array_unique( $plugins );
359
  }
360
 
361
- private function check_setting( $setting, $admin = false ) {
362
  if ( ! is_array( $this->options ) ) {
363
  $this->load_settings();
364
  }
365
 
366
- $array = $admin ? $this->admin_options : $this->options;
367
- return in_array( $setting, $array, true );
 
 
 
 
368
  }
369
 
370
  private function check_admin_setting( $setting ) {
371
- return $this->check_setting( $setting, true );
 
 
 
 
 
 
 
 
 
372
  }
373
 
374
- function mce_buttons_1( $original, $editor_id ) {
 
 
 
 
375
  if ( ! is_array( $this->options ) ) {
376
  $this->load_settings();
377
  }
@@ -386,7 +443,11 @@ class Tinymce_Advanced {
386
  return $buttons_1;
387
  }
388
 
389
- function mce_buttons_2( $original ) {
 
 
 
 
390
  if ( ! is_array( $this->options ) ) {
391
  $this->load_settings();
392
  }
@@ -401,7 +462,11 @@ class Tinymce_Advanced {
401
  return $buttons_2;
402
  }
403
 
404
- function mce_buttons_3( $original ) {
 
 
 
 
405
  if ( ! is_array( $this->options ) ) {
406
  $this->load_settings();
407
  }
@@ -416,7 +481,11 @@ class Tinymce_Advanced {
416
  return $buttons_3;
417
  }
418
 
419
- function mce_buttons_4( $original ) {
 
 
 
 
420
  if ( ! is_array( $this->options ) ) {
421
  $this->load_settings();
422
  }
@@ -431,7 +500,11 @@ class Tinymce_Advanced {
431
  return $buttons_4;
432
  }
433
 
434
- function mce_options( $init ) {
 
 
 
 
435
  if ( $this->check_admin_setting( 'no_autop' ) ) {
436
  $init['wpautop'] = false;
437
  // $init['indent'] = true;
@@ -459,8 +532,8 @@ class Tinymce_Advanced {
459
  $init['importcss_file_filter'] = 'editor-style.css';
460
  }
461
 
462
- if ( $this->check_admin_setting( 'fontsize_formats' ) ) {
463
- $init['fontsize_formats'] = '8px 10px 12px 14px 16px 20px 24px 28px 32px 36px 40px 48px 60px';
464
  }
465
 
466
  if ( $this->check_setting( 'paste_images' ) ) {
@@ -470,7 +543,11 @@ class Tinymce_Advanced {
470
  return $init;
471
  }
472
 
473
- function after_wp_tiny_mce() {
 
 
 
 
474
  ?>
475
  <script>
476
  ( function( tinymce ) {
@@ -512,13 +589,18 @@ class Tinymce_Advanced {
512
  <?php
513
  }
514
 
515
- function htmledit( $content ) {
516
  return $content;
517
  }
518
 
519
- function mce_external_plugins( $mce_plugins ) {
 
 
 
 
520
  // import user created editor-style.css
521
- if ( $this->check_admin_setting( 'editorstyle' ) ) {
 
522
  add_editor_style();
523
  }
524
 
@@ -543,8 +625,11 @@ class Tinymce_Advanced {
543
  return $mce_plugins;
544
  }
545
 
546
- function tiny_mce_plugins( $plugins ) {
547
- // This calls load_settings()
 
 
 
548
  if ( $this->check_setting('image') && ! in_array( 'image', $plugins, true ) ) {
549
  $plugins[] = 'image';
550
  }
@@ -597,7 +682,7 @@ class Tinymce_Advanced {
597
  return $_settings;
598
  }
599
 
600
- function settings_page() {
601
  if ( ! defined( 'TADV_ADMIN_PAGE' ) ) {
602
  define( 'TADV_ADMIN_PAGE', true );
603
  }
@@ -605,8 +690,20 @@ class Tinymce_Advanced {
605
  include_once( TADV_PATH . 'tadv_admin.php' );
606
  }
607
 
608
- function add_menu() {
609
- add_options_page( 'TinyMCE Advanced', 'TinyMCE Advanced', 'manage_options', 'tinymce-advanced', array( &$this, 'settings_page' ) );
 
 
 
 
 
 
 
 
 
 
 
 
610
  }
611
  }
612
 
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
  Description: Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
6
+ Version: 4.3.8
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2
23
 
24
  You should have received a copy of the GNU General Public License along
25
  with TinyMCE Advanced. If not, see https://www.gnu.org/licenses/gpl-2.0.html.
26
+
27
+ Copyright 2007-2016 Andrew Ozz
28
  */
29
 
30
  if ( ! class_exists('Tinymce_Advanced') ) :
31
 
32
  class Tinymce_Advanced {
33
 
34
+ private $required_version = '4.5-beta';
35
  private $settings;
36
  private $admin_settings;
37
  private $admin_options;
38
+ private $editor_id;
39
+ private $disabled_for_editor = false;
40
 
41
  private $plugins;
42
  private $options;
77
 
78
  private $default_admin_settings = array( 'options' => array() );
79
 
80
+ public function __construct() {
81
  // Don't run outside of WP
82
  if ( ! defined('ABSPATH') ) {
83
  return;
84
  }
85
 
86
+ add_action( 'plugins_loaded', array( $this, 'set_paths' ), 50 );
87
 
88
  if ( is_admin() ) {
89
+ add_action( 'admin_menu', array( $this, 'add_menu' ) );
90
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
91
+ add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
92
+ add_filter( 'plugin_action_links', array( $this, 'add_settings_link' ), 10, 2 );
93
+ add_action( 'before_wp_tiny_mce', array( $this, 'show_version_warning' ) );
94
  }
95
 
96
+ add_filter( 'wp_editor_settings', array( $this, 'disable_for_editor' ), 10, 2 );
 
 
 
97
 
98
+ add_filter( 'mce_buttons', array( $this, 'mce_buttons_1' ), 999, 2 );
99
+ add_filter( 'mce_buttons_2', array( $this, 'mce_buttons_2' ), 999 );
100
+ add_filter( 'mce_buttons_3', array( $this, 'mce_buttons_3' ), 999 );
101
+ add_filter( 'mce_buttons_4', array( $this, 'mce_buttons_4' ), 999 );
102
 
103
+ add_filter( 'tiny_mce_before_init', array( $this, 'mce_options' ) );
104
+ add_filter( 'mce_external_plugins', array( $this, 'mce_external_plugins' ), 999 );
105
+ add_filter( 'tiny_mce_plugins', array( $this, 'tiny_mce_plugins' ), 999 );
106
+ add_action( 'after_wp_tiny_mce', array( $this, 'after_wp_tiny_mce' ) );
107
+ }
108
+
109
+ public function disable_for_editor( $settings, $editor_id ) {
110
+ if ( empty( $this->admin_settings ) ) {
111
+ $this->load_settings();
112
+ }
113
+
114
+ $this->disabled_for_editor = false;
115
+ $this->editor_id = $editor_id;
116
+
117
+ if ( ! empty( $this->admin_settings['disabled_editors'] ) ) {
118
+ $disabled_editors = explode( ',', $this->admin_settings['disabled_editors'] );
119
+ $current_screen = isset( $GLOBALS['current_screen'] ) ? $GLOBALS['current_screen'] : new stdClass;
120
+
121
+ if ( is_admin() ) {
122
+ if ( $editor_id === 'content' && ( $current_screen->id === 'post' || $current_screen->id === 'page' ) ) {
123
+ if ( in_array( 'edit_post_screen', $disabled_editors, true ) ) {
124
+ $this->disabled_for_editor = true;
125
+ }
126
+ } elseif ( in_array( 'rest_of_wpadmin', $disabled_editors, true ) ) {
127
+ $this->disabled_for_editor = true;
128
+ }
129
+ } elseif ( in_array( 'on_front_end', $disabled_editors, true ) ) {
130
+ $this->disabled_for_editor = true;
131
+ }
132
+ }
133
+
134
+ return $settings;
135
+ }
136
+
137
+ private function is_disabled() {
138
+ return $this->disabled_for_editor;
139
  }
140
 
141
  // When using a plugin that changes the paths dinamically, set these earlier than 'plugins_loaded' 50.
142
+ public function set_paths() {
143
  if ( ! defined( 'TADV_URL' ) )
144
  define( 'TADV_URL', plugin_dir_url( __FILE__ ) );
145
 
147
  define( 'TADV_PATH', plugin_dir_path( __FILE__ ) );
148
  }
149
 
150
+ public function load_textdomain() {
151
  load_plugin_textdomain( 'tinymce-advanced', false, 'tinymce-advanced/langs' );
152
  }
153
 
154
+ public function enqueue_scripts( $page ) {
155
  if ( 'settings_page_tinymce-advanced' == $page ) {
156
  wp_enqueue_script( 'tadv-js', TADV_URL . 'js/tadv.js', array( 'jquery-ui-sortable' ), '4.0', true );
157
  wp_enqueue_style( 'tadv-mce-skin', includes_url( 'js/tinymce/skins/lightgray/skin.min.css' ), array(), '4.0' );
158
  wp_enqueue_style( 'tadv-css', TADV_URL . 'css/tadv-styles.css', array( 'editor-buttons' ), '4.0' );
159
 
160
+ add_action( 'admin_footer', array( $this, 'load_mce_translation' ) );
161
  }
162
  }
163
 
164
+ public function load_mce_translation() {
165
  if ( ! class_exists( '_WP_Editors' ) ) {
166
  require( ABSPATH . WPINC . '/class-wp-editor.php' );
167
  }
171
  <?php
172
  }
173
 
174
+ public function load_settings() {
175
  if ( empty( $_POST ) ) {
176
  $this->check_plugin_version();
177
  }
182
  }
183
 
184
  // load defaults if the options don't exist...
185
+ if ( $this->admin_settings === false ) {
186
  $this->admin_settings = $this->default_admin_settings;
187
+ }
188
 
189
  $this->admin_options = ! empty( $this->admin_settings['options'] ) ? explode( ',', $this->admin_settings['options'] ) : array();
190
 
191
+ if ( $this->settings === false ) {
192
  $this->settings = $this->default_settings;
193
+ }
194
 
195
  $this->options = ! empty( $this->settings['options'] ) ? explode( ',', $this->settings['options'] ) : array();
196
  $this->plugins = ! empty( $this->settings['plugins'] ) ? explode( ',', $this->settings['plugins'] ) : array();
268
  }
269
  }
270
 
271
+ public function get_all_buttons() {
272
  if ( ! empty( $this->all_buttons ) )
273
  return $this->all_buttons;
274
 
343
  return $buttons;
344
  }
345
 
346
+ public function get_plugins( $plugins = array() ) {
347
 
348
  if ( ! is_array( $this->used_buttons ) ) {
349
  $this->load_settings();
398
  return array_unique( $plugins );
399
  }
400
 
401
+ private function check_setting( $setting ) {
402
  if ( ! is_array( $this->options ) ) {
403
  $this->load_settings();
404
  }
405
 
406
+ // Back-compat for 'fontsize_formats'
407
+ if ( $setting === 'fontsize_formats' && $this->check_admin_setting( 'fontsize_formats' ) ) {
408
+ return true;
409
+ }
410
+
411
+ return in_array( $setting, $this->options, true );
412
  }
413
 
414
  private function check_admin_setting( $setting ) {
415
+ if ( ! is_array( $this->admin_options ) ) {
416
+ $this->load_settings();
417
+ }
418
+
419
+ if ( strpos( $setting, 'enable_' ) === 0 ) {
420
+ $disabled_editors = ! empty( $this->admin_settings['disabled_editors'] ) ? explode( ',', $this->admin_settings['disabled_editors'] ) : array();
421
+ return ! in_array( str_replace( 'enable_', '', $setting ), $disabled_editors );
422
+ }
423
+
424
+ return in_array( $setting, $this->admin_options, true );
425
  }
426
 
427
+ public function mce_buttons_1( $original, $editor_id ) {
428
+ if ( $this->is_disabled() ) {
429
+ return $original;
430
+ }
431
+
432
  if ( ! is_array( $this->options ) ) {
433
  $this->load_settings();
434
  }
443
  return $buttons_1;
444
  }
445
 
446
+ public function mce_buttons_2( $original ) {
447
+ if ( $this->is_disabled() ) {
448
+ return $original;
449
+ }
450
+
451
  if ( ! is_array( $this->options ) ) {
452
  $this->load_settings();
453
  }
462
  return $buttons_2;
463
  }
464
 
465
+ public function mce_buttons_3( $original ) {
466
+ if ( $this->is_disabled() ) {
467
+ return $original;
468
+ }
469
+
470
  if ( ! is_array( $this->options ) ) {
471
  $this->load_settings();
472
  }
481
  return $buttons_3;
482
  }
483
 
484
+ public function mce_buttons_4( $original ) {
485
+ if ( $this->is_disabled() ) {
486
+ return $original;
487
+ }
488
+
489
  if ( ! is_array( $this->options ) ) {
490
  $this->load_settings();
491
  }
500
  return $buttons_4;
501
  }
502
 
503
+ public function mce_options( $init ) {
504
+ if ( $this->is_disabled() ) {
505
+ return $init;
506
+ }
507
+
508
  if ( $this->check_admin_setting( 'no_autop' ) ) {
509
  $init['wpautop'] = false;
510
  // $init['indent'] = true;
532
  $init['importcss_file_filter'] = 'editor-style.css';
533
  }
534
 
535
+ if ( $this->check_setting( 'fontsize_formats' ) ) {
536
+ $init['fontsize_formats'] = '8px 10px 12px 14px 16px 20px 24px 28px 32px 36px 48px 60px';
537
  }
538
 
539
  if ( $this->check_setting( 'paste_images' ) ) {
543
  return $init;
544
  }
545
 
546
+ public function after_wp_tiny_mce() {
547
+ if ( $this->is_disabled() ) {
548
+ return;
549
+ }
550
+
551
  ?>
552
  <script>
553
  ( function( tinymce ) {
589
  <?php
590
  }
591
 
592
+ public function htmledit( $content ) {
593
  return $content;
594
  }
595
 
596
+ public function mce_external_plugins( $mce_plugins ) {
597
+ if ( $this->is_disabled() ) {
598
+ return $mce_plugins;
599
+ }
600
+
601
  // import user created editor-style.css
602
+ // Deprecated since
603
+ if ( $this->check_admin_setting( 'editorstyle' ) && ! current_theme_supports( 'editor-style' ) ) {
604
  add_editor_style();
605
  }
606
 
625
  return $mce_plugins;
626
  }
627
 
628
+ public function tiny_mce_plugins( $plugins ) {
629
+ if ( $this->is_disabled() ) {
630
+ return $plugins;
631
+ }
632
+
633
  if ( $this->check_setting('image') && ! in_array( 'image', $plugins, true ) ) {
634
  $plugins[] = 'image';
635
  }
682
  return $_settings;
683
  }
684
 
685
+ public function settings_page() {
686
  if ( ! defined( 'TADV_ADMIN_PAGE' ) ) {
687
  define( 'TADV_ADMIN_PAGE', true );
688
  }
690
  include_once( TADV_PATH . 'tadv_admin.php' );
691
  }
692
 
693
+ public function add_menu() {
694
+ add_options_page( 'TinyMCE Advanced', 'TinyMCE Advanced', 'manage_options', 'tinymce-advanced', array( $this, 'settings_page' ) );
695
+ }
696
+
697
+ /**
698
+ * Add a link to the settings page
699
+ */
700
+ public function add_settings_link( $links, $file ) {
701
+ if ( $file === 'tinymce-advanced/tinymce-advanced.php' && current_user_can( 'manage_options' ) ) {
702
+ $settings_link = sprintf( '<a href="%s">%s</a>', admin_url( 'options-general.php?page=tinymce-advanced' ), __( 'Settings', 'tinymce-advanced' ) );
703
+ array_unshift( $links, $settings_link );
704
+ }
705
+
706
+ return $links;
707
  }
708
  }
709