General suggestions to make Composite the best CMS ever

Topics: Feature requests
Dec 10, 2010 at 7:37 PM

Hello everyone,

I haven't been using Composite C1 for that long, and I haven't launched my first website (but it's on its way), never the less i feel that I have a few ideas that could improve the overall experience of the CMS.

Here goes:

1)  Creating a functions requires way to may mouse clicks. Changing a control type takes way to many clicks.

It would ease my day if the trees automaticly expanded to the first "folder/namespace" which has anything else but a single folder inside. The first 2-3 clicks are just a waste, Since you always need to expand "All functions" and in most cases "Composite" aswell.

2) On the Media tab i'd like to have preview function. it's hard to figure out which files are what only by filename. not every use is a genious at naming files :-P

Having used for instance Dynamicweb, the filearchieve there is pretty good, all images are listed with a thumbnail and filename, and that works very well

3) Where is the save and publish button?

Again this is to cut down on all the clicking ;-)


That's all for now, but i basicly love everything else about this CMS :-D


Best regards

Dec 10, 2010 at 11:08 PM

Thanks Martin.

I loved the idea of "Save & Publish" also, the preview of media files can be a very useful thing.

I also need a refresh button when editing a XSLT  function. It happens that I am editing a function in VS2010 and I want to see the preview in C1 Console. Each time I have to close the function in C1 Console and reopen it for it to understand the changes I've made in VS2010 IDE.

Dec 11, 2010 at 7:43 PM

I think it should be possible to make the "Save & Publish" button yourself... will look into that, a small midnight project for tonight :)

The media library for sure needs a big touchup. Go and vote here for improved uploading as well :) 

Btw, im working on making something similar to the Universal Media Picker ( for Composite C1. Let me now if its something you would be interested in seeing released into the wild, or if you have suggestions/ideas for such a project.

Dec 12, 2010 at 4:54 PM

@burningice: Would be awesome if you could make a Save & publich button, I'd install it :-)

I've had a look at UMP and it's really nice, and adds a lot of value to the UX  of handeling files in Umbraco, so a port for Composite C1 would be appreciated :-)

IMO the Media library is a major weak point in Composite C1 now.
But i personaly don't like the extra layer added to the filemanagement that's in Umbraco, Composite, Synkronv VIA and many other CMS. I prefer to work directly with the files and folders and not some database object, which prevent me from FTP'ing my files and folders :-)

@Aboo, Yes, a refresh button for XSLT would be awesome, working in VS2010 and the likes is just a lot easier that the CMS editor.


Dec 14, 2010 at 12:04 PM

I agree with @boedlen - too many mouse clicks in general.

Other stuff I'd like to see added/changed are - 9 issues, top of mind, not in any way prioritized:

1) Easy lightweight tool to query data with no need to create files on server. When solutions are live, I often don't have the luxery of Visual Studio or direct interaction with file system.

2) Instead of hooking metadata field to page types then vice versa hooking page types to metadata fields.

3) Create overall rules for depth and inheritance on page meta types. These rules are sort of hidden now (i.e. right clicking on pages adding page meta types)

4) Sitemap dependant on language parameter (i.e. forcing to see the english sitemap XML when viewing a german page)

5) Widgets for selecting file system folders, files, and scope (i.e. setting filters to a specific folder).

6) Setting a value to specify if an XSLT function should or should not be selectable in the WYSIWYG editor.

7) Some basic editor functions such as searching pages/media files, and copying pages/data/functions/templates etc.

8) Effective and effecient handling of large amounts of data - not as concrete as description could be - but it could be something like publishing all pages in a tree with one mouse click. I.e. the "go-live" moment of x pages made ready for publication.

9) Switching language and automatically saving any open C1 pages (open = pages being edited) - the saving part with the change-language action is not something you'd expect.

10) More to come... :)

Some issues might already be fixed as I have'nt had the chance to work with C1 version 2.0 just yet.

Dec 14, 2010 at 1:34 PM

@boedlen: hear, hear, hear - all super ideas! Right now we are tied up working on starter sites, Azure and ASP.NET dev features but you are not the only one looking forward to those features. Hopefully we can address them in the beginning of 2011. Perhaps the community will beat us to it ;-)

@aboo: also an excellent idea, but this is a wee complex if we are to sync up between client/server. Perhaps some "auto ignore posted XSLT code if server file is newer" could do the trick? This would be fairly easy to introduce, but it could also introduce some ultra annoying issues. Is you can "see" the solution which take multi dev environments into accounts, fire away.

@boedlen I'm not a super fan of a "Refresh XSLT" button, cause it's the kind of button that - if you forget clicking it can have a 'doooooh' effect - we would need something devs can simply trust to always help them, if at all possible.


  1. We got it - check the "Inline C# Functions" feature on the Functions perspective - let you do C# from within the console in a safe place where compile errors don't crash you web app (like compile errors in App_Code do). There is a template for doing data queries :-)
  2. We got it - try right clicking a page and select "Add meta data field" - you can attackk meta data fields in two ways: via page typing or via page structure.
  3. We got it - see above.
  4. Have you looked at "Composite.Pages.GetForeignPageInfo"? This will give you URL's, titles for other language versions of your current page. If you need the entire sitemap for another language you can go C# and new up a DataConnection with the desired locale and use the SitemapNavigator to fetch it. If your use case is really common and mandate that the feature be ready at hand, please describe it.
  5. You can build this - check Creating Form Controls - if you want to wrap these new UI controls in neat widgets (making them invoke'able from the UI and not just from form markup) look at custom widgets. If you create something that rock consider making a package and share it :-)
  6. We get a few ways to do this - change the output type to XML - then it will not be selectable in the WYSIWYG editor - or use the permission system.
  7. True - we need search features and copy features.
  8. True - bulk publishing would be a cool feature. With a little handy work you can write a C# function that take a page ID and publish it and all of it's children - then you can use the "Tree Definition" faature to attach a new command to all pages that use the Execute C1 Function feature.
  9. You would like the C1 Console to auto+force save any unsaved changes you have, in case you switch the "data lanfuage" you work in? No questions asked?
  10. That's how we grow :-)






Dec 15, 2010 at 12:23 AM

Hi Marcus,

Thank you for your descriptive response mate.

You can consider a simple scenario when a developer is editing an XSLT function using Visual Studio IDE (Or any other IDE) and testing it using Composite C1 console's preview tab. Both (C1 Console & IDE) are having the same file opened. Each time I do a modification in XSLT file I have to close it in C1 console and re-open it and it can be a great waste of time when you need too many back and forth while testing. Instead of closing the function, double clicking it, clicking the preview tab (four clicks at least), I could do that with a simple refresh button which will act as if it is closing and reopening the function. VS IDE will take care of the backward way scenario. When you edit an XSLT file in C1 console and save it VS has a file watcher which watches for the changes and will show the popular re-load dialog. Of course the ideal way is to have a file watcher for the opened files in C1 console and then push a notification to the client when there has been a change but I am aware of consequences when having a web-based application and I guess this is not necessary at this stage. 

Feb 3, 2011 at 9:01 AM

@Aboo I added the feature you requested - it's in the source version now. The XSLT edit workflow will now check the physical XSLT file on save and preview events - if the file have been updated by another program, this new version is used for preview (and not overwritten by save). I worked with it and it seems to support editing XSLT in a program like VS2010 just fine. On Save events - if the file was changed - the XSLT shown in the C1 Console will sync. Not so on preview though, here the C1 Consoles XSLT will stay untouched, but the new version of the file will be used.

If you have a chance to download the source version and play around with it, let me know if it works for you.

Feb 3, 2011 at 8:33 PM

I don't think a Save & Publish button is needed.

Rather, the Publish Button should appear if the page is dirty. When

If you hit SAVE. it just saves it... and doesn't publish.

If you hit PUBLISH and the page is dirty... it asks you if want to SAVE and then PUBLISHES.

Feb 28, 2011 at 12:22 PM

The number one request/complaint from our clients are related to mouse clicks, particularly when inserting an image. In my experience, most users can not organize their own desktops (neither the wooden nor digital versions); Forcing them to do so only makes them resent C1 (particularly for small web sites). I would suggest assuming the user wants to upload a new image to a default upload directory so that users can choose between three work flows:

 * upload quickly, organize later (or never) or

 * upload and organize now or

 * select extant image

Use cases:

 (1) on content editing page, user clicks "Insert Image" (one click). The user is immediately presented with the ability to upload (optionally select an extant image in the media gallery). The default destination directory is pre-selected. The user selects "OK".

 (2) on content editing page, user clicks "Insert Image" (one click). The user is immediately presented with the ability to upload. The user selects a destination directory or creates a new one. The user selects "OK".

 (3) on content editing page, user clicks "Insert Image" (one click). Rather than upload, the user instead chooses to open the media gallery. The user navigates to the appropriate directory and selects the desired image. The user selects "OK".

Mar 1, 2011 at 8:20 AM

@alexgenaud Thx for the input!! This is recorded here: If you want you can go and upvote this feature request :)