Dotclear


Ignore:
Timestamp:
06/03/11 11:55:39 (14 years ago)
Author:
Tomtom33 <tbouron@…>
Branch:
wysiwyg
Message:

Added plugin tag for TinyMCE

Location:
plugins/tags
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • plugins/tags/_admin.php

    r317 r330  
    3939 
    4040$core->addBehavior('adminDashboardFavs',array('tagsBehaviors','dashboardFavs')); 
     41 
     42$core->addBehavior('adminToolbar',array('tagsBehaviors','adminToolbar')); 
    4143 
    4244# BEHAVIORS 
     
    122124          "dotclear.msg.entry = '".html::escapeJS(__('entry'))."';\n". 
    123125          "dotclear.msg.entries = '".html::escapeJS(__('entries'))."';\n". 
    124           "dcToolBarManager.bind('onInit','wiki',function() {\n". 
    125                "jsToolBar.prototype.elements.tag.title = '".html::escapeJS(__('Tag'))."';\n". 
    126                "jsToolBar.prototype.elements.tag.url = '".html::escapeJS($tag_url)."';\n". 
    127           "});\n". 
    128           "dcToolBarManager.bind('onInit','xhtml',function() {\n". 
    129                "tinymce.plugins.dcTag.title = '".html::escapeJS(__('Tag'))."';\n". 
    130                "tinymce.plugins.dcTag.url = '".html::escapeJS($tag_url)."';\n". 
    131           "});\n". 
    132126          "\n//]]>\n". 
    133127          "</script>\n". 
     
    137131     public static function postsActionsHeaders() 
    138132     { 
    139           $tag_url = $GLOBALS['core']->blog->url.$GLOBALS['core']->url->getBase('tag'); 
    140            
    141133          $opts = $GLOBALS['core']->auth->getOptions(); 
    142134          $type = isset($opts['tag_list_format']) ? $opts['tag_list_format'] : 'more'; 
     
    327319          } 
    328320     } 
     321      
     322     public static function adminToolbar($tb) 
     323     { 
     324          $tag_url = $GLOBALS['core']->blog->getQMarkURL().$GLOBALS['core']->url->getBase('tag'); 
     325           
     326          $tb->addSettings('xhtml',array('tag_url_pattern' => $tag_url)); 
     327          $tb->addPlugins('xhtml',array('dcTag' => false)); 
     328          $tb->addButtons('xhtml',array(3 => array('tag'))); 
     329     } 
    329330} 
    330331?> 
  • plugins/tags/js/post.js

    r317 r330  
    5757          }); 
    5858     }); 
    59 }); 
    6059 
    61 // Toolbar button for tags 
    62 dcToolBarManager.bind('onInit','wiki',function() { 
    63      jsToolBar.prototype.elements.tagSpace = {type: 'space'}; 
    64       
    65      jsToolBar.prototype.elements.tag = {type: 'button', title: 'Keyword', fn:{} }; 
    66      jsToolBar.prototype.elements.tag.context = 'post'; 
    67      jsToolBar.prototype.elements.tag.icon = 'index.php?pf=tags/img/tag-add.png'; 
    68      jsToolBar.prototype.elements.tag.fn.wiki = function() { 
    69           this.encloseSelection('','',function(str) { 
    70                if (str == '') { window.alert(dotclear.msg.no_selection); return ''; } 
    71                if (str.indexOf(',') != -1) { 
    72                     return str; 
    73                } else { 
    74                     window.dc_tag_editor.addMeta(str); 
    75                     return '['+str+'|tag:'+str+']'; 
    76                } 
    77           }); 
    78      }; 
    79      jsToolBar.prototype.elements.tag.fn.xhtml = function() { 
    80           var url = this.elements.tag.url; 
    81           this.encloseSelection('','',function(str) { 
    82                if (str == '') { window.alert(dotclear.msg.no_selection); return ''; } 
    83                if (str.indexOf(',') != -1) { 
    84                     return str; 
    85                } else { 
    86                     window.dc_tag_editor.addMeta(str); 
    87                     return '<a href="'+this.stripBaseURL(url+'/'+str)+'">'+str+'</a>'; 
    88                } 
    89           }); 
    90      }; 
    91      jsToolBar.prototype.elements.tag.fn.wysiwyg = function() { 
    92           var t = this.getSelectedText(); 
    93            
    94           if (t == '') { window.alert(dotclear.msg.no_selection); return; } 
    95           if (t.indexOf(',') != -1) { return; } 
    96            
    97           var n = this.getSelectedNode(); 
    98           var a = document.createElement('a'); 
    99           a.href = this.stripBaseURL(this.elements.tag.url+'/'+t); 
    100           a.appendChild(n); 
    101           this.insertNode(a); 
    102           window.dc_tag_editor.addMeta(t); 
    103      }; 
    104 }); 
    105  
    106 dcToolBarManager.bind('onInit','xhtml',function() { 
    10760     tinymce.create('tinymce.plugins.dcTag', { 
    10861          init : function(ed, url) { 
     
    11568                          return; 
    11669                    } 
    117                     tinymce.execCommand("mceInsertLink", false, tinymce.plugins.dcTag.url+'/'+se.getContent(), {skip_undo : 1}); 
     70                     
    11871                    window.dc_tag_editor.addMeta(se.getContent()); 
     72                    tinymce.execCommand('mceInsertLink', false, '#mce_temp_url#', {skip_undo : 1}); 
     73           
     74                    elementArray = tinymce.grep(ed.dom.select("a"),function(n) {return ed.dom.getAttrib(n,'href') == '#mce_temp_url#';}); 
     75                    for (i=0; i<elementArray.length; i++) { 
     76                         var node = elementArray[i]; 
     77                         ed.dom.setAttrib(node,'href',ed.getParam('tag_url_pattern')+'/'+se.getContent()); 
     78                         ed.dom.setAttrib(node,'title','Tag: ' + se.getContent()); 
     79                    } 
     80                    ed.focus(); 
     81                    ed.selection.select(node); 
     82                    ed.selection.collapse(0); 
     83                    tinymce.storeSelection(); 
     84                    tinymce.execCommand('mceEndUndoLevel'); 
    11985               }); 
    12086                
    12187               ed.addButton('tag', { 
    122                     title : tinymce.plugins.dcTag.title, 
     88                    title : 'dcTag.tag_desc', 
    12389                    cmd : 'dcTag', 
    12490                    image :'index.php?pf=tags/img/tag-add.png' 
    12591               }); 
    12692                
    127                ed.addShortcut('ctrl+alt+t', 'advlink.advlink_desc', 'dcTag'); 
     93               ed.addShortcut('ctrl+alt+t', 'dcTag.ta_desc', 'dcTag'); 
    12894                
    12995               ed.onNodeChange.add(function(ed, cm, n, co) { 
    130                     cm.setDisabled('tag', co && n.nodeName != 'A'); 
    131                     cm.setActive('tag', n.nodeName == 'A' && !n.name); 
     96                    cm.setDisabled('tag', co || ed.dom.getParent(n, 'A')); 
    13297               }); 
    13398          }, 
     
    145110      
    146111     tinymce.PluginManager.add('dcTag', tinymce.plugins.dcTag); 
    147       
    148      tinymce.settings.plugins += ",-dcTag"; 
    149      tinymce.settings.theme_advanced_buttons3 += ",tag"; 
    150112}); 
Note: See TracChangeset for help on using the changeset viewer.

Sites map