'mongocms' is a cms based on mongoDB.
This is the first official release v0.1.


## Features:

- A powerful basic contenttype 'Page' with attachments, links, settings, content permissions ...

- Presets for image attachments to autogenerate thumbnails ... (like imagecache in Drupal)

- Add to favorites, print, direct edit links in pages

- 3 level permissions for user roles:
  * route (Menu per role module in Drupal)
  * content (permissions per page)
  * contenttype

- Autogenerating menu
- menu cache for increasing performance
- Users/Roles management
- Users online portlet

...

### Screenshots and Howto

See downloadfile 'mongocms.quickstart.01.pdf'.


## Requirements

- mongoDB 1.6.5+
- Yii 1.1.5+
- Extension yiimongodbsuite

*'mongocms' includes following additional extensions, no need for extra installation:*

- appendo
- ckeditor
- image
- mPrint
- timepicker
- EMongoDBCache
- GUrlValidator (see forum)
- jqueryslidemenu (see yii documentation)


## Installation

You can download the preconfigured 'mongocms.fullapp.01.zip' or install manually:


1. Install the extension yiimongodbsuite

2. Extract mongocms.01.zip into protected/modules


### Configuration in applications main.php

*1. Register the module*

~~~
[php]
 ...
    'modules' => array(
        'mongocms' => array(
          //'mongoConnectionId' => 'mongodb'  //(=default)
			'modules' => array(
                'slideshow', //register the contenttype as submodule
                ),
            ),
 ...
~~~

Note: Take a look at the public properties of MongoCmsModule for more configuration possibilities to expose here



*2. Register the mongocms behavior*

~~~
[php]
 ...
    behaviors' => array(
	   'mongocms' => 'mongocms.components.MongoCmsBehavior',
	   ...
	),
 ...
~~~


*3. Register the controllers*
    in the controllerMap and set the defaultController of the application to the ContentController

~~~
[php]
 ...
 'defaultController' => 'content',

 'controllerMap' => array(
			'admin' => 'application.modules.mongocms.controllers.AdminController',
			'files' => 'application.modules.mongocms.controllers.FileController',
			'content' => 'application.modules.mongocms.controllers.ContentController',
			'user' => 'application.modules.mongocms.controllers.UserController',
        ),

 ...
~~~

Note:
- Step 3 is optional, but it 'hides' mongocms module
- You can change the key, but then you have to rename the corresponding directoryname in the themes folder too.


4. Register and configure the components

- Configure Y
- Set the loginUrl of the user to the login of the mongocms
- Install the urlManager but - *important* - uncomment the default rules


~~~
[php]
...

 'components' => array(
   ...

   'mongodb' => array(
            'class' => 'EMongoDB',
            'connectionString' => 'mongodb://localhost',
            'dbName' => 'mongocms',
            'fsyncFlag' => true,
            'safeFlag' => false,
            'useCursor' => false
        ),

   'user' => array(
            'allowAutoLogin' => true,
            'loginUrl' => array('/user/login'),
			              //or /mongocms/user/login if the controllerMap is not used
        ),

    'urlManager' => array(
		'urlFormat' => 'path',
		'rules' => array(
		   // '<controller:\w+>/<id:\d+>' => '<controller>/view',
		   // '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
		   //  '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
		 ),
    ),

...
)

~~~

Note: The default rules of the urlManager conflicts with the handling of viewing pages in mongocms


Call the url index.php (or index.php/mongocms if defaultController is not set) and see what happens ...


## What's next

- Fixing bugs ;-)
- User registration
- German translation




