Posted on: 2018/7/16 16:37
Re: set class for form elements
I apologize for misunderstanding your original request - I think I do now. You are correct, unfortunately neither the XoopsFormRenderLegacy or the XoopsFormRenderBootstrap3 classes render the Form Button Element's class information. It looks like 'renderFormButton' method should be modified similarly to what you've done in both of these classes. The only difference between the Legacy and Bootstrap3 class methods would be the default classes rendered if the getClass() method returns false.
It looks like this is very similar to what has been done already in XOOPS 2.6 so anything written to utilize your proposed change for 2.5.x should behave similarly in 2.6.
There are several other element types which will have the same issue (Radio, Button Tray, Checkbox, etc.) so UNLESS they're all going to be changed I wouldn't recommend this for the 2.5.x core. Having these elements behave differently from each other (ie. you can't count on the behavior) then I don't think there's enough value in XOOPS 2.5.x to make this change. If someone's willing to change it virtually "everywhere" in 2.5.x rendering engines then it would be a valuable addition.
Just my 2 cents.
But yes, I would be a proponent of changing it "everywhere" in 2.5.x if someone has the time to code/test it - I'm just not sure the current core team has the bandwidth to provide us that luxury.
One short term "hack" is to use the setExtra() method to set the additional class information since the "extra" information is rendered. Using this method would then give you a button with multiple separate 'class' attributes but it might be a better solution than nothing. Most modern browsers will render this as expected. So you would end up with a button rendering that looks something like:
<input type='button' class='btn btn-default' name='myButton' id='myButton' value='Submit and go to images upload' title='Submit and go to images upload' class='btn-success' />';
While not ideal you could do something similar to this for each HTML element type you use (button, radio, etc).
Just an idea