I'm trying to do a plugin for CKEditor that processes special content tags from our application. These tags are very much like bbcode, but are singular (no [/end] tags). I basically need to convert them into <label> tags when in "editing mode" and convert them to their square-bracket-syntax when viewing "source code" mode or posting the data.
Does anyone know how I would go about doing this? Not how to convert the syntax itself, but hook into the editor so that when you switch between modes ("Source" vs "Edit"), load data into the editor initially, and submit/get the data it can be properly converted with a plugin defined function.
The reason for me using <label> tags is the text inside them cannot be overwritten. They are seen as "objects" within the editor. I would prefer to use a <span> tag with a CSS class name... Does anyone know how the <label> tags are protected in this manner and how I could apply the same technique to a <span> tag with a particular CSS class name?
Are there any plugins out there that demonstrate what I have mentioned above, official or otherwise?
As a side note, are there any Prototype adapters already made, perhaps by a third party?
Luke
Does anyone know how I would go about doing this? Not how to convert the syntax itself, but hook into the editor so that when you switch between modes ("Source" vs "Edit"), load data into the editor initially, and submit/get the data it can be properly converted with a plugin defined function.
The reason for me using <label> tags is the text inside them cannot be overwritten. They are seen as "objects" within the editor. I would prefer to use a <span> tag with a CSS class name... Does anyone know how the <label> tags are protected in this manner and how I could apply the same technique to a <span> tag with a particular CSS class name?
Are there any plugins out there that demonstrate what I have mentioned above, official or otherwise?
As a side note, are there any Prototype adapters already made, perhaps by a third party?
Luke
Re: Processing tags (like BBCode)?
First, processing changes between HTML and WYSIWYG mode should be done through a dataFilter. In much the same way you can add a double-click listener, or a contextMenu thing. You can add a dataFilter. What you'd want to do is add a listener for bbCode (or whatever). Concerning single tags, I'm not sure how those function, and you might end up having to use self-closing tags. Anyways, I think the flash plugin adds a dataFilter, so check that out.
What the Flash filter also does, is uses fakeObjects. Essentially, since we don't want the actual flash/embed object to render in WYSIWYG mode, we replace the source code with a fake object (Simply an image) which serves as a place-holder (almost avatar) for the object. I'm not sure what behavior you are looking for with using a label, but between adding a filter and using fakeObjects you should be able to do what you need to do.
Hope that gets you pointed in the right direction!