Dotclear

source: plugins/dcCKEditor/inc/_config.php @ 3955:dcbe188a9646

Revision 3955:dcbe188a9646, 3.9 KB checked in by franck <carnet.franck.paul@…>, 7 years ago (diff)

Add undo/redo option (toolbar buttons) for CKEditor plugin

Line 
1<?php
2/**
3 * @brief dcCKEditor, a plugin for Dotclear 2
4 *
5 * @package Dotclear
6 * @subpackage Plugins
7 *
8 * @copyright Olivier Meunier & Association Dotclear
9 * @copyright GPL-2.0-only
10 */
11
12if (!defined('DC_CONTEXT_ADMIN')) {return;}
13
14$dcckeditor_was_actived = $dcckeditor_active;
15
16if (!empty($_POST['saveconfig'])) {
17    try {
18        $dcckeditor_active = (empty($_POST['dcckeditor_active'])) ? false : true;
19        $core->blog->settings->dcckeditor->put('active', $dcckeditor_active, 'boolean');
20
21        // change other settings only if they were in html page
22        if ($dcckeditor_was_actived) {
23            $dcckeditor_alignement_buttons = (empty($_POST['dcckeditor_alignment_buttons'])) ? false : true;
24            $core->blog->settings->dcckeditor->put('alignment_buttons', $dcckeditor_alignement_buttons, 'boolean');
25
26            $dcckeditor_list_buttons = (empty($_POST['dcckeditor_list_buttons'])) ? false : true;
27            $core->blog->settings->dcckeditor->put('list_buttons', $dcckeditor_list_buttons, 'boolean');
28
29            $dcckeditor_textcolor_button = (empty($_POST['dcckeditor_textcolor_button'])) ? false : true;
30            $core->blog->settings->dcckeditor->put('textcolor_button', $dcckeditor_textcolor_button, 'boolean');
31
32            $dcckeditor_background_textcolor_button = (empty($_POST['dcckeditor_background_textcolor_button'])) ? false : true;
33            $core->blog->settings->dcckeditor->put('background_textcolor_button', $dcckeditor_background_textcolor_button, 'boolean');
34
35            $dcckeditor_cancollapse_button = (empty($_POST['dcckeditor_cancollapse_button'])) ? false : true;
36            $core->blog->settings->dcckeditor->put('cancollapse_button', $dcckeditor_cancollapse_button, 'boolean');
37
38            $dcckeditor_format_select = (empty($_POST['dcckeditor_format_select'])) ? false : true;
39            $core->blog->settings->dcckeditor->put('format_select', $dcckeditor_format_select, 'boolean');
40
41            // default tags : p;h1;h2;h3;h4;h5;h6;pre;address
42            $allowed_tags = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre', 'address'];
43            if (!empty($_POST['dcckeditor_format_tags'])) {
44                $tags     = explode(';', $_POST['dcckeditor_format_tags']);
45                $new_tags = true;
46                foreach ($tags as $tag) {
47                    if (!in_array($tag, $allowed_tags)) {
48                        $new_tags = false;
49                        break;
50                    }
51                }
52                if ($new_tags) {
53                    $dcckeditor_format_tags = $_POST['dcckeditor_format_tags'];
54                }
55            } else {
56                $dcckeditor_format_tags = 'p;h1;h2;h3;h4;h5;h6;pre;address';
57            }
58            $core->blog->settings->dcckeditor->put('format_tags', $dcckeditor_format_tags, 'string');
59
60            $dcckeditor_table_button = (empty($_POST['dcckeditor_table_button'])) ? false : true;
61            $core->blog->settings->dcckeditor->put('table_button', $dcckeditor_table_button, 'boolean');
62
63            $dcckeditor_clipboard_buttons = (empty($_POST['dcckeditor_clipboard_buttons'])) ? false : true;
64            $core->blog->settings->dcckeditor->put('clipboard_buttons', $dcckeditor_clipboard_buttons, 'boolean');
65
66            $dcckeditor_action_buttons = (empty($_POST['dcckeditor_action_buttons'])) ? false : true;
67            $core->blog->settings->dcckeditor->put('action_buttons', $dcckeditor_action_buttons, 'boolean');
68
69            $dcckeditor_disable_native_spellchecker = (empty($_POST['dcckeditor_disable_native_spellchecker'])) ? false : true;
70            $core->blog->settings->dcckeditor->put('disable_native_spellchecker', $dcckeditor_disable_native_spellchecker, 'boolean');
71        }
72
73        dcPage::addSuccessNotice(__('The configuration has been updated.'));
74        http::redirect($p_url);
75    } catch (Exception $e) {
76        $core->error->add($e->getMessage());
77    }
78}
79
80include dirname(__FILE__) . '/../tpl/index.php';
Note: See TracBrowser for help on using the repository browser.

Sites map