Dotclear

source: plugins/dcLegacyEditor/inc/dc.legacy.editor.behaviors.php @ 3361:23cff72066bd

Revision 3361:23cff72066bd, 6.8 KB checked in by franck <carnet.franck.paul@…>, 9 years ago (diff)

Add 'l' and 'm' accesskey for legacy editor toolbar, respectively for 'insert link' and 'select media' buttons

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               "//<![CDATA[\n".
33               dcPage::jsVar('dotclear.legacy_editor_context', $context).
34               dcPage::jsVar('dotclear.legacy_editor_syntax', $syntax).
35               'dotclear.legacy_editor_tags_context = '.sprintf('{%s:["%s"]};'."\n", $context, implode('","', $tags)).
36               "\n//]]>\n".
37               "</script>\n";
38     }
39
40     public static function adminPopupMedia($editor='') {
41          if (empty($editor) || $editor!='dcLegacyEditor') {return;}
42
43          return dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/popup_media.js'));
44     }
45
46     public static function adminPopupLink($editor='') {
47          if (empty($editor) || $editor!='dcLegacyEditor') {return;}
48
49          return dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/popup_link.js'));
50     }
51
52     public static function adminPopupPosts($editor='') {
53          if (empty($editor) || $editor!='dcLegacyEditor') {return;}
54
55          return dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/popup_posts.js'));
56     }
57
58     protected static function jsToolBar() {
59          $res =
60          dcPage::cssLoad(dcPage::getPF('dcLegacyEditor/css/jsToolBar/jsToolBar.css')).
61          dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/jsToolBar.js'));
62
63          if (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('enable_wysiwyg')) {
64               $res .= dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/jsToolBar.wysiwyg.js'));
65          }
66
67          $res .=
68          dcPage::jsLoad(dcPage::getPF('dcLegacyEditor/js/jsToolBar/jsToolBar.dotclear.js')).
69          '<script type="text/javascript">'."\n".
70          "//<![CDATA[\n".
71          "jsToolBar.prototype.dialog_url = 'popup.php'; ".
72          "jsToolBar.prototype.iframe_css = '".
73          'body{'.
74          'font: 12px "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;'.
75          'color : #000;'.
76          'background: #f9f9f9;'.
77          'margin: 0;'.
78          'padding : 2px;'.
79          'border: none;'.
80          (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl' ? 'direction:rtl;' : '').
81          '}'.
82          'pre, code, kbd, samp {'.
83          'font-family:"Courier New",Courier,monospace;'.
84          'font-size : 1.1em;'.
85          '}'.
86          'code {'.
87          'color : #666;'.
88          'font-weight : bold;'.
89          '}'.
90          'body > p:first-child {'.
91          'margin-top: 0;'.
92          '}'.
93          "'; ".
94          "jsToolBar.prototype.base_url = '".html::escapeJS($GLOBALS['core']->blog->host)."'; ".
95          "jsToolBar.prototype.switcher_visual_title = '".html::escapeJS(__('visual'))."'; ".
96          "jsToolBar.prototype.switcher_source_title = '".html::escapeJS(__('source'))."'; ".
97          "jsToolBar.prototype.legend_msg = '".
98          html::escapeJS(__('You can use the following shortcuts to format your text.'))."'; ".
99          "jsToolBar.prototype.elements.blocks.options.none = '".html::escapeJS(__('-- none --'))."'; ".
100          "jsToolBar.prototype.elements.blocks.options.nonebis = '".html::escapeJS(__('-- block format --'))."'; ".
101          "jsToolBar.prototype.elements.blocks.options.p = '".html::escapeJS(__('Paragraph'))."'; ".
102          "jsToolBar.prototype.elements.blocks.options.h1 = '".html::escapeJS(__('Level 1 header'))."'; ".
103          "jsToolBar.prototype.elements.blocks.options.h2 = '".html::escapeJS(__('Level 2 header'))."'; ".
104          "jsToolBar.prototype.elements.blocks.options.h3 = '".html::escapeJS(__('Level 3 header'))."'; ".
105          "jsToolBar.prototype.elements.blocks.options.h4 = '".html::escapeJS(__('Level 4 header'))."'; ".
106          "jsToolBar.prototype.elements.blocks.options.h5 = '".html::escapeJS(__('Level 5 header'))."'; ".
107          "jsToolBar.prototype.elements.blocks.options.h6 = '".html::escapeJS(__('Level 6 header'))."'; ".
108          "jsToolBar.prototype.elements.strong.title = '".html::escapeJS(__('Strong emphasis'))."'; ".
109          "jsToolBar.prototype.elements.em.title = '".html::escapeJS(__('Emphasis'))."'; ".
110          "jsToolBar.prototype.elements.ins.title = '".html::escapeJS(__('Inserted'))."'; ".
111          "jsToolBar.prototype.elements.del.title = '".html::escapeJS(__('Deleted'))."'; ".
112          "jsToolBar.prototype.elements.quote.title = '".html::escapeJS(__('Inline quote'))."'; ".
113          "jsToolBar.prototype.elements.code.title = '".html::escapeJS(__('Code'))."'; ".
114          "jsToolBar.prototype.elements.mark.title = '".html::escapeJS(__('Mark'))."'; ".
115          "jsToolBar.prototype.elements.br.title = '".html::escapeJS(__('Line break'))."'; ".
116          "jsToolBar.prototype.elements.blockquote.title = '".html::escapeJS(__('Blockquote'))."'; ".
117          "jsToolBar.prototype.elements.pre.title = '".html::escapeJS(__('Preformated text'))."'; ".
118          "jsToolBar.prototype.elements.ul.title = '".html::escapeJS(__('Unordered list'))."'; ".
119          "jsToolBar.prototype.elements.ol.title = '".html::escapeJS(__('Ordered list'))."'; ".
120
121          "jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."'; ".
122          "jsToolBar.prototype.elements.link.accesskey = '".html::escapeJS(__('l'))."'; ".
123          "jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."'; ".
124          "jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."'; ".
125
126          "jsToolBar.prototype.elements.img.title = '".html::escapeJS(__('External image'))."'; ".
127          "jsToolBar.prototype.elements.img.src_prompt = '".html::escapeJS(__('URL?'))."'; ".
128
129          "jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."'; ".
130          "jsToolBar.prototype.elements.img_select.accesskey = '".html::escapeJS(__('m'))."'; ".
131          "jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."'; ".
132          "jsToolBar.prototype.elements.removeFormat = jsToolBar.prototype.elements.removeFormat || {}; ".
133          "jsToolBar.prototype.elements.removeFormat.title = '".html::escapeJS(__('Remove text formating'))."'; ";
134
135          if (!$GLOBALS['core']->auth->check('media,media_admin',$GLOBALS['core']->blog->id)) {
136               $res .= "jsToolBar.prototype.elements.img_select.disabled = true;\n";
137          }
138
139          $res .= "jsToolBar.prototype.toolbar_bottom = ".
140               (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('toolbar_bottom') ? 'true' : 'false').";\n";
141
142          $res .=
143          "\n//]]>\n".
144          "</script>\n";
145
146          return $res;
147     }
148}
Note: See TracBrowser for help on using the repository browser.

Sites map