Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Please list all the features you would like to see in the upcoming Symfony CMF. What I thought is we could write down all the features, have a discussion of what is really needed and should be part of the CMF. Then create a specification draft for each feature which would be followed by the developers responsible for the feature.
- easily integrate CMF components into any project not only CMS, but also into intranet applications, where there could be use of easy content management
- have full I18N support
- support multiple websites
- culture specific website sitemap (website can have different structure for each language)
- allows single sign on, so if user manages multiple instances of CMS don’t have to create multiple accounts
- have versioning and preview feature
- has optional document workflow system, with stagging, preview, auditing feature
- has clean separation of frontend so it’s easy to switch user interface/visualization
- maybe support LESS or SASS
- unlimited templating (every template easily replaceable)
- provides RESTful API to manage pages/content
- ability to easy move content/configuration between dev-staging-production in all directions
- target users are end users and developers with end users being responsible for content, and developers for business logic and configuration (no need to enable end users to “program” the web site)
- drag’n’drop interface to manage page order
- “enterprise” features like i18n, l10n, versioning, workflows, ACLs etc.
- ability to perform A/B tests on different contents using different templates/components as the variations and the events of the system as the conversions.
- have a support for a “namespaced” access control where you can define groups and credentials that are related to a specific namespace. This would help on multiple sites because we can relate some namespaces to a specific site.
- allow user defined node types
- auto generation of ui components for specific node types.
- a good way to contol acces to specific contents and content groups (not only to specific features).
- a ui for frontend layout with the possibility to add and configure components to slots (I like a lot Diem´s approach on this with the DnD)
- a very good integrated search with support for faceted search, highlight, synonyms, stop words …
- easy acess to different renderings of nodes using a rest api (I don´t know if it´s a JCR standard, but like the Day approach of using a content addres and a rendering “sufix”. Something like /projects/symfony-cms/features.html and /projects/symfony-cms/features.simpleList.html )
- Easy versioning, reverting to old content, contibutors list to contents.
- A nice to use customizable workflow toll.
- multilanguage with customisable behaviour (language fallback, only show requested language…)
- a way to define what fields a node has (content type, best would be to use doctrine for definition and layout as much as possible)
- allow for frontend editing or separate admin backend (clients sometimes insist on one or the other)
- content publish workflows, revisions, diff, annotations
- handle content deployments
- general menu concept allowing more than one menu
- allow for further plugins to handle various aspects of the cmf
- something like the drupal “block” concept for placing information blocks in the layout?
- multilanguage support
- social media integration
- RSS / API
- users & roles system (permissions)
- moderation features
- (nice) file handling (user upload like video, audio, picture, …)
- automatic deployment (packaging?)
- caching mechanism
- inline editing
- (eventually) drafting of the content
- centralized media management
- support for multiple sites
- content-routing mechanism (this isn’t really a feature, but much more core to a CMF – it’s the issue of having a specific url mapped to a specific set of content. That being said, if generic and made as a component, it would be neat to offer for use in normal Symfony2 apps)
- users & roles system (permissions)
- theming (perhaps called by a different name elsewhere – the ability to have a different template/stylesheets on a page-by-page or section-by-section basis)
- API for retrieving and mutating content
- templating / template creation (clients like drag-and-drop driven templates while developers like templates to be hardcoded where the client simply fills in the predefined area. I’m sure smarter people than I have thought about this problem.)
- “inline objects”. This is the idea that, in JCR-speak, nodes could be embedded right into the middle of content areas and then rendered within the content. I’m not sure if this is even a good idea or if someone smarter than me has implemented it. I created sfInlineObject to do this. It allows nodes to be referenced inside plain text without hardcoding (e.g. to create a link from one page to another, you’d embed an inline reference to the node and not just hard-code in its url)
Jonathan H. Wage
- Developer UI for rapid CMS application development similar to what you can do with other popular CMS like Drupal where lots of the development is done in the UI and less in the code. This widens the scope of the type of developer that can use the CMS from drupal type developers to senior web application architects.
- Clear separation of developer UI and Client/Editor UI and never mixing the two.
- Easy data/content synchronization between dev/stage env and prod
- Content management interface which does not limit the design possibilities. That is to say: not only inline editing (imho, apostrophe websites are easily recognizable)
- Easy and documented plugin/bundle/whateveryouwant interface/api: we must attract developers of addons
- Attractive UI: not only in term of appearance, but also in term of usability
- ACL (fine granularity)
- Media management (with webdav interface ?)
- The ability to define roles determining the functionality available in the backend. Examples are SEO specialists, content editors, managers, IT professionals, translators, etc who each must have their needs considered.
- The ability to manage content objects as well as static pages. For example products, blog items, special offers, hotels etc. Pagination and filtering these lists should be made easy for the developer to manage in the templates. Front-end features like carousels of objects can be customised and added to any page.
- Easy content movement between servers/environments
- Powerful and fast searching, tagging and filtering of media (plus WebDav interface)
- Workflow tools for user notification, content status and approval
- Comprehensive preview/versioning – view the whole website at any version (past or future) including deleted pages and restructured navigation. Release management for managers to approve, plan, organise and put live a bunch of changes in the future or far future.
- The option to restrict the type and design of content inside a template, to prevent the content editor from getting “creative” with the layout.
- managing content in time
- use html5boilerplate
- web installer
- great WYSIWYG
- Ease of deployment: I should not need dozens of externals beyond Symfony to deploy a basic CMS built on this
- PHP-based options for all required components (upgrade paths to harder-to-install tools are fine)
- Easy things should be easy, hard things should be possible/findable if you are looking for them; don’t drown the system in a blizzard of features, all presented as equally important
- WURFL driven Content Adaptation support for controlling view rendering on Mobile phones and other devices.
- XLIFF import & export of multilingual content for integration with Translation Management platforms used by professional translation agencies, this helps large organisations with volume of content that needs to be translated in multiple languages. Also, this will allow creation of a translation workflow within the CMS where the export of source content for the translation agency and importing of translated content can become an intermediate step between authoring and publishing allowing users to keep their content consistent across multiple languages.
- Inline layout editing with similar to Diem with drag & drop zones and widgets (my clients love this feature of Diem)
- Symfony dependency injection container for CMF features to be available as services
- Admin generator themes
- Ability to import content from other CMS’s like Wordpress or Drupal
- Never sacrifice good design patterns and solid architecture
- Highly modular
- Multisite on the same base install
- Integration with enterprise data stores like Neteeza