Hi,
I have a requirement where I want to combine items together. That is, say , I want to combine Bold and Underline together like BU. So when I select a word and press this button, it will make it bold and underline also. Similarly for Italic and Strikethrough (IS).
Any thoughts would be highly appreciated..
Regds,
noneda
I have a requirement where I want to combine items together. That is, say , I want to combine Bold and Underline together like BU. So when I select a word and press this button, it will make it bold and underline also. Similarly for Italic and Strikethrough (IS).
Any thoughts would be highly appreciated..
Regds,
noneda
Re: Combining toolbar items
Another idea, which is even tricker. If you look at where it adds the button command, you could probably get the result you want by stacking two commands onto a button. Since I think it's just a simple call, you could do:
This is sudo-code and note actual command names:
I have no idea if that would actually work or not, but take a look at basicstyles and maybe it'll get you thinking.
Re: Combining toolbar items
Re: Combining toolbar items
I tried adding as per your tips, but was not successful. Adding extra code in the below javascript is throwing lot of errors. I removed my code and giving below the actual code in ckeditor.js.
Can you please help in this regard?
j.add('basicstyles', {
requires: ['styles', 'button'],
init: function(l) {
var m = function(p, q, r, s) {
var t = new a.style(s);
l.attachStyleStateChange(t, function(u) {
l.getCommand(r).setState(u);
});
l.addCommand(r, new a.styleCommand(t));
l.ui.addButton(p, {
label: q,
command: r
});
},
n = l.config,
o = l.lang;
// , , , actual style
m('Bold', o.bold, 'bold', n.coreStyles_bold);
m('Italic', o.italic, 'italic', n.coreStyles_italic);
m('Underline', o.underline, 'underline', n.coreStyles_underline);
m('Strike', o.strike, 'strike', n.coreStyles_strike);
m('Subscript', o.subscript, 'subscript', n.coreStyles_subscript);
m('Superscript', o.superscript, 'superscript', n.coreStyles_superscript);
}
});
i.coreStyles_bold = {
element: 'strong',
overrides: 'b'
};
i.coreStyles_italic = {
element: 'em',
overrides: 'i'
};
i.coreStyles_underline = {
element: 'u'
};
i.coreStyles_strike = {
element: 'strike'
};
i.coreStyles_subscript = {
element: 'sub'
};
i.coreStyles_superscript = {
element: 'sup'
};
Re: Combining toolbar items
Alternatively, you can leave everything as is and point to ckeditor_source.js instead of ckeditor.js, this will tell it to load all data from the _source directory, which can also be very helpful when doing deeper debugging.
Re: Combining toolbar items
I tried editing the source but it is too confusing. So I preferred to change in ckeditor.js itself. I added the code as per your tips but it is not taking the combination. It only fires one style.
Let me know if you have tried an example. Below is the one which I tried in ckeditor.js file.
var t = new a.style(l.config.coreStyles_bold);
l.attachStyleStateChange(t, function(u) {
l.getCommand('bold').setState(u);
});
var t1 = new a.style(l.config.coreStyles_underline);
l.attachStyleStateChange(t1, function(u1) {
l.getCommand('underline').setState(u1);
});
/*
* l.addCommand('bold', new a.styleCommand(t));
* l.addCommand('underline', new a.styleCommand(t1));
*/
l.addCommand( 'boldunderline', function() {
new a.styleCommand( t );
new a.styleCommand( t1 );
}
);
l.ui.addButton('BU', {
label: 'BoldUnderline',
command: 'BU'
});
}
Re: Combining toolbar items
instead of like:
I mean, do you see how you were adding a command with ONE name ("boldunderline") and then trying to call it with a different name ("BU")? I also made your label more descriptive for your users; the label can be anything you want, it doesn't need to match previous code.
Re: Combining toolbar items
I did the same, may be while copying I mistakenly copied the previous one from clipboard.
I did as below but it shows Javascript error in IE as "j.exec is null or not an object"
var t = new a.style(l.config.coreStyles_bold);
l.attachStyleStateChange(t, function(u) {
l.getCommand('bold').setState(u);
});
var t1 = new a.style(l.config.coreStyles_underline);
l.attachStyleStateChange(t1, function(u1) {
l.getCommand('underline').setState(u1);
});
/*
* l.addCommand('bold', new a.styleCommand(t));
* l.addCommand('underline', new a.styleCommand(t1));
*/
l.addCommand( 'boldunderline', function() {
new a.styleCommand(t);
new a.styleCommand(t1);
});
l.ui.addButton('BU', {
label: 'Bolded and Underlined',
command: 'boldunderline'
});
Error shown:
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Timestamp: Mon, 2 Aug 2010 16:57:52 UTC
Message: 'j.exec' is null or not an object
Line: 2320
Char: 13
Code: 0
URI: http://localhost/test/JSP/fckEditor/ckeditor.js