Dotclear

Changeset 307:e637c27e4935 for inc


Ignore:
Timestamp:
05/23/11 13:46:19 (14 years ago)
Author:
Tomtom33 <tbouron@…>
Branch:
wysiwyg
Message:

First integration of TinyMCE

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inc/admin/lib.dc.page.php

    r224 r307  
    549549     public static function jsToolBar() 
    550550     { 
     551          $params_wiki = array( 
     552               'init' => array( 
     553                    "jsToolBar.prototype.dialog_url = 'popup.php';", 
     554                    "jsToolBar.prototype.base_url = '".html::escapeJS($GLOBALS['core']->blog->host)."';", 
     555                    "jsToolBar.prototype.legend_msg = '".html::escapeJS(__('You can use the following shortcuts to format your text.'))."';", 
     556                    "jsToolBar.prototype.elements.blocks.options.none = '".html::escapeJS(__('-- none --'))."';", 
     557                    "jsToolBar.prototype.elements.blocks.options.nonebis = '".html::escapeJS(__('-- block format --'))."';", 
     558                    "jsToolBar.prototype.elements.blocks.options.p = '".html::escapeJS(__('Paragraph'))."';", 
     559                    "jsToolBar.prototype.elements.blocks.options.h1 = '".html::escapeJS(__('Level 1 header'))."';", 
     560                    "jsToolBar.prototype.elements.blocks.options.h2 = '".html::escapeJS(__('Level 2 header'))."';", 
     561                    "jsToolBar.prototype.elements.blocks.options.h3 = '".html::escapeJS(__('Level 3 header'))."';", 
     562                    "jsToolBar.prototype.elements.blocks.options.h4 = '".html::escapeJS(__('Level 4 header'))."';", 
     563                    "jsToolBar.prototype.elements.blocks.options.h5 = '".html::escapeJS(__('Level 5 header'))."';", 
     564                    "jsToolBar.prototype.elements.blocks.options.h6 = '".html::escapeJS(__('Level 6 header'))."';", 
     565                    "jsToolBar.prototype.elements.strong.title = '".html::escapeJS(__('Strong emphasis'))."';", 
     566                    "jsToolBar.prototype.elements.em.title = '".html::escapeJS(__('Emphasis'))."';", 
     567                    "jsToolBar.prototype.elements.ins.title = '".html::escapeJS(__('Inserted'))."';", 
     568                    "jsToolBar.prototype.elements.del.title = '".html::escapeJS(__('Deleted'))."';", 
     569                    "jsToolBar.prototype.elements.quote.title = '".html::escapeJS(__('Inline quote'))."';", 
     570                    "jsToolBar.prototype.elements.code.title = '".html::escapeJS(__('Code'))."';", 
     571                    "jsToolBar.prototype.elements.br.title = '".html::escapeJS(__('Line break'))."';", 
     572                    "jsToolBar.prototype.elements.blockquote.title = '".html::escapeJS(__('Blockquote'))."';", 
     573                    "jsToolBar.prototype.elements.pre.title = '".html::escapeJS(__('Preformated text'))."';", 
     574                    "jsToolBar.prototype.elements.ul.title = '".html::escapeJS(__('Unordered list'))."';", 
     575                    "jsToolBar.prototype.elements.ol.title = '".html::escapeJS(__('Ordered list'))."';", 
     576                    "jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."';", 
     577                    "jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."';", 
     578                    "jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."';", 
     579                    "jsToolBar.prototype.elements.img.title = '".html::escapeJS(__('External image'))."';", 
     580                    "jsToolBar.prototype.elements.img.src_prompt = '".html::escapeJS(__('URL?'))."';", 
     581                    "jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."';", 
     582                    "jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."';" 
     583               ), 
     584               'load' => array( 
     585                    "$.data(elm,'toolbar',new jsToolBar(document.getElementById($(elm).attr('id'))));" 
     586               ), 
     587               'draw' => array( 
     588                    "$(elm).data('toolbar').switchMode('wiki');" 
     589               ), 
     590               'destroy' => array( 
     591                    "$(elm).data('toolbar').remove();" 
     592               ) 
     593          ); 
     594          if (!$GLOBALS['core']->auth->check('media,media_admin',$GLOBALS['core']->blog->id)) { 
     595               $params_wiki['init'][] = "jsToolBar.prototype.elements.img_select.disabled = true;"; 
     596          } 
     597           
     598          $params_xhtml = array( 
     599               'preinit' => array( 
     600                    "if (!window.tinyMCE) {", 
     601                    "window.tinyMCEPreInit = {base : 'js/tiny_mce', suffix : '', query : ''};", 
     602                    "}" 
     603               ), 
     604               'init' => array( 
     605                    "tinyMCE.dom.Event.domLoaded = true;", 
     606                    "tinyMCE.settings = {};", 
     607                    "tinyMCE.settings.mode = 'textareas';", 
     608                    "tinyMCE.settings.relative_urls = false;", 
     609                    "tinyMCE.settings.theme = '".html::escapeJS('advanced')."';", 
     610                    "tinyMCE.settings.plugins = '".html::escapeJS('fullscreen,paste,searchreplace')."'; ", 
     611                    "tinyMCE.settings.theme_advanced_buttons1 = '".html::escapeJS('justifyleft,justifycenter,justifyright,separator,bold,italic,underline,strikethrough,sub,sup,separator,blockquote,bullist,numlist,outdent,indent,separator,undo,redo,separator,visualaid,separator,fullscreen,separator,code')."';", 
     612                    "tinyMCE.settings.theme_advanced_buttons2 = '".html::escapeJS('formatselect,removeformat,cleanup,seperator,cut,copy,paste,pastetext,pasteword,search,replace')."';", 
     613                    "tinyMCE.settings.theme_advanced_buttons3 = '".html::escapeJS('link,unlink,hr,charmap,emotions')."';", 
     614                    "tinyMCE.settings.theme_advanced_toolbar_location = '".html::escapeJS('top')."';", 
     615                    "tinyMCE.settings.theme_advanced_toolbar_align = '".html::escapeJS('left')."';", 
     616                    "tinyMCE.settings.theme_advanced_statusbar_location = '".html::escapeJS('bottom')."';", 
     617                    "tinyMCE.settings.theme_advanced_resizing = true;", 
     618                    "tinyMCE.settings.theme_advanced_resize_horizontal = false;", 
     619                    "tinyMCE.settings.entity_encoding = '".html::escapeJS('raw')."';", 
     620                    "tinyMCE.settings.add_unload_trigger = false;", 
     621                    "tinyMCE.settings.remove_linebreaks = false;", 
     622                    "tinyMCE.settings.paste_auto_cleanup_on_paste = true;" 
     623               ), 
     624               'load' => array( 
     625                    "$.data(elm,'toolbar',new tinyMCE.Editor($(elm).attr('id'),tinyMCE.settings));" 
     626               ), 
     627               'draw' => array( 
     628                    "$(elm).data('toolbar').render();" 
     629               ), 
     630               'destroy' => array( 
     631                    "$(elm).data('toolbar').remove();" 
     632               ) 
     633          ); 
     634           
    551635          $res = 
    552           '<link rel="stylesheet" type="text/css" href="style/jsToolBar/jsToolBar.css" />'. 
    553           '<script type="text/javascript" src="js/jsToolBar/jsToolBar.js"></script>'; 
    554            
    555           if (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('enable_wysiwyg')) { 
    556                $res .= '<script type="text/javascript" src="js/jsToolBar/jsToolBar.wysiwyg.js"></script>'; 
    557           } 
    558            
    559           $res .= 
    560           '<script type="text/javascript" src="js/jsToolBar/jsToolBar.dotclear.js"></script>'. 
     636          '<script type="text/javascript" src="js/dcToolBarManager.js"></script>'. 
    561637          '<script type="text/javascript">'."\n". 
    562638          "//<![CDATA[\n". 
    563           "jsToolBar.prototype.dialog_url = 'popup.php'; ". 
    564           "jsToolBar.prototype.iframe_css = '". 
    565                'body{'. 
    566                     'font: 12px "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;'. 
    567                     'color : #000;'. 
    568                     'background: #f9f9f9;'. 
    569                     'margin: 0;'. 
    570                     'padding : 2px;'. 
    571                     'border: none;'. 
    572                     (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl' ? 'direction:rtl;' : ''). 
    573                '}'. 
    574                'pre, code, kbd, samp {'. 
    575                     'font-family:"Courier New",Courier,monospace;'. 
    576                     'font-size : 1.1em;'. 
    577                '}'. 
    578                'code {'. 
    579                     'color : #666;'. 
    580                     'font-weight : bold;'. 
    581                '}'. 
    582                'body > p:first-child {'. 
    583                     'margin-top: 0;'. 
    584                '}'. 
    585           "'; ". 
    586           "jsToolBar.prototype.base_url = '".html::escapeJS($GLOBALS['core']->blog->host)."'; ". 
    587           "jsToolBar.prototype.switcher_visual_title = '".html::escapeJS(__('visual'))."'; ". 
    588           "jsToolBar.prototype.switcher_source_title = '".html::escapeJS(__('source'))."'; ". 
    589           "jsToolBar.prototype.legend_msg = '". 
    590           html::escapeJS(__('You can use the following shortcuts to format your text.'))."'; ". 
    591           "jsToolBar.prototype.elements.blocks.options.none = '".html::escapeJS(__('-- none --'))."'; ". 
    592           "jsToolBar.prototype.elements.blocks.options.nonebis = '".html::escapeJS(__('-- block format --'))."'; ". 
    593           "jsToolBar.prototype.elements.blocks.options.p = '".html::escapeJS(__('Paragraph'))."'; ". 
    594           "jsToolBar.prototype.elements.blocks.options.h1 = '".html::escapeJS(__('Level 1 header'))."'; ". 
    595           "jsToolBar.prototype.elements.blocks.options.h2 = '".html::escapeJS(__('Level 2 header'))."'; ". 
    596           "jsToolBar.prototype.elements.blocks.options.h3 = '".html::escapeJS(__('Level 3 header'))."'; ". 
    597           "jsToolBar.prototype.elements.blocks.options.h4 = '".html::escapeJS(__('Level 4 header'))."'; ". 
    598           "jsToolBar.prototype.elements.blocks.options.h5 = '".html::escapeJS(__('Level 5 header'))."'; ". 
    599           "jsToolBar.prototype.elements.blocks.options.h6 = '".html::escapeJS(__('Level 6 header'))."'; ". 
    600           "jsToolBar.prototype.elements.strong.title = '".html::escapeJS(__('Strong emphasis'))."'; ". 
    601           "jsToolBar.prototype.elements.em.title = '".html::escapeJS(__('Emphasis'))."'; ". 
    602           "jsToolBar.prototype.elements.ins.title = '".html::escapeJS(__('Inserted'))."'; ". 
    603           "jsToolBar.prototype.elements.del.title = '".html::escapeJS(__('Deleted'))."'; ". 
    604           "jsToolBar.prototype.elements.quote.title = '".html::escapeJS(__('Inline quote'))."'; ". 
    605           "jsToolBar.prototype.elements.code.title = '".html::escapeJS(__('Code'))."'; ". 
    606           "jsToolBar.prototype.elements.br.title = '".html::escapeJS(__('Line break'))."'; ". 
    607           "jsToolBar.prototype.elements.blockquote.title = '".html::escapeJS(__('Blockquote'))."'; ". 
    608           "jsToolBar.prototype.elements.pre.title = '".html::escapeJS(__('Preformated text'))."'; ". 
    609           "jsToolBar.prototype.elements.ul.title = '".html::escapeJS(__('Unordered list'))."'; ". 
    610           "jsToolBar.prototype.elements.ol.title = '".html::escapeJS(__('Ordered list'))."'; ". 
    611            
    612           "jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."'; ". 
    613           "jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."'; ". 
    614           "jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."'; ". 
    615            
    616           "jsToolBar.prototype.elements.img.title = '".html::escapeJS(__('External image'))."'; ". 
    617           "jsToolBar.prototype.elements.img.src_prompt = '".html::escapeJS(__('URL?'))."'; ". 
    618            
    619           "jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."'; ". 
    620           "jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."'; "; 
    621            
    622           if (!$GLOBALS['core']->auth->check('media,media_admin',$GLOBALS['core']->blog->id)) { 
    623                $res .= "jsToolBar.prototype.elements.img_select.disabled = true;\n"; 
    624           } 
    625            
    626           $res .= 
     639          "var dcToolBarManager = new dcToolBarManager();\n". 
     640          "dcToolBarManager.msg.toolbar_does_not_exists = '".html::escapeJS(__('Toolbar [%s] does not exists'))."';\n". 
     641          "dcToolBarManager.setToolBar({\n". 
     642               "id: 'xhtml',\n". 
     643               "js_urls: ['js/tiny_mce/tiny_mce.js'],\n". 
     644               "css_urls: [],\n". 
     645               "preinit: function() {".implode(' ',$params_xhtml['preinit'])."},\n". 
     646               "init: function() {".implode(' ',$params_xhtml['init'])."},\n". 
     647               "load: function(elm) {".implode(' ',$params_xhtml['load'])."},\n". 
     648               "draw: function(elm) {".implode(' ',$params_xhtml['draw'])."},\n". 
     649               "destroy: function(elm) {".implode(' ',$params_xhtml['destroy'])."}\n". 
     650          "});\n". 
     651          "dcToolBarManager.setToolBar({\n". 
     652               "id: 'wiki',\n". 
     653               "js_urls: ['js/jsToolBar/jsToolBar.js','js/jsToolBar/jsToolBar.dotclear.js'],\n". 
     654               "css_urls: ['style/jsToolBar/jsToolBar.css'],\n". 
     655               "init: function() {".implode("\n",$params_wiki['init'])."},\n". 
     656               "load: function(elm) {".implode(' ',$params_wiki['load'])."},\n". 
     657               "draw: function(elm) {".implode(' ',$params_wiki['draw'])."},\n". 
     658               "destroy: function(elm) {".implode(' ',$params_wiki['destroy'])."}\n". 
     659          "});\n". 
    627660          "\n//]]>\n". 
    628661          "</script>\n"; 
Note: See TracChangeset for help on using the changeset viewer.

Sites map