PagesCms
Pages CMS uses nested forms and draggable items to allow the user to build a site within the predefined layout from a designer. It incorporates an image management system as well as a page management system. It's like a wordpress page builder on rails.
Advantages
- Get hacking right away with out of the box support for bootstrap.
- Easily drag page layouts into the position you want them.
- Built in blog.
- Limited dependencies, doesn't require or come with a User model.
- Easily customized.
- Lightweight and easy to understand: Built with simple rails techniques everyone can understand.
- Now with multi-site support!
How it Works
The page builder is the central feature of PagesCMS. In essence, it allows the user to create divisions on a page, and then add various sorts of content into the div. The content types right now:
- Text Box
- Thumbnail
- Image Box
- Contact Form
- Blog Feed
These content types can be interpreted by a designer to create a unique look and feel for every page. In addition, there is a sidebar that is fully customizable. Content editing is done using the great wysihtml5 editor.
Installation
- Add:
gem 'pages_cms', '~> 2.1.1'to yourGemfile - Run:
$ rails generate pages_cms:install - Add:
//= require cocoonto yourapplication.jsfile
This has built everything that PagesCMS needs to work, but to get hacking with some default styling and layout included, follow the next steps:
The base theme is built on bootstrap:
- Add:
gem "bootstrap-sass"to yourGemfile - Add:
//= require bootstrapto yourapplication.js - Run:
$ bundle install
To get hacking the views and stylesheets: $ rails generate pages_cms:views
You should now be able to go to /admin/pages and start building pages!
The generator has added some methods to your App:
| Method | Usage |
|---|---|
logged_in_admin |
Authorizes controllers in the PagesCms engine |
current_user_is_admin? |
Verifies that the current user is an admin in the views |
Make sure to fill these methods out to secure your application.
Note: Let me know if you are having dependency issues, this is one area that is very untested, and we can work to find a solution. The app is only tested with the latest version of rails and notably postgres as well. The blog section uses array tagging so those with sqlite will have problems.
Licence
MIT, author makes no liability whatsoever.
Free Software Used
Thank you to:
- html5 sortable: http://farhadi.ir/projects/html5sortable/
- select2 Jquery: https://select2.github.io/
- wysihtml5: https://github.com/Voog/wysihtml
- bootstrap sass: https://github.com/twbs/bootstrap-sass
- cocoon: https://github.com/nathanvda/cocoon
Contributing
More than welcome! This project is currently looking for dedicated core contributors looking to build exciting open source software. Shoot me a message or an email, I'd love to talk to you about the project!
- Fork
- Make Topic Branch
- Submit Pull Request
Current To Do List
- Enable strong params for admin/pages controller (right now if strong params are enabled, saves old elements twice!?!)
- Bigger feature list, what block elements do people want?
- Testing, increase coverage and test dependency version changes.
Decorators and Customization
The app is being constructed will full customization in mind by using decorators. This part has yet to be fully implemented as of right now however.