I'm upgrading a custom CMS to use CKEditor and I need to handle custom tags that trigger CMS macro functions. The tags look like HTML but they are additional to that. They need to render as little marker images in WYSIWYG and like standard HTML in source mode. e.g <mytag arg1="an argument" arg2="another arg"... />
My question is which approach would be best to implement this?
The simplest way would be to use the existing placeholder plugin. However, that would look messy when your tag has a lot of attributes. Also, the placeholder approach does not help you to remember the parameters for each custom tag - that would be better done with a dialog.
So I was thinking of possibly using the approach common to the bbcode and mediawiki plugins. I started to look at the code for those and must confess that in my case a lot of study would be needed to fully understand them. So I thought I'd ask for advice.
Any suggestions?
Thx, Paul
My question is which approach would be best to implement this?
The simplest way would be to use the existing placeholder plugin. However, that would look messy when your tag has a lot of attributes. Also, the placeholder approach does not help you to remember the parameters for each custom tag - that would be better done with a dialog.
So I was thinking of possibly using the approach common to the bbcode and mediawiki plugins. I started to look at the code for those and must confess that in my case a lot of study would be needed to fully understand them. So I thought I'd ask for advice.
Any suggestions?
Thx, Paul
Re: Custom Tags Plugin
I think that the best approach is to use something similar to the Flash plugin. Looking at BBCode or MediaWiki might be too complex, that's a whole different syntax but you say that you only want a little change.
An example of something that can be "easy" to adapt is also the HTML5 Video plugin: viewtopic.php?f=18&t=23606 , it does something similar after all: it detects a HTML tag, replaces it with a picture and uses a dialog to edit the content
Re: Custom Tags Plugin
We might actually be fighting on the same side of the front. Check this, perhaps it might help:
viewtopic.php?f=11&t=24144&p=61808#p61808
Re: Custom Tags Plugin
Already tested @malls method of allowing my tags. Works fine. Also allowed it in <p>, otherwise it creates a paragraph where I might not want one.
Now looking at the video plugin code to see if I can convert back and forth from a marker image.
Paul
Re: Custom Tags Plugin
Re: Custom Tags Plugin
Re: Custom Tags Plugin
Ops, that's a copy&paste too much
You can delete all that htmlFilter.addRules part, it's a leftover due to using parts of the Google Maps plugin as a starting point for that part. I'm gonna update the zip now to avoid further confusion.
Re: Custom Tags Plugin
So if you remove that there will be no conversion from internal data to html output. Is that done by some built-in magic? I have a lot to learn about the CKE core.
I had in mind that: would transpose to: for WYSIWYG and vice versa for source mode.
Paul
Re: Custom Tags Plugin
So on loading data the plugin checks for its <video> tags, marks them as fake elements and then CKEditor reverses that step when generating the output HTML.
Of course, you can follow other approaches or make little adjustments about the way that this works, but explaining all of that requires me to check and debug how the code runs to avoid say something that isn't correct. If you use the plugin as a starting point to test your code it shouldn't be too hard to make it work any way that you like.
Re: Custom Tags Plugin
I got this working with a stripped down plugin after I realised that you have pull in the 'fakeobjects' plugin which I had wrongly supposed to be a core function. Pleased to note that no attributes are lost in the process.
Lots more to do to make an input dialog etc but thx for getting me moving.
Once a dialog is in I'll post the code.
Paul
Re: Custom Tags Plugin
BTW. I should also note that I wasted a lot of time cutting and pasting .js (which I later rewrote completely). The problem is that when working on a Mac at command line level e.g. with vi, you can get invisible crud in the file. In the end I used od -bc to find and fix the crud. It seems to happen if you view a .js file in the browser and copy from there then paste elsewhere. You then get errors which bear no relation to the code. Anyway, it certainly works a lot better when the files are all clean and in utf-8.
Re: Custom Tags Plugin
Well, it took me forever to complete as I had some more important work to do but here the almost complete custom tag plugin comes as I promised (if still needed by someone).
The plugin now processes <youtube /> tags (works for vimeo and stream.cz as well ). But it is actually prepared for future enhancement with any custom tag of your choice and attributes.
Some minor tweaking will be needed to make it customizable from the config file (but it is designed with this in mind so it will be easily updateable), the dialog currently relies on text fields only (I didn't need checkboxes so I haven't bothered to include them yet) but in general, it works as expected.
To add an icon to the main menu, simply add 'youtube' to the toolbar definition in your config file.
BTW: there there is a bug in the fakeobject handling. As it uses images as fakeobject placeholders, it forces paragraphs around any custom tag. I haven't been able to override this behavior yet. So block custom tags would need a little more php post-processing.
The appended file contains the plugin itself. You will also want to update the language file and add some php postrpocessing so I've added the needed codes too:
Append the language file with:
Attachments:
Re: Custom Tags Plugin
Attachments: