1 /* 2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. 3 For licensing, see LICENSE.html or http://ckeditor.com/license 4 */ 5 6 (function() 7 { 8 CKEDITOR.plugins.add( 'templates', 9 { 10 requires : [ 'dialog' ], 11 12 init : function( editor ) 13 { 14 CKEDITOR.dialog.add( 'templates', CKEDITOR.getUrl( this.path + 'dialogs/templates.js' ) ); 15 16 editor.addCommand( 'templates', new CKEDITOR.dialogCommand( 'templates' ) ); 17 18 editor.ui.addButton( 'Templates', 19 { 20 label : editor.lang.templates.button, 21 command : 'templates' 22 }); 23 } 24 }); 25 26 var templates = {}, 27 loadedTemplatesFiles = {}; 28 29 CKEDITOR.addTemplates = function( name, definition ) 30 { 31 templates[ name ] = definition; 32 }; 33 34 CKEDITOR.getTemplates = function( name ) 35 { 36 return templates[ name ]; 37 }; 38 39 CKEDITOR.loadTemplates = function( templateFiles, callback ) 40 { 41 // Holds the templates files to be loaded. 42 var toLoad = []; 43 44 // Look for pending template files to get loaded. 45 for ( var i = 0 ; i < templateFiles.length ; i++ ) 46 { 47 if ( !loadedTemplatesFiles[ templateFiles[ i ] ] ) 48 { 49 toLoad.push( templateFiles[ i ] ); 50 loadedTemplatesFiles[ templateFiles[ i ] ] = 1; 51 } 52 } 53 54 if ( toLoad.length > 0 ) 55 CKEDITOR.scriptLoader.load( toLoad, callback ); 56 else 57 setTimeout( callback, 0 ); 58 }; 59 })(); 60 61 62 63 /** 64 * The templates definition set to use. It accepts a list of names separated by 65 * comma. It must match definitions loaded with the templates_files setting. 66 * @type String 67 * @default 'default' 68 */ 69 CKEDITOR.config.templates = 'default'; 70 71 /** 72 * The list of templates definition files to load. 73 * @type (String) Array 74 * @default [ 'plugins/templates/templates/default.js' ] 75 */ 76 CKEDITOR.config.templates_files = 77 [ 78 CKEDITOR.getUrl( 80 'plugins/templates/templates/default.js' ) 81 ]; 82 83 /** 84 * Whether replace the current document content OR insert current 85 * editing position. 86 * @type Boolean 87 * @default true 88 */ 89 CKEDITOR.config.templates_replaceContent = true; 90