Dotclear

source: plugins/dcLegacyEditor/inc/dc.legacy.editor.behaviors.php @ 3669:41c8e8a58e1f

Revision 3669:41c8e8a58e1f, 7.0 KB checked in by franck <carnet.franck.paul@…>, 8 years ago (diff)

Adjust editors base font size (CodeMirror?, dcLegacyEditor, dcCKEditor), should fix #2263

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12
13class dcLegacyEditorBehaviors
14{
15     protected static $p_url = 'index.php?pf=dcLegacyEditor';
16
17     /**
18      * adminPostEditor add javascript to the DOM to load ckeditor depending on context
19      *
20      * @param editor   <b>string</b> wanted editor
21      * @param context  <b>string</b> page context (post,page,comment,event,...)
22      * @param tags     <b>array</b>  array of ids to inject editor
23      * @param syntax   <b>string</b> wanted syntax (wiki,markdown,...)
24      */
25     public static function adminPostEditor($editor='',$context='',array $tags=array(),$syntax='') {
26          if (empty($editor) || $editor!='dcLegacyEditor') {return;}
27
28          return
29               self::jsToolBar().
30               dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/_post_editor.js')).
31               '<script type="text/javascript">'."\n".
32               dcPage::jsVar('dotclear.legacy_editor_context', $context).
33               dcPage::jsVar('dotclear.legacy_editor_syntax', $syntax).
34               'dotclear.legacy_editor_tags_context = '.sprintf('{%s:["%s"]};'."\n", $context, implode('","', $tags))."\n".
35               "</script>\n";
36     }
37
38     public static function adminPopupMedia($editor='') {
39          if (empty($editor) || $editor!='dcLegacyEditor') {return;}
40
41          return dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/popup_media.js'));
42     }
43
44     public static function adminPopupLink($editor='') {
45          if (empty($editor) || $editor!='dcLegacyEditor') {return;}
46
47          return dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/popup_link.js'));
48     }
49
50     public static function adminPopupPosts($editor='') {
51          if (empty($editor) || $editor!='dcLegacyEditor') {return;}
52
53          return dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/popup_posts.js'));
54     }
55
56     protected static function jsToolBar() {
57          $res =
58          dcPage::cssLoad(dcPage::getPF('dcLegacyEditor/css/jsToolBar/jsToolBar.css')).
59          dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/jsToolBar.js'));
60
61          if (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('enable_wysiwyg')) {
62               $res .= dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/jsToolBar.wysiwyg.js'));
63          }
64
65          $res .=
66          dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/jsToolBar.dotclear.js')).
67          '<script type="text/javascript">'."\n".
68          "jsToolBar.prototype.dialog_url = 'popup.php'; "."\n".
69          "jsToolBar.prototype.iframe_css = '".
70          'body {'.
71          '    color: #000;'.
72          '    background: #f9f9f9;'.
73          '    margin: 0;'.
74          '    padding: 2px;'.
75          '    border: none;'.
76          (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl' ? '     direction: rtl;' : '').
77          '}'.
78          'code {'.
79          '    color: #666;'.
80          '    font-weight: bold;'.
81          '}'.
82          'body > p:first-child {'.
83          '    margin-top: 0;'.
84          '}'.
85          "'; "."\n".
86          "jsToolBar.prototype.base_url = '".html::escapeJS($GLOBALS['core']->blog->host)."'; "."\n".
87          "jsToolBar.prototype.switcher_visual_title = '".html::escapeJS(__('visual'))."'; "."\n".
88          "jsToolBar.prototype.switcher_source_title = '".html::escapeJS(__('source'))."'; "."\n".
89          "jsToolBar.prototype.legend_msg = '".
90          html::escapeJS(__('You can use the following shortcuts to format your text.'))."'; "."\n".
91          "jsToolBar.prototype.elements.blocks.options.none = '".html::escapeJS(__('-- none --'))."'; "."\n".
92          "jsToolBar.prototype.elements.blocks.options.nonebis = '".html::escapeJS(__('-- block format --'))."'; "."\n".
93          "jsToolBar.prototype.elements.blocks.options.p = '".html::escapeJS(__('Paragraph'))."'; "."\n".
94          "jsToolBar.prototype.elements.blocks.options.h1 = '".html::escapeJS(__('Level 1 header'))."'; "."\n".
95          "jsToolBar.prototype.elements.blocks.options.h2 = '".html::escapeJS(__('Level 2 header'))."'; "."\n".
96          "jsToolBar.prototype.elements.blocks.options.h3 = '".html::escapeJS(__('Level 3 header'))."'; "."\n".
97          "jsToolBar.prototype.elements.blocks.options.h4 = '".html::escapeJS(__('Level 4 header'))."'; "."\n".
98          "jsToolBar.prototype.elements.blocks.options.h5 = '".html::escapeJS(__('Level 5 header'))."'; "."\n".
99          "jsToolBar.prototype.elements.blocks.options.h6 = '".html::escapeJS(__('Level 6 header'))."'; "."\n".
100          "jsToolBar.prototype.elements.strong.title = '".html::escapeJS(__('Strong emphasis'))."'; "."\n".
101          "jsToolBar.prototype.elements.em.title = '".html::escapeJS(__('Emphasis'))."'; "."\n".
102          "jsToolBar.prototype.elements.ins.title = '".html::escapeJS(__('Inserted'))."'; "."\n".
103          "jsToolBar.prototype.elements.del.title = '".html::escapeJS(__('Deleted'))."'; "."\n".
104          "jsToolBar.prototype.elements.quote.title = '".html::escapeJS(__('Inline quote'))."'; "."\n".
105          "jsToolBar.prototype.elements.code.title = '".html::escapeJS(__('Code'))."'; "."\n".
106          "jsToolBar.prototype.elements.mark.title = '".html::escapeJS(__('Mark'))."'; "."\n".
107          "jsToolBar.prototype.elements.br.title = '".html::escapeJS(__('Line break'))."'; "."\n".
108          "jsToolBar.prototype.elements.blockquote.title = '".html::escapeJS(__('Blockquote'))."'; "."\n".
109          "jsToolBar.prototype.elements.pre.title = '".html::escapeJS(__('Preformated text'))."'; "."\n".
110          "jsToolBar.prototype.elements.ul.title = '".html::escapeJS(__('Unordered list'))."'; "."\n".
111          "jsToolBar.prototype.elements.ol.title = '".html::escapeJS(__('Ordered list'))."'; "."\n".
112
113          "jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."'; "."\n".
114          "jsToolBar.prototype.elements.link.accesskey = '".html::escapeJS(__('l'))."'; "."\n".
115          "jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."'; "."\n".
116          "jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."'; "."\n".
117
118          "jsToolBar.prototype.elements.img.title = '".html::escapeJS(__('External image'))."'; "."\n".
119          "jsToolBar.prototype.elements.img.src_prompt = '".html::escapeJS(__('URL?'))."'; "."\n".
120
121          "jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."'; "."\n".
122          "jsToolBar.prototype.elements.img_select.accesskey = '".html::escapeJS(__('m'))."'; "."\n".
123          "jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."'; "."\n".
124          "jsToolBar.prototype.elements.removeFormat = jsToolBar.prototype.elements.removeFormat || {}; "."\n".
125          "jsToolBar.prototype.elements.removeFormat.title = '".html::escapeJS(__('Remove text formating'))."'; "."\n";
126
127          if (!$GLOBALS['core']->auth->check('media,media_admin',$GLOBALS['core']->blog->id)) {
128               $res .= "jsToolBar.prototype.elements.img_select.disabled = true;\n";
129          }
130
131          $res .= "jsToolBar.prototype.toolbar_bottom = ".
132               (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('toolbar_bottom') ? 'true' : 'false').";\n";
133
134          $res .=
135          "</script>\n";
136
137          if ($GLOBALS['core']->auth->user_prefs->interface->htmlfontsize) {
138               $res .=
139               '<script type="text/javascript">'."\n".
140               dcPage::jsVar('dotclear_htmlFontSize',$GLOBALS['core']->auth->user_prefs->interface->htmlfontsize)."\n".
141               "</script>\n";
142          }
143
144          return $res;
145     }
146}
Note: See TracBrowser for help on using the repository browser.

Sites map