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') }}
Single image with my
class and inline editorstyle (instead of block)
{{ scms('mycustomidentifier','image',{'inline':true,'attr':{'class':'my'} }) }}
Flexible amount of wysiwyg text elements
{{ scms_collection('mycustomidentifier','text',{'html':true}) }}
-
Fetch the source code
Using dept File, add these lines:
[IbrowsSimpleCMSBundle] git=https://github.com/ibrows/IbrowsSimpleCMSBundle target=/bundles/Ibrows/SimpleCMSBundle
Using Git to control your project from project root directory:
git submodule add git@github.com/ibrows/IbrowsSimpleCMSBundle vendor/bundles/Ibrows/SimpleCMSBundle
By cloning repository:
mkdir -p vendor/bundles/Ibrows/SimpleCMSBundle cd !$ git clone git@github.com/ibrows/IbrowsSimpleCMSBundle
-
Add the namespace to your autoloader
// app/autoload.php $loader->registerNamespaces(array( 'Ibrows' => __DIR__.'/../vendor/bundles', // your other namespaces );
-
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
-
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