ibrows / simplecms-bundle
Symfony Simple CMS Bundle
Installs: 11 098
Dependents: 0
Suggesters: 1
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3.3
- ibrows/simple-seo-bundle: ~1.2
- symfony/framework-bundle: !=2.3.9,~2.2
Suggests
- stfalcon/tinymce-bundle: >=0.3
README
Setup the bundle
- Fetch the source code
- Add the namespace to your autoloader
- Add the bundle to your
AppKernel
class - Add routing
- Generate Schema
- Permissions
- Enjoy
How to use simple CMS
Just add a tag to your twig file to allow user to edit a specific entity type (by default, text & image is provided)
Some Examples
{# add a text with key 'mycustomtextidentifier' #} {{ 'mycustomtextidentifier'|scms('text') }} {# add a image with key 'mycustomimageidentifier' #} {{ scms('mycustomimageidentifier','image') }} {# add a collections of texts with key 'mycustomtextidentifier' #} {{ 'mycustomtextidentifier'|scms_collection('text') }} {# add a collections of images with key 'mycustomimageidentifier' #} {{ scms_collection('mycustomimageidentifier','image') }}
Advanced examples
Single image with my
class and inline editorstyle (instead of block) and a specific locale (default is the current locale)
{{ scms('mycustomidentifier','image',{'inline':true,'attr':{'class':'mycssclass'} },'de_CH' ) }}
Flexible amount of wysiwyg text elements
{{ scms_collection('mycustomidentifier','text',{'html':true}) }}
Install & setup the bundle
-
Fetch the source code
Add IbrowsSimpleCMSBundle in your composer.json:
{ "require": { "ibrows/simplecms-bundle": "*" } }
Now tell composer to download the bundle by running the command:
$ php composer.phar update ibrows/simplecms-bundle
Composer will install the bundle to your project's
ibrows/simplecms-bundle
directory. -
Add the bundle to your
AppKernel
class// app/AppKernerl.php public function registerBundles() { $bundles = array( // ... new Ibrows\SimpleCMSBundle\IbrowsSimpleCMSBundle(), // ... ); // ... }
-
Add routing
// app/config/routing.yml IbrowsSimpleCMSBundle: resource: "@IbrowsSimpleCMSBundle/Controller/" type: annotation prefix: /scms # use the alias routing IbrowsSimpleCMSBundleAlias: resource: . type: ibrows_router prefix: /
-
Generate Schema
php app/console doctrine:schema:update --force
-
Permissions
Get permissions for FileUpload, default folder is web-dir
uploads/documents
Minimal configuration
This bundle requires Nothing !
Additional configuration
Edit default config
# app/config/conf.yml
ibrows_simple_cms:
include_js_libs: true
upload_dir: 'uploads/documents'
role: ROLE_IS_AUTHENTICATED_ANONYMOUSLY
Add security per type
# app/config/conf.yml
ibrows_simple_cms:
types:
# defaults
text: { class: Ibrows\SimpleCMSBundle\Entity\TextContent , type: Ibrows\SimpleCMSBundle\Form\TextContentType, security:{general: ROLE_ADMIN} }
image: { class: Ibrows\SimpleCMSBundle\Entity\ImageContent, type: Ibrows\SimpleCMSBundle\Form\FileContentType, security:{general: ROLE_ADMIN, show: ROLE_SUPER_ADMIN, create: ROLE_SUPER_ADMIN , edit: ROLE_SUPER_ADMIN , delete: ROLE_SUPER_ADMIN } }
Edit TinyMCE Options
# app/config/conf.yml
ibrows_simple_cms:
wysiwyg:
theme: 'advanced'
theme_advanced_buttons1: 'bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect'
# other configs...
Add types
Add / Edit types of Content:
# app/config/conf.yml
ibrows_simple_cms:
types:
# defaults
text: { class: Ibrows\SimpleCMSBundle\Entity\TextContent , type: Ibrows\SimpleCMSBundle\Form\TextContentType }
image: { class: Ibrows\SimpleCMSBundle\Entity\ImageContent, type: Ibrows\SimpleCMSBundle\Form\FileContentType}
# custom
mytext: { class: Ibrows\SimpleCMSBundle\Entity\TextContent , type: Ibrows\SimpleCMSBundle\Form\TextContentType , repository: Ibrows\SimpleCMSBundle\Repository\TextContent, label:first}
mycustomentity: { class: Ibrows\XXXBundle\Entity\YYYContent , type: Ibrows\SimpleCMSBundle\Form\YYYContentType , repository: Ibrows\SimpleCMSBundle\Repository\Content, label:myone}
Your YYYContent Entity have to implement Ibrows\SimpleCMSBundle\Entity\ContentInterface
or extend Ibrows\SimpleCMSBundle\Entity\Content
or a Child of it.
It's also a good idea to extend Ibrows\SimpleCMSBundle\ContentType
in your FormType.
Screenshots
TODO
- create the ODM version
AUTHORS
Developed at iBROWS GmbH Zurich: Marc Steiner Dominik Zogg Olivier Kofler
Twitter: @iBRWOSWEB Web: www.ibrows.ch