- Fetch the source code
- Add the namespace to your autoloader
- Add the bundle to your
AppKernel
class - Add routing
- Generate Schema
- Permissions
- Enjoy
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') }}
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}) }}
-
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
This bundle requires Nothing !
# app/config/conf.yml
ibrows_simple_cms:
include_js_libs: true
upload_dir: 'uploads/documents'
role: ROLE_IS_AUTHENTICATED_ANONYMOUSLY
# 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 } }
# 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 / 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.
- create the ODM version
Developed at iBROWS GmbH Zurich: Marc Steiner Dominik Zogg Olivier Kofler
Twitter: @iBRWOSWEB Web: www.ibrows.ch