Bootstrap

423 views
Skip to first unread message

Tony Air

unread,
Jan 24, 2013, 10:05:08 PM1/24/13
to silverst...@googlegroups.com
Why SilverStripe CMS doesn't use bootstrap?
I guess it will be easier to develop CMS with this framework and will help both communities to develop new modules. For an instance when some one develops colour picker extension it will be an extension for both projects.

Zauberfisch

unread,
Jan 24, 2013, 10:09:53 PM1/24/13
to silverst...@googlegroups.com
twitter bootstrap is not the only framework/boilerplate/whatever out
there, silverstripe aims to let the developer choose how to do certain
things.
I for instance just use html5boilerplate and my own small collection of
css files.
Others might use foundation or one of the other many things out there.

in case your question is why the CMS it self does not use bootstrap,
well, in that case the answer would be that bootstrap is a frontend
boilerplate/framework and does not fit the needs of the cms at all.
> --
> You received this message because you are subscribed to the Google
> Groups "SilverStripe Core Development" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to silverstripe-d...@googlegroups.com.
> To post to this group, send email to silverst...@googlegroups.com.
> Visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Tony Air

unread,
Jan 24, 2013, 10:20:16 PM1/24/13
to silverst...@googlegroups.com
I do it the same way as for frontend it's perfect. My question is about CMS it self for an example gantry (http://www.gantry-framework.org/) has pretty nice CMS realisation based on Twitter Bootstrap why it doesn't fits the needs of SS?

Zauberfisch

unread,
Jan 24, 2013, 10:36:46 PM1/24/13
to silverst...@googlegroups.com
ok, point taken, bootstrap could be used in backend as well.

- but it would make silverstripe depend heavily on yet another thirdparty element (and we all remember the pain when jquery became popular and the cms still had so much dependencies on prototype)
- with all the modifications that would be needed to use it in the cms, I could imagine it would get _really_ hard to keep it up2date
- I am not that into bootstrap, but it might also include some overhead that is just not needed for a CMS
(- and no one stops you from also submitting new features you build to bootstrap)

Tony Air

unread,
Jan 24, 2013, 10:54:19 PM1/24/13
to silverst...@googlegroups.com
well it's mostly just css framework with some predefined classes it's simplier to use than jquery ui and lightweight for an instance here's jquery ui button in SS CMS now:

<a class="cms-page-add-button ss-ui-button ss-ui-action-constructive ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" data-icon="add" href="admin/pages/add/" data-url-addpage="admin/pages/add/?ParentID=%s" role="button" aria-disabled="false">
<span class="ui-button-icon-primary ui-icon btn-icon-add"></span>
<span class="ui-button-text">Add new</span>
</a>

here's how it will look like in bootstrap:
<a class="cms-page-add-button btn btn-success" data-*>
<span class="icon icon-plus"></span>
Add new
</a>

also it is usefull cuz u don't need to call any js to make for an instance accordion just specify a css class and it will be applied automatically especially i like data attributes like data-target="css-definition" for an instance on i'd like to toggle #Content element on click so i add to a button data-toggle="collapse" data-target="#BlaBla" there's a lot of useful attributes link data-loading-text="loading..." and etc that can also help to remove language definitions from js that hardens SS.

To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.



--
Best regards, Tony Air
CEO, The Web Development Agency (New Castle LLC)

E-mail: to...@thewebdevelopmentagency.ru
Skype: a2nt.fd
Mob. +7 (923) 136-60-13 (OVB)
Mob. +7 (967) 004-08-17 (DME,SVO,VKO)
http://TheWebDevelopmentAgency.ru/

Nicolaas Thiemen Francken - Sunny Side Up

unread,
Jan 24, 2013, 11:08:05 PM1/24/13
to silverst...@googlegroups.com
There are a couple of other reasons not to use it:

- huge dependency on third-party
- slower on front-end in terms of Bootstrap having to do a bunch of things to fix it.
- harder to debug or customise if you go beyond the bootstrap functionality
- the world would get even more McBoostrapified. 

Tony Air

unread,
Jan 24, 2013, 11:37:15 PM1/24/13
to silverst...@googlegroups.com
Well, I don't see any difference to be in depend of jquery ui, prototype or bootstrap except that the last one is easier to work with and has less functionality just basic that u can extend. Actually bootstrap css will be enough without any js. For an instance CMS buttons generated with jquery ui in terms that CMS optimised for the latest browsers looks weird. Customisation is pretty simple I use it at the front-end and there's a lot of different designs so I had to customise it.

> the world would get even more McBoostrapified. 
ah, c'mon for an instance SilverStripe buttons looks the same now, actually I see a lot of things in common with the design of Bootstrap and SilverStripe.

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to silverstripe-d...@googlegroups.com.
To post to this group, send email to silverst...@googlegroups.com.
Visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--

Anselm Christophersen

unread,
Jan 25, 2013, 1:38:17 AM1/25/13
to silverst...@googlegroups.com
Gantry looks good.
I guess one of the main reasons Bootstrap was not taken into account when the development of SS3 began was that it was not even around at that point.
I personally think Bootstrap and Foundation are great frameworks, and a bootstrap based theme like gantry could have been a good candidate to build the cms off.
Now it so happens that we've got SS3, and it's great, and I think it would be prudent for the community to stick to the standards it has set for the 3.0 version.

To me, jQuery UI does also seem a little clunky compared to Bootstrap, so who knows - if jQuery UI should get abandoned - maybe we could see Bootsrap like markup in a version 4.0 or 5.0.
One of the great things about Silverstripe is that the cms is just another module, and I've myself used Bootstrap several times, preferably when building webapps (and it works great), so there's basically nothing in the way of building a gantry based cms module for Silverstripe - just like what the folks seem to have done for Joomla and Wordpress.

Anselm 


To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.

Ingo Schommer

unread,
Jan 25, 2013, 3:35:28 AM1/25/13
to silverst...@googlegroups.com
When we started the SS3 branch late 2010, Twitter Bootstrap wasn't around.
jQuery UI still has much more mature JS components, particularly in often neglected
areas like accessibility. I agree that the CMS could benefit from more well-understood
CSS conventions, and Twitter Bootstrap would be a way to get there.

But I think you underestimate the time it takes to integrate any thirdparty
component into this quite sophisticated UI. Even if we'd use
Twitter Bootstrap to its fullest extent, we'd still need to 
create our own tree, layout manager, panel styling, breadcrumbs,
treedropdowns, nested tabs, preview switcher element, …
And then fit all of this into coherent jQuery.entwine rules,
a CSS grid that's shared between multiple CSS approaches,  etc.

So, I think in the short term, the best you can do to help 
make the SS3 UI easier to extend is by consolodating
the CSS we're already using, and documenting it. 
We're already following a couple of Bootstrap conventions, e.g. around "stacked" forms.

On the long term, we'd have to evaluate any UI rearchitecture approach
against a more integrated component libraries like Dojo or ExtJS
(we've been there a few times already, but libraries advance over the years hehe).

Peter Bacon Darwin

unread,
Jan 25, 2013, 4:21:23 AM1/25/13
to silverst...@googlegroups.com

Or AngularJS !

Pete
...from my mobile.

Ronald van Raaphorst

unread,
Jan 25, 2013, 4:49:13 AM1/25/13
to silverst...@googlegroups.com
I'd be happy to put effort in a decent ExtJs/Sencha interface if that is decided.
From my experience, it has a very complete and robuust widget set, is pretty good to extend,
and is cross browser compatible. I have done quite a few ExtJs implementations and I'm very happy with it.

However, it would mean either generating javascript code on a dev/build request (when models have changed)
or building a flexible interface 'on the fly' and that could be tricky to extend.
And the REST (JSON) api should be finalized, as most data request in ExtJS are Ajax calls.

But it could also be a great extension of the SilverSmith tool, from what I have seen of that.

Ronald

Ingo Schommer

unread,
Jan 25, 2013, 5:06:07 AM1/25/13
to silverst...@googlegroups.com
Just to clarify what I mean with "long term": We've just invested heavily into making
the current SS3 UI look and behave the way it does, so I don't think we'll look
into a larger UI rearchitecture in the next year at the very least.
It's going to be months worth of effort to switch to any UI framework
which relies on JS initialization of components and a REST interface,
in a way that stays compatible with the SilverStripe way of configuring the UI (through PHP). 
It's easy to look at the CMS and just see a page editing interface,
but there's quite a bit more to it, starting with building a REST controller
that allows us to interact with all of our models and relationships,
but also tasks like a migration path for e.g. a GridField that would
behave quite differently when powered through JSON.

dospuntocero

unread,
Jan 25, 2013, 7:37:59 AM1/25/13
to silverst...@googlegroups.com
even if gantry looks really nice, do you envision creating websites for your client in that way? it will take like forever to customize site just filling forms... i had an experience once working for a client that wanted a forum (envision something) to be styled. 

what a waste of time... just imagine tweaking a site submitting a form, reloading the front, seeing if it looks how you wanted, opening the form, making changes, submitting the form again...

we did all with the damned forms (it took weeks) and when the client updated to the newest version of the stupid system, it overwrote the database and bingo. no styling anymore. a similar reason was why i left the modxcms core development team. i hate to try to do stuff with forms (and storing styling and templates in the database). that sucks.

also there is a module similar to this thing for silverstripe http://www.page-elements.com, not that mature maybe, but is there... i played myself with a custom module for selecting templates once in silverstripe too. its not that difficult to create something like that (im not a hardcore developer like almost all the superheros in this forum) so you can create something like gantry in some weeks if you have some other guys interested.

Ronald van Raaphorst

unread,
Jan 25, 2013, 7:51:32 AM1/25/13
to silverst...@googlegroups.com
Hi all,

If gantry (didn't know it) is something like configuring forms and store that configuration in the database, it's a no go for me.
It's unversionable. (Had to do something similair in Drupal on a big live site and it was a complete disaster)

Just as there's a strict separation between code and layout, there should be a strict, maintainable and versionable separation
between structure of the site and it's content.

Just my 2 cents :)
Ronald

To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.

Tony Air

unread,
Jan 25, 2013, 8:00:25 AM1/25/13
to silverst...@googlegroups.com
I agree, but this is about developing it's just easier to use bootstrap when u extend CMS functionality.

To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.

dospuntocero

unread,
Jan 25, 2013, 8:51:08 AM1/25/13
to silverst...@googlegroups.com, to...@thewebdevelopmentagency.ru
agreed. bootstrap has a huge user base and lots of developers helping to improve it (i have some pull requests on my own :P). 
but redoing all work its a nonsense at least for v3. maybe on v4 and probably something else and even better will come in the world of frontend when that happens. (ehemm...)

Tony Air

unread,
Jan 25, 2013, 5:53:09 PM1/25/13
to silverst...@googlegroups.com
there's no need to do everything at the one time let's just include bootstrap buttons and forms features it doesn't conflicts with any libraries and bootstrap forms already made by Uncle Cheese we just need to integrate it to the SilverStripe. That will be awesome features for the end users also.

David Brunelle

unread,
Jan 25, 2013, 5:56:28 PM1/25/13
to silverst...@googlegroups.com
I don't think that adding more third-party integrations to the default SS CMS or Framework is the right way to go. If this is something you want, why not build a module? Keep the core as lean as possible and extend it as needed.

-- 
David Brunelle | Capitol Media, Inc.
--------------------------

Tony Air

unread,
Jan 25, 2013, 7:04:52 PM1/25/13
to silverst...@googlegroups.com
cuz module will be hard to support buttons, forms and LeftAndMain templates will be customised so any update will be a potential CMS bug that will be hard to find for an instance we had a bug with custom html field editor when buttons in insert media dialog after a second save became unclickable that was hard to notice.

Uncle Cheese

unread,
Jan 25, 2013, 10:27:46 PM1/25/13
to silverst...@googlegroups.com
In a way, it's kind of like asking, "Why isn't the SilverStripe CMS built on Symfony?" Think about how easy it would be to extend the CMS codebase when it is built on a framework that is understood by a huge base of developers. Why not Twig, Doctrine, Dojo, et al?

It really boils down to fleshing out what is SilverStripe's product. Is it just an easy-to-use CMS? If that's the case, then gather up all your thirdparty tools, choose the best ones, and build the best product you can without reinventing the wheel. I guess I see the SilverStripe product as much more than that. A core offering of SS is not only the framework, but all of the other homegrown tools and libraries that make it unique, and I think a custom CSS framework is consistent with that ideology. A Bootstrapified look-and-feel would be devastating to the identity of the CMS, IMO. I would support using some of the fundamentals, like the grid, but to say we should just start crowbarring all those generic widgets into the interface is a surefire way to get lost in the noisy, crowded room of open source CMS solutions.

Every open-source application is a blend of thirdparty and homegrown work. It's just the ratio therein that changes. If you pitch straight down the middle with Bootstrap or Sencha, or whatever else, I think it's very hard to stay competitive. You have to innovate to get noticed. So for better or for worse, the CSS framework may not be as accessible as Bootstrap, but it's ours, and I think we should learn to love it.

Tony Air

unread,
Jan 25, 2013, 11:30:57 PM1/25/13
to silverst...@googlegroups.com
Agreed, sorry for my English i'm not native speaker, maybe I said it wrong. I'd like to offer silverstripe community to move from jquery ui to bootstrap to ease developing process. That takes long time so we can move step by step to make SS lighter. SilverStripe main features that it's easy to use and develop and it's not such a big monster as Symfony. I agree that most of libraries should be deeply integrated with SS.

Also I'd like to offer u replace TinyMCE to jquery based WYSIWYG editor so CMS will work faster and weight less. Anyway we use jquery why some functionality that already included to the library shall be duplicated in TinyMCE. That's the other question.

Here's a screen shoot  of the editor that I use it is fully integrated and works perfect with SS dialogs without any core modifications. I can share so u can include it to the SS.Inline images 1
Screen Shot 2013-01-26 at 11.26.27 AM.png

Uncle Cheese

unread,
Jan 25, 2013, 11:42:06 PM1/25/13
to silverst...@googlegroups.com
Looks nice! That's not TinyMCE? What is it?

I don't have too many complaints about TinyMCE from a functionality standpoint, but I do wish that SilverStripe offered a much more minimal configuration of the editor out of the box. It makes the CMS look slower than it is, and no one uses 90% of those buttons. Fortunately, there's a solid API for that, so it's inconsequential once you set it up, but I'm not sure a kitchen sink setup is appropriate for a first-time user. Not to mention, without an editor.css, you get painfully tiny typography!

Tony Air

unread,
Jan 26, 2013, 12:05:26 AM1/26/13
to silverst...@googlegroups.com
it's http://elrte.org/ there're only one issue that it's not well documented, but it's highly commented in source so it's easy to develop additional modules and remove the other. All functionality of the editor divided by js files so it's easy to remove everything that unnessary. I'm pretty sure something can be improved. I was developing module for my clients so module/css/editor.css and project()./css/editor.css auto included cuz I don't use theming function of the SS I guess most of websites don't need it if they do they can extend it. I haven't tried to find out an issue with TinyMCE, but when u open it in fullscreen mode it doesn't let u to insert an image that was a big issue for me cuz i had to work in a small window.

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To post to this group, send email to silverst...@googlegroups.com.
To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
Visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Josua

unread,
Jan 26, 2013, 8:37:04 AM1/26/13
to silverst...@googlegroups.com, to...@thewebdevelopmentagency.ru
+20
Definitely, this editor should be included in SilverStripe. It looks gorgeous. :)

Regards,
Jose A.

Josua

unread,
Jan 26, 2013, 8:41:30 AM1/26/13
to silverst...@googlegroups.com
Integrating Twitter Bootstrap in the CMS could be very interesting.
Currently many control panels using Bootstrap.

Regards,
Jose A.

dospuntocero

unread,
Jan 27, 2013, 11:42:46 AM1/27/13
to silverst...@googlegroups.com

you can always use a simpler and minimal configuration. 

https://gist.github.com/4649177 - this is my base configuration. i agree with you. i hate 3 rows filled of buttons that only will assure our clients turns our clients websites in a complete mess. LESS IS MORE!!!

Hamish Friedlander

unread,
Jan 27, 2013, 7:03:17 PM1/27/13
to silverst...@googlegroups.com
Hi Guys,

There's a bunch of stuff going on in this thread. I'll try to address each point, apologies if I miss something.

> Bootstrap is great

Yes, we like it to. We already use it in several of our themes internally, and we are developing a "base" theme that is intended to become the underlying theme skeleton that all our internal sites are built on which we've already open sourced - https://github.com/silverstripe-labs/silverstripe-express-theme

> Therefore you should use it in the CMS

As an advocate of Bootstrap, I can see why you might think that. However as an advocate of SilverStripe I disagree.

We've decided the CMS should be a desktop style web application, and bootstrap is fundamentally not designed that way.

Most of the features that bootstrap provides (a responsive grid, attractive typography, a good default set of components for front end use) are not useful in the CMS as designed. We don't use a grid. We don't really need typography, except what comes from the front-end theme. And the components provided that we would use are also provided by other libraries which we need to provide features bootstrap doesn't.

Most of the features that we do need for the CMS (Ingo has already provided a list, I'm not going to go through it again) are not provided by Bootstrap

> But... Gantry

Is not a CMS? I haven't used it personally, but as far as I can tell it is a theme framework, very similar (if more developed) to the SilverStripe express theme I linked to above. 

It does integrate with a CMS (either Joomla or Wordpress) to provide some GUI elements for theme control, but doesn't provide any actual CMS interface (no site structure control, no page contents editing, certainly no ModelAdmin equivalent)

> But... jQuery UI is heavy

Yes, it is. But it provides features we need, and bootstrap doesn't.

> Open discussion about replacing CMS completely with something lighter, either based on bootstrap, or on ExtJS / AngularJS

One of the reasons we tried to make sure you could remove / replace the CMS module in 3.0 was so that people could replace it if so desired. The current 3.0 CMS is designed to be usable for a large cross section of possible site sizes and requirements, but there is certainly a place for a lighter CMS optimised for smaller sites. I would love to see alternative CMS modules show up.

However we've already put a lot of engineering effort into developing 3.0. We are almost certainly not to put any internal resource into developing an alternative CMS implementation any time soon.

One note on ExtJS in particular: it is under the GPL, and therefore not distribute-able as part of SilverStripe (which is under the BSD license).

> You should use elRTE instead of TinyMCE

I hadn't seen that before, and it looks quite nice. Thanks for bringing it to my attention

TinyMCE is definitely heavy. When we started work on 3.0 we evaluated all the (BSD license compatibile) open source editors hoping for a lighter weight replacement. However we found none that met our (pretty limited) absolutely required features list. This amongst other reasons resulted in us giving up on in-place click-to-edit editing, since TinyMCE couldn't be instantiated fast enough to give a nice UX.

elRTE fails to meet some of those absolutely required features. In particular it doesn't appear to have a significant enough community behind it, and it seems development on it has stagnated. The latest commit to Github was 7 months ago, and there hasn't been a stable release in over a year. We (SilverStripe) don't want to have to take on support of a WSYIWYG editor component too.

Where I would love to see some work done is to improve 3.0's WYSIWYG integration API so that people who wanted to experiment with alternatives could. This is trickier than it first looks, since we have our own custom file / image / link editors that need to be integrated with whatever tool you use, but is technically feasible. If a community member wanted to take this on, that'd be awesome.

There's also a long standing bug which doesn't allow you to use more than one TinyMCE configuration in the CMS at any one time, which makes using lighter toolbar configurations tricky. I might take another look at fixing that soon.


Hamish Friedlander

Tony Air

unread,
Jan 27, 2013, 7:16:16 PM1/27/13
to silverst...@googlegroups.com
As for ElRte plz take a look first one is default SilverStripe media insert dialog, the second one is default table insert ElRte dialog it looks the same cuz they use the same jquery ui api.
 
Inline images 2
Inline images 3

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To post to this group, send email to silverst...@googlegroups.com.
To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
Visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Screen Shot 2013-01-28 at 7.11.00 AM.png
Screen Shot 2013-01-28 at 7.11.21 AM.png

Tony Air

unread,
Jan 27, 2013, 7:44:03 PM1/27/13
to silverst...@googlegroups.com
ah forgot to mention here's an example of SS link insert plugin:
(function($) {
elRTE.prototype.ui.prototype.buttons.link = function(rte, name) {
this.constructor.prototype.constructor.call(this, rte, name);
this.command = function() {
               ss.editorWrappers['default'] = function(){return ss.editorWrappers.ElEditor;}; // set default ss wrapper to elEditor
$('#'+this.rte.target.attr('id')).entwine('ss').openLinkDialog();
}
}
})(jQuery);
Screen Shot 2013-01-28 at 7.11.21 AM.png
Screen Shot 2013-01-28 at 7.11.00 AM.png

Uncle Cheese

unread,
Jan 29, 2013, 9:47:32 AM1/29/13
to silverst...@googlegroups.com, to...@thewebdevelopmentagency.ru
Thanks Hamish, that was a great post.

I just want to make the point, somewhat belatedly, that there seems to be this meme in the SilverStripe community that goes something like, "It's awesome! (Pick one: Why isn't it / It should be / When will it be) in the core?"

There's a lot of nice stuff out there, and there are a lot of great thirdparty modules that are just as battle tested as the CMS itself, and we all love them, but I don't think everything that makes the CMS better, even when to a large group of users, needs to be rolled into the core. The essence of SilverStripe is extensibility. Let's keep things modular with opt-in functionality. Even something like the Versioned layer being bundled into the CMS I think is overreaching.

The criticism is often, "Everyone uses modules X, Y, and Z. Why should I have to pollute my whole project directory with extra modules?"

It's probably a fair point, but I think now with Composer, that stuff is all streamlined. The idea that everyone can have their own flavor of composer.json to bootstrap (no pun intended) their sites is awesome. It perpetuates the scalability and highly customizable design pattern of SS and its framework, and it decentralizes the ownership of the product's most-used components.
Reply all
Reply to author
Forward
0 new messages