|
1 /* |
|
2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
|
3 * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
|
4 * |
|
5 * == BEGIN LICENSE == |
|
6 * |
|
7 * Licensed under the terms of any of the following licenses at your |
|
8 * choice: |
|
9 * |
|
10 * - GNU General Public License Version 2 or later (the "GPL") |
|
11 * http://www.gnu.org/licenses/gpl.html |
|
12 * |
|
13 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
|
14 * http://www.gnu.org/licenses/lgpl.html |
|
15 * |
|
16 * - Mozilla Public License Version 1.1 or later (the "MPL") |
|
17 * http://www.mozilla.org/MPL/MPL-1.1.html |
|
18 * |
|
19 * == END LICENSE == |
|
20 * |
|
21 * Plugin to insert "Placeholders" in the editor. |
|
22 */ |
|
23 |
|
24 // The object used for all Placeholder operations. |
|
25 |
|
26 |
|
27 // Register the Drupal tag commands. |
|
28 FCKCommands.RegisterCommand( 'LinkToNode', new FCKDialogCommand( 'LinkToNode', FCKLang.DlgLinkToNode, FCKConfig.PluginsPath + 'linktonode/fck_linktonode.html', 400, 330 ) ) ; |
|
29 |
|
30 // Create the Drupal tag buttons. |
|
31 var oLinkNodeItem = new FCKToolbarButton( 'LinkToNode', 'LinkToNode', null, null, true, true ) ; |
|
32 oLinkNodeItem.IconPath = FCKConfig.PluginsPath + 'linktonode/images/linktonode.gif'; |
|
33 FCKToolbarItems.RegisterItem( 'LinkToNode', oLinkNodeItem ) ; |
|
34 |
|
35 FCK.ContextMenu.RegisterListener({ |
|
36 AddItems : function( menu, tag, tagName ) |
|
37 { |
|
38 var bInsideLink = ( tagName == 'A' || FCKSelection.HasAncestorNode( 'A' ) ) ; |
|
39 |
|
40 if ( bInsideLink || FCK.GetNamedCommandState( 'Unlink' ) != FCK_TRISTATE_DISABLED ) |
|
41 { |
|
42 // Go up to the anchor to test its properties |
|
43 var oLink = FCKSelection.MoveToAncestorNode( 'A' ) ; |
|
44 var bIsAnchor = ( oLink && oLink.name.length > 0 && oLink.href.length == 0 ) ; |
|
45 // If it isn't a link then don't add the Link context menu |
|
46 if ( bIsAnchor ) |
|
47 return ; |
|
48 |
|
49 // Get the actual Link href. |
|
50 var sHRef = oLink.getAttribute( '_fcksavedurl' ) ; |
|
51 if ( sHRef == null ) |
|
52 sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; |
|
53 |
|
54 if (sHRef.indexOf(FCKConfig.DrupalPath)==0 || sHRef.indexOf("internal:")==0) |
|
55 { |
|
56 menu.RemoveAllItems() ; |
|
57 |
|
58 menu.AddItem( 'Cut' , FCKLang.Cut , 7, FCKCommands.GetCommand( 'Cut' ).GetState() == FCK_TRISTATE_DISABLED ) ; |
|
59 menu.AddItem( 'Copy' , FCKLang.Copy , 8, FCKCommands.GetCommand( 'Copy' ).GetState() == FCK_TRISTATE_DISABLED ) ; |
|
60 menu.AddItem( 'Paste' , FCKLang.Paste , 9, FCKCommands.GetCommand( 'Paste' ).GetState() == FCK_TRISTATE_DISABLED ) ; |
|
61 menu.AddSeparator() ; |
|
62 if ( bInsideLink ) |
|
63 menu.AddItem( 'LinkToNode', FCKLang.EditLink , FCKConfig.PluginsPath + 'linktonode/images/linktonode.gif' ) ; |
|
64 menu.AddItem( 'Unlink' , FCKLang.RemoveLink , FCKConfig.PluginsPath + 'linktonode/images/linktonode.gif' ) ; |
|
65 } |
|
66 } |
|
67 } |
|
68 }); |