diff options
| author | Lester Caine <lester@lsces.co.uk> | 2009-11-24 23:57:24 +0000 |
|---|---|---|
| committer | Lester Caine <lester@lsces.co.uk> | 2009-11-24 23:57:24 +0000 |
| commit | 8630f2bc4d63b3320f5469d9532a1cba1dddb7a3 (patch) | |
| tree | f3c3122e110458a94aae544164b82fd67f1ae5e0 /_source/plugins/templates | |
| parent | e24cb83aa7f7685a4811e5c8d39541bae7b15cb2 (diff) | |
| download | ckeditor-8630f2bc4d63b3320f5469d9532a1cba1dddb7a3.tar.gz ckeditor-8630f2bc4d63b3320f5469d9532a1cba1dddb7a3.tar.bz2 ckeditor-8630f2bc4d63b3320f5469d9532a1cba1dddb7a3.zip | |
ckeditor 3.0.1 'raw' - needs reordering a little, but samples currently functional
Diffstat (limited to '_source/plugins/templates')
| -rw-r--r-- | _source/plugins/templates/dialogs/templates.js | 170 | ||||
| -rw-r--r-- | _source/plugins/templates/plugin.js | 100 | ||||
| -rw-r--r-- | _source/plugins/templates/templates/default.js | 94 | ||||
| -rw-r--r-- | _source/plugins/templates/templates/images/template1.gif | bin | 0 -> 375 bytes | |||
| -rw-r--r-- | _source/plugins/templates/templates/images/template2.gif | bin | 0 -> 333 bytes | |||
| -rw-r--r-- | _source/plugins/templates/templates/images/template3.gif | bin | 0 -> 422 bytes |
6 files changed, 364 insertions, 0 deletions
diff --git a/_source/plugins/templates/dialogs/templates.js b/_source/plugins/templates/dialogs/templates.js new file mode 100644 index 0000000..52d9692 --- /dev/null +++ b/_source/plugins/templates/dialogs/templates.js @@ -0,0 +1,170 @@ +/* +Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +(function() +{ + var doc = CKEDITOR.document; + + var listId = 'cke' + CKEDITOR.tools.getNextNumber(); + + // Constructs the HTML view of the specified templates data. + function renderTemplatesList( editor, templatesDefinitions ) + { + var listDiv = doc.getById( listId ); + + // clear loading wait text. + listDiv.setHtml( '' ); + + for ( var i = 0 ; i < templatesDefinitions.length ; i++ ) + { + var definition = CKEDITOR.getTemplates( templatesDefinitions[ i ] ), + imagesPath = definition.imagesPath, + templates = definition.templates; + + for ( var j = 0 ; j < templates.length ; j++ ) + { + var template = templates[ j ]; + listDiv.append( createTemplateItem( editor, template, imagesPath ) ); + } + } + } + + function createTemplateItem( editor, template, imagesPath ) + { + var div = doc.createElement( 'div' ); + div.setAttribute( 'class', 'cke_tpl_item' ); + + // Build the inner HTML of our new item DIV. + var html = '<table style="width:350px;" class="cke_tpl_preview"><tr>'; + + if( template.image && imagesPath ) + html += '<td class="cke_tpl_preview_img"><img src="' + CKEDITOR.getUrl( imagesPath + template.image ) + '"></td>'; + + html += '<td style="white-space:normal;"><span class="cke_tpl_title">' + template.title + '</span><br/>'; + + if( template.description ) + html += '<span>' + template.description + '</span>'; + + html += '</td></tr></table>'; + + div.setHtml( html ); + + div.on( 'mouseover', function() + { + div.addClass( 'cke_tpl_hover' ); + }); + + div.on( 'mouseout', function() + { + div.removeClass( 'cke_tpl_hover' ); + }); + + div.on( 'click', function() + { + insertTemplate( editor, template.html ); + }); + + return div; + } + + /** + * Insert the specified template content + * to document. + * @param {Number} index + */ + function insertTemplate( editor, html ) + { + var dialog = CKEDITOR.dialog.getCurrent(), + isInsert = dialog.getValueOf( 'selectTpl', 'chkInsertOpt' ); + + if( isInsert ) + { + editor.setData( html ); + } + else + { + editor.insertHtml( html ); + } + + dialog.hide(); + } + + CKEDITOR.dialog.add( 'templates', function( editor ) + { + // Load skin at first. + CKEDITOR.skins.load( editor, 'templates' ); + + /** + * Load templates once. + */ + var isLoaded = false; + + return { + title :editor.lang.templates.title, + + minWidth : CKEDITOR.env.ie ? 440 : 400, + minHeight : 340, + + contents : + [ + { + id :'selectTpl', + label : editor.lang.templates.title, + elements : + [ + { + type : 'vbox', + padding : 5, + children : + [ + { + type : 'html', + html : + '<span>' + + editor.lang.templates.selectPromptMsg + + '</span>' + }, + { + type : 'html', + html : + '<div id="' + listId + '" class="cke_tpl_list">' + + '<div class="cke_tpl_loading"><span></span></div>' + + '</div>' + }, + { + id : 'chkInsertOpt', + type : 'checkbox', + label : editor.lang.templates.insertOption, + 'default' : editor.config.templates_replaceContent + } + ] + } + ] + } + ], + + buttons : [ CKEDITOR.dialog.cancelButton ], + + onShow : function() + { + CKEDITOR.loadTemplates( editor.config.templates_files, function() + { + var templates = editor.config.templates.split( ',' ); + + if ( templates.length ) + renderTemplatesList( editor, templates ); + else + { + var listCtEl = doc.getById( listId ); + listCtEl.setHtml( + '<div class="cke_tpl_empty">' + + '<span>' + editor.lang.templates.emptyListMsg + '</span>' + + '</div>' ); + } + }); + } + }; + }); +})(); diff --git a/_source/plugins/templates/plugin.js b/_source/plugins/templates/plugin.js new file mode 100644 index 0000000..c2d232c --- /dev/null +++ b/_source/plugins/templates/plugin.js @@ -0,0 +1,100 @@ +/* +Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +(function() +{ + CKEDITOR.plugins.add( 'templates', + { + requires : [ 'dialog' ], + + init : function( editor ) + { + CKEDITOR.dialog.add( 'templates', CKEDITOR.getUrl( this.path + 'dialogs/templates.js' ) ); + + editor.addCommand( 'templates', new CKEDITOR.dialogCommand( 'templates' ) ); + + editor.ui.addButton( 'Templates', + { + label : editor.lang.templates.button, + command : 'templates' + }); + } + }); + + var templates = {}, + loadedTemplatesFiles = {}; + + CKEDITOR.addTemplates = function( name, definition ) + { + templates[ name ] = definition; + }; + + CKEDITOR.getTemplates = function( name ) + { + return templates[ name ]; + }; + + CKEDITOR.loadTemplates = function( templateFiles, callback ) + { + // Holds the templates files to be loaded. + var toLoad = []; + + // Look for pending template files to get loaded. + for ( var i = 0 ; i < templateFiles.length ; i++ ) + { + if ( !loadedTemplatesFiles[ templateFiles[ i ] ] ) + { + toLoad.push( templateFiles[ i ] ); + loadedTemplatesFiles[ templateFiles[ i ] ] = 1; + } + } + + if ( toLoad.length > 0 ) + CKEDITOR.scriptLoader.load( toLoad, callback ); + else + setTimeout( callback, 0 ); + }; +})(); + + + +/** + * The templates definition set to use. It accepts a list of names separated by + * comma. It must match definitions loaded with the templates_files setting. + * @type String + * @default 'default' + * @example + * config.templates = 'my_templates'; + */ +CKEDITOR.config.templates = 'default'; + +/** + * The list of templates definition files to load. + * @type (String) Array + * @default [ 'plugins/templates/templates/default.js' ] + * @example + * config.templates_files = + * [ + * '/editor_templates/site_default.js', + * 'http://www.example.com/user_templates.js + * ]; + * + */ +CKEDITOR.config.templates_files = + [ + CKEDITOR.getUrl( + '_source/' + // @Packager.RemoveLine + 'plugins/templates/templates/default.js' ) + ]; + +/** + * Whether the "Replace actual contents" checkbox is checked by default in the + * Templates dialog. + * @type Boolean + * @default true + * @example + * config.templates_replaceContent = false; + */ +CKEDITOR.config.templates_replaceContent = true; diff --git a/_source/plugins/templates/templates/default.js b/_source/plugins/templates/templates/default.js new file mode 100644 index 0000000..c433dc3 --- /dev/null +++ b/_source/plugins/templates/templates/default.js @@ -0,0 +1,94 @@ +/* +Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +// Register a templates definition set named "default". +CKEDITOR.addTemplates( 'default', +{ + // The name of sub folder which hold the shortcut preview images of the + // templates. + imagesPath : CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ), + + // The templates definitions. + templates : + [ + { + title: 'Image and Title', + image: 'template1.gif', + description: 'One main image with a title and text that surround the image.', + html: + '<h3>' + + '<img style="margin-right: 10px" height="100" width="100" align="left"/>' + + 'Type the title here'+ + '</h3>' + + '<p>' + + 'Type the text here' + + '</p>' + }, + { + title: 'Strange Template', + image: 'template2.gif', + description: 'A template that defines two colums, each one with a title, and some text.', + html: + '<table cellspacing="0" cellpadding="0" style="width:100%" border="0">' + + '<tr>' + + '<td style="width:50%">' + + '<h3>Title 1</h3>' + + '</td>' + + '<td></td>' + + '<td style="width:50%">' + + '<h3>Title 2</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td>' + + 'Text 1' + + '</td>' + + '<td></td>' + + '<td>' + + 'Text 2' + + '</td>' + + '</tr>' + + '</table>' + + '<p>' + + 'More text goes here.' + + '</p>' + }, + { + title: 'Text and Table', + image: 'template3.gif', + description: 'A title with some text and a table.', + html: + '<div style="width: 80%">' + + '<h3>' + + 'Title goes here' + + '</h3>' + + '<table style="float: right" cellspacing="0" cellpadding="0" style="width:150px" border="1">' + + '<caption style="border:solid 1px black">' + + '<strong>Table title</strong>' + + '</caption>' + + '</tr>' + + '<tr>' + + '<td> </td>' + + '<td> </td>' + + '<td> </td>' + + '</tr>' + + '<tr>' + + '<td> </td>' + + '<td> </td>' + + '<td> </td>' + + '</tr>' + + '<tr>' + + '<td> </td>' + + '<td> </td>' + + '<td> </td>' + + '</tr>' + + '</table>' + + '<p>' + + 'Type the text here' + + '</p>' + + '</div>' + } + ] +}); diff --git a/_source/plugins/templates/templates/images/template1.gif b/_source/plugins/templates/templates/images/template1.gif Binary files differnew file mode 100644 index 0000000..efdabbe --- /dev/null +++ b/_source/plugins/templates/templates/images/template1.gif diff --git a/_source/plugins/templates/templates/images/template2.gif b/_source/plugins/templates/templates/images/template2.gif Binary files differnew file mode 100644 index 0000000..d1cebb3 --- /dev/null +++ b/_source/plugins/templates/templates/images/template2.gif diff --git a/_source/plugins/templates/templates/images/template3.gif b/_source/plugins/templates/templates/images/template3.gif Binary files differnew file mode 100644 index 0000000..db41cb4 --- /dev/null +++ b/_source/plugins/templates/templates/images/template3.gif |
